Tam ve Salt Kopya yedeklemeleri arasındaki temel fark, LSN'nin (Günlük Sıra Numarası) ve özellikle de DatabaseBackupLSN
güncellenip güncellenmediğidir.
Tam yedekleme yaptığınızda, DatabaseBackupLSN
güncellenir. Tam yedeklemeyi aldıktan sonra, bir Yedekleme yedeği alırsanız, yedeklemenin DatabaseBackupLSN
Tam yedeklemeyle eşleşen bir yedeği vardır ve bu nedenle SQL ikisini birbirine bağlayabilir (örneğin farkın tam olarak takip ettiği LSN'lerden bilir).
Sorun, zamanlanmış yedeklemeler çalıştığında gelir, bu nedenle ilk Tam yedeklemeniz ve ardından bir Diferansiyeller diziniz olur. Manuel olarak bir Tam yedek alırsanız, LSN güncellenir ve daha sonra bu noktadan sonra zamanlanmış yedekleme yoluyla aldığınız her Diferansiyel yedeklemenin orijinal LSN değil yeni LSN referansı olacaktır. Geri yüklemeye ihtiyaç duymanız durumunda, planlanan Tam yedeklemenizi geri yükleyebilirsiniz, ancak manuel işten sonra alınan Diferansiyel yedeklemelerden herhangi birini geri yüklemeye çalıştığınızda, LSN'ler eşleşmediği için başarısız olacağını görürsünüz.
Yalnızca Kopyala yedeklemesiyle, öğesine dokunmaz DatabaseBackupLSN
ve bu nedenle bu yedekleme zincirini bozmaz.
Sorunun iyi bir açıklaması ve neden bu kadar iyi görsel kılavuzlar içeren Michael K. Campbell'in Yedek Zincirini Kırmak - REDUX (Veya Yeme Karga) ' da neden bu kadar yanlış anladığı var :
Dört farklı LSN'nin ve bunların nasıl kullanıldığının iyi bir açıklaması için Simon Liew'in Yedeklemeler için SQL Server Günlük Dizisi Numaralarını Anlama konusuna bir göz atın .
Sorunu önlemenin yolu, bir veritabanının standart yedeklemelerini yapan birden fazla şeyin bulunmamasıdır. Herhangi bir adhoc veya ikincil yedeklemeler salt kopya seçeneğiyle yapılmalıdır, tüm ayrıntılar için Salt Kopya Yedekleri (SQL Server) bölümüne bakın, ancak aslında WITH COPY_ONLY
komutta belirtilen T-SQL aracılığıyla SSMS'de "Yalnızca Yedekleme" seçeneğini kullanın veya PowerShell ile -CopyOnly
parametreyi kullanın .