SQL yedekleme üzerindeki “yedekleme bütünlüğünü doğrula” nın etkisini / riskini anlama


12

Şu anda ortamımızdaki SQL Server 2005/2008 / 2008R2 / 2012 sunucularında yedeklemeler için standart bakım planları kullanıyoruz ve "Yedekleme bütünlüğünü doğrula" kutusu her zaman işaretlendi.

Bazı yedeklemeler çok uzun sürüyor, bu yüzden bu seçeneği kapatmanızı tavsiye ettim, ancak yönetimin bu değişikliğin etkisini ve risklerini belgelemem gerekiyor.

Bu opsiyonun kullanılması ve tarihini anlamak, sadece yedekleme işi için vakit ikiye bana gereksiz görünüyor zaman (Bence), herhangi bir hata olasılığı sırasında oluşacak oluşmaya yedekleme değil doğrulamak sırasında, adım.

Yanlış mıyım? Akış bandına veya başka bir şeye değil de diske yedekliyorsam bunu kapatmak en az risk midir? (Alakalıysa ağ üzerinden bir EMC DD-800 yedekleme cihazına yedekleriz.)

Bunu kapatmanın ne zaman güvenli olduğu konusunda herhangi bir resmi MS tavsiyesi var mı?

Ortamınızdaki her yedeklemede "doğrula" çalıştırıyor musunuz? Onları yerinde kontrol ediyor musun?

DÜZENLEME : Açıklamak için, bakım planında "yedekleme bütünlüğünü doğrula" seçeneğini işaretlediğinizde, SQL her yedeklemeden hemen sonra her veritabanında tam RESTORE VERIFYONLY yapacaktır . Bu, orijinal yedekleme kadar veri / IO kadar yoğundur ve (temel olarak) yedekleme işinin toplam süresini iki katına çıkarır. Bu, yedekte "sağlama toplamı" seçeneğini etkinleştirmeyle aynı şey değildir (bildiğim kadarıyla sihirbazda yapılamaz).


Herkese teşekkürler. Kendi referansım için, SQL Bakım planlarını kullanırken bile yedeklemelerde sağlama toplamını etkinleştirmek için bir izleme bayrağı kullanma hakkında bir bağlantı daha eklemek: nebraskasql.blogspot.com/2014/03/…
BradC

Yanıtlar:


5

Yanlış mıyım? Akış bandına veya başka bir şeye değil de diske yedekliyorsam bunu kapatmak en az risk midir?

Hayır, haklısın :-)

RESTORE VERIFYONLYyalnızca yolsuzluk durumunda veritabanınızı kurtarabileceğinizden emin olmaz. Doğası gereği herhangi bir bütünlük kontrolü yapmaz.

Daha iyi bir yol, periyodik olarak yedeklerinizi almak ve farklı bir sunucuda geçerli bir geri yükleme yapmak ve üzerinde DBCC CHECKDB yapmak olacaktır.

GUI T-SQL tarafından elde edilebilecek böyle bir çok seçenek sunmadığı için bakım planlarının büyük bir hayranı değilim backup .. with CHECKSUM.

Gönderen Paul Randal'ın Mit blogunda

24p) RESTORE kullanarak… VERIFYONLY İLE tüm yedeklemeyi doğrular

Hayır. VERIFYONLY kullanımı yalnızca yedekleme başlığının yedek başlık gibi göründüğünü doğrular. Yedeklemeyi yalnızca CHECKSUM İLE kullanarak ve GERİ YÜKLE… VERIFYONLY İLE ve CHECKSUM İLE kullanarak geri yüklemenin, tüm yedekleme üzerindeki sağlama toplamı da dahil olmak üzere daha kapsamlı denetimler gerçekleştirmesi yeterlidir .

Ortamınızdaki her yedeklemede "doğrula" çalıştırıyor musunuz? Onları yerinde kontrol ediyor musun?

VERIFYONLY'ı çalıştırmıyorum. Bunun yerine CHECKSUM ile yedek alıp farklı bir sunucuda + CHECKDB '' i geri yükledim. Yaratıcı olmak istiyorsanız Veritabanı Yedeklemelerini Doğrulamak için İstatistiksel Örnekleme yaklaşımını takip edebilirsiniz .

Bu, yedekte "sağlama toplamı" seçeneğini etkinleştirmeyle aynı şey değildir (bildiğim kadarıyla sihirbazda yapılamaz).

Etkinleştirebilir İz Bayrak 3023 böylece CHECKSUMseçeneği otomatik YEDEK komutu için etkindir. Her zaman olduğu gibi, ortamınızdaki izleme bayraklarının davranışını test edin!

Sonuç olarak - hendek bakım planları ve ihtiyaçlarınıza göre özelleştirmenizi sağlayacak daha mantıklı bir yedekleme çözümü (ipucu: Ola'nın yedekleme çözümü) kullanın.

(Alakalıysa ağ üzerinden bir EMC DD-800 yedekleme cihazına yedekleriz.)

Yerel olarak diske yedekleme yapın ve ardından yedeklemeyi sunucudan yerel olarak bir ağ paylaşımına (yedekleme sunucusu) kopyalayacak bir PowerShell aktarma işine sahip olun. Bu, doğrudan bir ağ paylaşımına kopyalamaktan daha hızlı olacaktır.

Ayrıca, veri dosyalarında otomatik büyümeye yardımcı olacak ve geri yükleme süresinin azaltılmasına yardımcı olacak (veritabanlarınızı geri yüklemeniz gerekiyorsa) anlık dosya başlatmayı etkinleştirin. Kullanışlı seçeneklere sahip olmak her zaman iyidir.

İyi bir okuma olacaktır: Yedekler: Bir Kurtarma Stratejisi Planlama


Ayrıntılı cevabınız için teşekkürler. Yedekleme adımında hataların biraz daha yüksek bir yüzdesini yakalaması ve umarım YEDEKLEME VERIFYONLY atlama (çok hafif) riskini telafi etmelidir yedek üzerinde sağlama toplamı etkinleştirilmesini önerebilir düşünüyorum. Farklı bir sunucuya düzenli olarak geri yükleme ile ilgili önerilerinizi anlıyorum, ancak ortamımızın büyüklüğü nedeniyle, belki de örnekleme dışında, makul görünmüyor.
BradC

@BradC Cevabımın sizin için yararlı olduğuna sevindim. Cevabımın özü , esneklikten yararlanabilmeniz ve açık ellerle uyarlayabilmeniz TSQLiçin GUI(bakım planları) yerine kullanmaktır . CTP 2.4MS'nin SQL Server Akıllı Bakım Planları olarak adlandırdığı SQL Server 2016'da tıpkı bir FYI .. bakım planı geliştirilmiştir - en iyi uygulamaları entegre eder ve anında en uygun stratejileri belirleyebilir. Hala hiçbir GUI TSQL'i yenemez :-)
Kin Shah

Teşekkürler @Kin. Açıkçası hataları ve komut dosyası bakımı ile ilgili kendi sorunları olabilir, diğer ortamlardan tüm özel komut dosyası yaklaşımı aşina değilim. Bazı üçüncü taraf sıkıştırma aracılarını değerlendiriyoruz, bu nedenle sonunda özel komut dosyalarına ihtiyaç duyacağız.
BradC

2

Sonuç olarak, bir yerde bir veritabanı geri yükleme yapmazsanız, verilen bir yedekleme dosyasının iyi olduğundan emin olamazsınız.

Yedeklemelerinizi doğrulamak için ideal test, veritabanı yedeklemelerinin ve veritabanı günlüğü yedeklemelerinin günlük işleminizin bir parçası olarak her zaman geri yüklendiği bir ortam oluşturmaktır. Bu, log-shipping kullanmanın avantajlarından biridir ...

Hala doğrulamaya sadık kalmak istiyorsanız, özellikle bunu yapmak için bir ortam oluşturabilirsiniz. Bu, işi (muhtemelen) üretim sunucunuzdan boşaltır ve çalışma süresini azaltır.

Son olarak, bakım planlarından uzaklaşmayı düşündünüz mü? Ola'nın komut dosyaları gibi komut dosyaları yedekleme ve bakım dışındadır: https://ola.hallengren.com/


Gelecekte bakım planlarından uzaklaşabiliriz, çünkü bazı üçüncü taraf yedekleme aracılarını (belirli yedekleme cihazımızla çalışmak için yapılmış) değerlendiririz. Bunların Ola'nın geliştirdiklerine benzer özel komut dosyaları gerektireceğini varsayıyorum.
BradC

1

Teknik olarak geri yükleme, bir geri yükleme yapmak gibidir, ancak geçerli bir yedeğini kontrol etmek için veritabanını geri yüklemenin daha iyi bir kontrolü yoktur. Verifyonly'nin geçtiği ancak veritabanının bozulma nedeniyle geri yüklenmeyeceği bir örneğimiz var, amacım yedeklemenin bir doğrulaması olarak buna güvenmiyorum. Artık geçerliliklerini kontrol etmek için tüm veritabanlarımızı ayrı bir örnekte geri yükleyen bir sistem geliştirdik, bu her zaman mümkün değil, bu yüzden haftada belirli bir veritabanını örneklemeyi deneyin. Uzun ve kısa% 100 doğrulamaya güvenmiyor.


Doğru, ama gerçekten soruma cevap verip vermediğinden emin değilim, çünkü çevremizde RESTORE VERIFYONLY özelliğini kapatmanızı öneririm. Demek istediğiniz nokta olmadığı sürece: "yalnızca gerçek bir tam geri yükleme yedeklemenin geçerli olduğunu kanıtlayacağından, bu seçeneğin kapatılması riski önemli ölçüde artırmaz".
BradC

Doğru, tek gerçek kontrol imo aslında gerçek bir geri yükleme
MrG
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.