Ağ Veritabanına SQL Veritabanlarını Yedekleme
SQL veritabanlarını düzenli olarak yedeklemelisiniz. Tüm SQL sunucu veritabanlarınızı kolayca yerel bir sabit sürücüye yedeklemenin yollarını zaten açıkladık, ancak bu sürücü ve / veya sistem arızasına karşı koruma sağlamaz. Bu tür felaketlere karşı ek bir koruma katmanı olarak, yedeklerinizi bir ağ paylaşımına kopyalayabilir veya doğrudan oluşturabilirsiniz.
Yerel Olarak Yedekleyin ve Ağ Paylaşımına Kopyalayın
Bu görevi başarmanın tercih edilen ve en doğrudan yolu basitçe bir veritabanının yerel bir yedeğini oluşturmak ve ardından ilgili yedekleme dosyasını bir ağ paylaşımına kopyalamaktır. Bunu, şuna benzeyen bir toplu komut dosyası oluşturarak yapabilirsiniz:
SET LocalFolder = C: Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackup
SqlCmd -E -Q “MyDB Diskini Yedekle Veri Tabanı ="% LocalFolder% MyDB.bak "”
XCopy “% LocalFolder% MyDB.bak” “\ 192.168.16.55BackupDatabases” / Z / V
DEL “% LocalFolder% MyDB.bak”
Bu komut dosyası şunları yapar (satır satır):
- Yerel SQL yedekleme dizinine bir değişken ayarlar.
- Yerel SQL yedekleme dizinine MyDB'nin bir SQL yedeğini oluşturur (Windows Kimlik Doğrulama'yı kullanarak).
- Yerel yedekleme dosyasını bir ağ paylaşımına kopyalar.
- Yerel yedekleme dosyasını siler.
Yine, bu tercih edilen yöntemdir, çünkü kutunun dışında çalışır ve yedekleme yerel diskte oluşturulduğundan yedekleme hatası olasılığı asgari düzeydedir. Ancak, yedekleme dosyalarının yerel kopyalarını depolamak için yeterli disk alanınız yoksa, bu işlem başarısız olur. Bu durumda, doğrudan bir ağ paylaşımına ek disk alanı eklemeniz veya yedekleme yapmanız gerekecek.
Doğrudan Ağ Paylaşımına Yedekleme
Genellikle, aşağıdaki gibi bir komut kullanarak doğrudan bir ağ paylaşımına yedekleme oluşturmaya çalıştığınızda:
SqlCmd -E -Q “MyDB Diskini Yedekle Veri Tabanı =" \ 192.168.16.55BackupDatabasesMyDB.bak "”
Büyük olasılıkla aşağıdaki satırlar boyunca bir hata ile karşılaşacaksınız:
Msg 3201, Seviye 16, Durum 1, Sunucu JF, Satır 1
'\ 192.168.16.55BackupDatabasesMyDB.bak' yedekleme aygıtı açılamıyor. İşletim sistemi hatası 5 (Erişim reddedildi.).
Mesaj 3013, Seviye 16, Durum 1, Sunucu JF, Satır 1
YEDEKLEME VERİTABANI anormal biçimde sona eriyor.
Bu hata, Windows kimlik doğrulaması (-E anahtarı) ve Windows hesabını Windows Gezgini üzerinden dosyalara erişme ve dosyaya kopyalama yeteneği olarak kullanarak Windows Kimlik Doğrulama (-E anahtarı) ve Windows hesabını kullanarak SQL yedekleme komutunu çalıştırmanıza rağmen gerçekleşir..
Bu eylemin başarısız olmasının nedeni, SQL komutunun, SQL Server hizmetinin çalıştığı hesabın sınırları içinde yürütülmesidir. Bilgisayarınızdaki Servisler listesini görüntülediğinizde, büyük olasılıkla, SQL Server servisinin (Sistem Üzerine Giriş sütunu) çalıştığını göreceksiniz. Yerel sistem veya Network Service, network erişimi olmayan sistem hesaplarıdır..
Sistemimizde bir ağ paylaşımına yedekleme komutu başarısız oluyor, çünkü Yerel Ağ olarak çalışan SQL Server hizmetimiz var, bu da herhangi bir ağ kaynağına ulaşamıyor..
SQL’in doğrudan bir ağ paylaşımına yedeklemesini sağlamak için, SQL Server hizmetini ağ kaynaklarına erişimi olan bir yerel hesap olarak çalıştırmamız gerekir..
SQL Server hizmetinin özelliklerini ve Oturum Aç sekmesinde, hizmeti ağ erişim haklarına sahip alternatif bir hesap olarak çalışacak şekilde yapılandırın.
Tamam'ı tıklattığınızda, hizmet yeniden başlatılıncaya kadar ayarların geçerli olmayacağı konusunda bir uyarı alırsınız..
Hizmeti yeniden başlat.
Servisler listesi şimdi SQL Server servisinin yapılandırdığınız hesap olarak çalıştığını göstermelidir..
Şimdi doğrudan bir ağ paylaşımına yedekleme yapmak için komutu çalıştırdığınızda:
SqlCmd -E -Q “MyDB Diskini Yedekle Veri Tabanı =" \ 192.168.16.55BackupDatabasesMyDB.bak "”
Bir başarı mesajı görmelisin:
'MyDB' veritabanı için 152 sayfa işlendi, dosyada 'MyDB' dosyası 1.
'MyDB' veritabanı için 2 sayfa işlendi, dosyadaki 'MyDB_log' dosyası 1.
YEDEKLEME VERİTABANI, 154 sayfayı 0.503 saniyede (2.493 MB / sn) başarıyla işledi.
Yedekleme dosyası şimdi ağ paylaşım dizininde:
Ağ Paylaşımıyla İlgili Önemli Noktalar
Yedekleme komutunun, kimlik bilgileri istenmeden doğrudan ağ paylaşımına bağlanmayı beklediğini unutmayın. SQL Server hizmetini, çalışacak şekilde yapılandırdığınız hesap, ilgili kimlik bilgilerinin erişime izin verdiği ağ paylaşımına güvenilir bir bağlantıya sahip olmalıdır, aksi halde böyle bir hata oluşabilir:
Msg 3201, Seviye 16, Durum 1, Sunucu JF, Satır 1
'\ 192.168.16.55BackupDatabasesMyDB.bak' yedekleme aygıtı açılamıyor. İşletim sistemi hatası 1326 (Oturum açma hatası: bilinmeyen kullanıcı adı veya hatalı parola.).
Mesaj 3013, Seviye 16, Durum 1, Sunucu JF, Satır 1
YEDEKLEME VERİTABANI anormal biçimde sona eriyor.
Bu hata, hesabın kullanıcı adı ve şifresinin ağ paylaşımı tarafından kabul edilmediğini ve komutun başarısız olduğunu gösterir..
Akılda tutulması gereken bir başka sorun, yedekleme işleminin doğrudan bir ağ kaynağına gerçekleştirilmesidir, bu nedenle ağ bağlantısındaki hıçkırıklar yedeklemenizin başarısız olmasına neden olabilir. Bu nedenle, yalnızca kararlı olan ağ konumlarına yedeklemelisiniz (ör. VPN değil).
Güvenlik Uygulamaları
Daha önce de belirtildiği gibi, yerel olarak yedekleme yaptığınız ve ardından bir ağ paylaşımına kopyaladığınız yöntemi kullanmak, SQL Hizmetini yalnızca yerel sistem erişimine sahip bir hesap olarak çalıştırmanıza izin verdiği için tercih edilir..
Hizmeti alternatif bir hesap olarak çalıştırarak, olası güvenlik sorunlarına kapıyı açarsınız. Örneğin, kötü amaçlı bir SQL betiği alternatif hesap altında çalıştırılabilir ve ağ kaynaklarına saldırabilir. Ek olarak, ilgili hesapta yapılacak herhangi bir değişiklik (parola değişiklikleri / süreleri veya hesabın silinmesi / devre dışı bırakılması), SQL Server hizmetinin başlamamasına neden olur.
Alternatif bir hesap kullanarak SQL Server örneğinizi çalıştırırsanız, bu noktaları aklınızda tutmanız önemlidir. Uygun önlemler alınırsa bunlar durdurucuları göstermese de, ek sabit disk alanı eklemeyi düşünmeli ve ardından yerel yedekleme ve kopyalamayı uygulamalısınız; böylece yerel bir hesap kullanarak SQL hizmetini çalıştırabilirsiniz..