SQL Server Yönetimini Kolaylaştıran DBA Tools
Merhabalar,
Bugün sizlere SQL Server yönetimini kolaylaştıran, açık kaynaklı bir PowerShell modülü olan DBA Tools konusunu anlatıyor olacağım.
Özellikle SQL Server community tarafından veritabanı yöneticileri DBA’lar için geliştirilmiştir ve SQL Server ortamlarını yönetmek, izlemek, yedeklemek ve geri yüklemek gibi pek çok karmaşık işlemi basitleştirir.
DBA Tools’un Avantajlarına Değinecek olursak
DBA Tools, tekrarlayan görevleri PowerShell betikleriyle birleştiğinde, SQL Server yönetimini tamamen otomatik hale getirebilir. Bu özelliği sayesinde SQL Server Agent servisi ile yapılandırıldığında yönetimsel birçok avantaj sağlamaktadır.
Bu araç, SQL Server yönetimiyle ilgili 500’den fazla komut içerir. Sunucu kurulumundan veritabanı taşıma,yedekleme ve geri yükleme gibi işlemleri için çözümler sunar.
PowerShell betikleri ile çalışmak kolaydır ve DBA Tools, SQL Server yönetiminde gerekli olan komutları basit hale getirir. Kullanıcılar, detaylı bir PowerShell bilgisi olmadan da bu araçtan faydalanabilir.
Kurulum için DbaTools’un web sitesinde ki “https://dbatools.io/” adımları uygulayarak ya da sitemizde ki DBATools Powershell Modülü Kurulumu yazısından kurulum işlemini gerçekleştirebilirsiniz.
Bazı öne çıkan komutların ne işe yaradığını ve bu komutları örneklendirelim
- Test-DbaConnection: SQL Server bağlantısının test edilmesini sağlar.
Set-DbatoolsInsecureConnection -SessionOnly
Test-DbaConnection -SqlInstance ‘Your_InstanceName’ -SqlCredential $credential
-Set-DbatoolsInsecureConnection -SessionOnly: Komutu, dbatools modülü ile SQL Server’a yapılan bağlantılarda SSL/TLS sertifika doğrulamasını devre dışı bırakmak için kullanılır. Bu komutu kullanma sebebim kullandığım sürümden dolayı sertifika hatası almaktaydım.Bu komut yerine sizler -TrustServerCertificate komutunu deneyebilirsiniz
-SqlInstance: SQL Server örneğinin adını belirtir.
-Database: Yedeklenecek veritabanının adını belirtir.
- Backup-DbaDatabase: Veritabanı yedeklemesi yapar.
Backup-DbaDatabase -SqlInstance ‘Your_InstanceName’ -Database ‘DatabaseName’ -Path ‘C:\BACKUP’ -Type Full -CompressBackup -Checksum -CopyOnly -Verify
-SqlInstance: SQL Server örneğinin adını belirtir.
-Database: Yedeklenecek veritabanının adını belirtir.
-Path: Yedeğin kaydedileceği dosya yolunu belirtir.
-Type: Yedekleme türünü belirtir.
CompressBackup: Bu, yedekleme dosyasının disk alanını azaltmak için veritabanı yedeğini sıkıştırır.
–Checksum: Yedekleme sırasında veri bütünlüğünü kontrol eder.
-Verify: Yedekleme işlemi tamamlandıktan sonra, yedeğin doğruluğunu kontrol eder.
–CopyOnly: Bu seçenek, önceki yedekleme zincirini değiştirmeden bir yedekleme kopyası almanızı sağlar.
- Restore-DbaDatabase: Yedeklenen veritabanını geri yükler.
Restore-DbaDatabase -SqlInstance ‘Your_InstanceName’ -Database ‘DatabaseName’ -Path ‘C:\BACKUP\Database_202409010204.bak’ -WithReplace -NoRecovery -ReuseSourceFolderStructure
-SqlInstance: SQL Server örneğinin adını belirtir.
-Database: Restore dönülecek veritabanının adını belirtir.
-Path: Restore alınacak veritabanı dosya yolunu belirtir.
-WithReplace: Eğer hedef sunucuda aynı isimde bir veritabanı zaten varsa, bu parametre ile mevcut veritabanı üzerine yazılır.
–NoRecovery: Bu, ek geri yüklemeler yapılması gerektiğinde (örneğin, bir işlem günlüğü yedeğini geri yüklemek için) kullanılır.
-ReuseSourceFolderStructure: Yedekleme dosyasının orijinal dosya yapısını yeniden kullanır.
Ekstra Parametreler olarak;
-RelocateDataDirectory ve -RelocateLogDirectory: Eğer geri yüklenecek dosyaların yerlerini değiştirmek istiyorsanız, bu parametreleri kullanarak veritabanı veri ve log dosyalarını farklı bir dizine taşıyabilirsiniz.
- Get-DbaDbBackupHistory: Bir veritabanının yedekleme geçmişini gösterir.
Get-DbaDbBackupHistory -SqlInstance ‘Your_InstanceName’ -Database ‘DatabaseName’
-SqlInstance: SQL Server örneğinin adını belirtir.
-Database: Veritabanının adını belirtir.
- Move-DbaDatabase: Veritabanlarını bir sunucudan diğerine taşır.
Move-DbaDatabase -Source ‘SourceSqlInstance’ -Destination ‘DestinationSqlInstance’ -Database ‘DatabaseName’ -BackupRestore -DestinationDataDirectory ‘D:\SQLData’ -DestinationLogDirectory ‘E:\SQLLogs’ -WithReplace
-Source: Veritabanının taşınacağı kaynak SQL Server örneğini belirtir.
-Destination: Veritabanının taşınacağı hedef SQL Server örneğini belirtir.
-Database: Taşınacak veritabanının adını belirtir.
-BackupRestore: Bu seçenek, veritabanını yedekleyip daha sonra hedef sunucuda geri yükleyerek taşıma işlemini gerçekleştirir. Bu yöntem, veritabanını bir sunucudan diğerine taşırken güvenli bir yöntemdir ve downtime süresini en aza indirir.
-DestinationDataDirectory: Hedef sunucuda veritabanı veri dosyalarının (.mdf, .ndf) taşınacağı dizini belirtir.
-DestinationLogDirectory: Hedef sunucuda veritabanı log dosyalarının (.ldf) taşınacağı dizini belirtir.
-WithReplace: Eğer hedef sunucuda aynı isimde bir veritabanı zaten varsa, bu parametre ile mevcut veritabanı üzerine yazılır.
Sonuç
DBA Tools, geniş komut seti ve topluluk desteği ile SQL Server yönetimini daha verimli ve etkili hale getirmek isteyen veritabanı yöneticileri için vazgeçilmez bir araçtır.
Eğer henüz DBA Tools kullanmadıysanız, bu aracı denemek için şimdi mükemmel bir zaman!
Kaynak
https://www.sqlekibi.com/2019/09/26/dbatools-powershell-modulu-kurulumu/
https://docs.dbatools.io/