SQL Server Veritabanınızı Komut Satırından Yedekleme ve Geri Yükleme
Bir SQL Server bakım planının en önemli kısmı veritabanlarınızı düzenli olarak yedeklemektir. Bir veritabanını yedeklemek için, veritabanının ilgili MDF ve LDF dosyalarını kopyalayamazsınız, çünkü SQL Server bunlara kilitlenir. Bunun yerine, SQL Server üzerinden gerçek bir yedekleme dosyası oluşturmanız gerekir..
Bu, SQL Management Studio içerisinde bir Bakım Planı geliştirilerek yapılabilirken, SQL Server'ın ücretsiz Express sürümleri bu arayüzü sunmaz. Bu soruna geçici bir çözüm bulmak için, Windows Yönetici olarak oturum açarken aşağıdaki komutu çalıştırarak veritabanlarınızı kolayca yedekleyebilirsiniz:
SqlCmd -E -S Sunucu_adı - Q “YEDEKLEME VERİTABANI [Name_of_Database] DISK İÇİN =" X: PathToBackupLocation [Name_of_Database] .bak "”
Aşağıdaki örnekler yardımcı olacaktır.
Varsayılan SQL Server örneği:
SqlCmd -E -S MyServer -Q “YEDEKLEME VERİTABANI [MyDB] DİSKE =" D: BackupsMyDB.bak "”
Adlandırılmış SQL Server örneği:
SqlCmd -E -S MyServerMyInstance -Q “YEDEKLEME VERİTABANI [MyDB] İÇİN DİSK =" D: BackupsMyDB.bak "”
Yukarıdakiler, olağanüstü durum kurtarma için kullanılabilecek “D: BackupsMyDB.bak” dosyasına “MyDB” nin tamamen geri yüklenebilir bir yedek kopyasını oluşturur. Elbette, yedekleme konumunu ve dosyayı istediğinize göre değiştirebilirsiniz, ancak yerel makinede bulunan bir klasör konumunu belirttiğinizden emin olun. Bu yedekleme dosyası daha sonra bir teyp sürücüsüne veya başka bir harici yedekleme konumuna kopyalanabilir.
Yaygın bir soru “Eşlenen bir sürücüye veya UNC konumuna bir yedekleme dosyası oluşturulabilir mi?” Ve hızlı cevap hayır. Bunun nedeni, SQL Server Windows Hizmetinin yalnızca yerel makineye erişimi olan bir kullanıcı hesabı olarak çalışmasıdır. Hizmetin çalıştığı hesabı değiştirebilirsin, ancak güvenlik nedeniyle bu önerilmez..
Veritabanı Yedeklemesini Komut Satırından Geri Yükleme
Bir veritabanını bir yedekleme dosyasından geri yüklemek için aşağıdaki komutu kullanmanız yeterlidir:
SqlCmd -E -S Sunucu_adı -Q “DATABASE DESTABASE [Name_of_Database] FROM DISK =" X: PathToBackupFile [File_Name] .bak "”
Örneğin:
SqlCmd -E -S MyServer -Q “DISK'DAN VERİTABANININ DESTEKLENMESİNİ [MyDB] =" D: BackupsMyDB.bak ""
Yukarıdaki komut, “D: BackupsMyDB.bak” yedek dosyasında depolanan verilerden “MyDB” yedeğini geri yükler. Yedekleme dosyası oluşturulduğundan beri MyDB'de yapılan değişiklikler kaybedilecek.
Yukarıdaki komutu kullanırken hatırlanması gereken önemli bir nokta, ilgili yedekleme dosyasının oluşturulduğu SQL Server'da kullanılması amaçlanmış olmasıdır. SQL yedekleme dosyaları, yedekleme dosyasındaki veri dosyalarının nerede ve nasıl kopyalanacağını kontrol eden bilgileri 'sahne arkasında' depolar. Farklı bir SQL Server'dan bir yedeği geri yüklüyorsanız, yedekleme dosyasındaki yol konumları, geri yüklediğiniz sunucuyla eşleşmeyebilir ve bir hata ortaya çıkar. Bu çalışılabilir olsa da, başka bir SQL Server'da oluşturulan yedeklemeleri SQL Management Studio aracını kullanarak geri yüklemek çok daha kolaydır.
Not: Yukarıdaki komutlar SQL 2005 ve daha yeni sürümlerde çalışır (herhangi bir sürüm). SQL 2000 ve önceki sürümlerde 'SqlCmd' yerine 'oSql' yazın..