MSSQL Server Copy Only Backup

SQL Server dünyasında Copy-Only Backup, mevcut yedekleme zincirini (LSN – Log Sequence Number dizisini) bozmadan alınan “bağımsız” bir yedekleme türüdür.

Normal şartlarda SQL Server’da alınan her full yedek, bir sonraki “Differential” (fark) yedeği için referans noktası kabul edilir. Ancak bazen bu düzeni bozmadan, sadece o anki veriyi başka bir yere taşımak veya test yapmak için yedek almanız gerekir. İşte burada devreye Copy-Only girer.

SQL Server’da yedekleme işlemleri bir zincir gibi birbirine bağlıdır. Normal bir Full yedek aldığınızda, SQL Server “Differential Base” dediğimiz referans noktasını günceller.

  • Sorun: Eğer planlanmış bir yedekleme stratejiniz varsa (örneğin her Pazar Full, her gün Diff) ve siz Çarşamba günü “normal” bir full yedek alırsanız, Perşembe günkü Differential yedek artık Pazar gününü değil, sizin Çarşamba aldığınız yedeği baz alır. Bu da felaket anında geri dönüş (Restore) operasyonunu karmaşıklaştırır.
  • Çözüm: Copy-Only yedek aldığınızda, SQL Server bu yedeği “zincirin bir parçası değilmiş” gibi görür. LSN numaraları değişmez, mevcut yedekleme planınız etkilenmez.

Copy-Only Backup Türleri

Copy-Only yedekleme hem Full hem de Log yedekleri için kullanılabilir:

  • Full Copy-Only Backup: Diferansiyel tabanı (Differential Base) değiştirmez. Mevcut yedekleme stratejinize hiçbir etkisi yoktur. Her kurtarma modelinde (Simple, Full, Bulk-Logged) kullanılabilir.
  • Log Copy-Only Backup: Log zincirini (Log Chain) bozmaz. Mevcut Transaction Log yedekleme rutininizi etkilemeden o anki logların bir kopyasını almanızı sağlar. Genellikle sadece “Full” veya “Bulk-Logged” modellerde anlamlıdır.

Veritabanı Task> Backup bölümünden Copy-only backup yöntemiyle backup işlemiyle gerçekleştirebiliriz.

Yukarıda açıklama kısmında Copy-only yöntemi ile backup işleminin sadece Full ve Transaction log yöntemi ile alacağını belirtmiştik. Aşağıdaki ekran resminde çerçeve içerisine alınmış bölümden Copy-Only backup işlemini gerçekleştiririz.

Yukarıda yapılan işlemin script’ini aldığımızda normal backup script’imizden farkı Copy-Only yönteminin olmasıdır.

BACKUP DATABASE [AdventureWorks2017] TO  DISK = N'C:\Backup\FULL2.bak' WITH  
COPY_ONLY, NOFORMAT, NOINIT,  NAME = N'AdventureWorks2017-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

Eğer veritabanının bir kopyasını alıp kendi bilgisayarınıza kuracaksanız, yazılımcı arkadaşınıza test yapması için data verecekseniz veya raporlama için anlık bir yedek lazımsa mutlaka Copy-Only kullanmalısınız. Aksi takdirde, gerçek bir sistem çökmesi anında “Differential” yedekleriniz çalışmayabilir çünkü aradaki zinciri bozmuş olursunuz.

Başka makalede görüşmek dileğiyle..

Başkaları ile alay etmeyin. Hucurat-11

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir