Bunu yapabilmek için önce bir kez Full Backup alınmalıdır. Ardından differential backup ile son alınan full backuptan itibaren yapılan değişiklikler yedeklenir.
Bu işlemler SQL Management Studio ile yapılabilir. Ancak ben dokümantasyon amaçlı olarak SQL komutları ile nasıl yapıldığını açıklayacağım. Öncelikle aşağıdaki full backup komutu ile baz alınacak yedekleme dosyası oluşturulur:
USE [master] BACKUP DATABASE [MyDb] TO DISK = N'C:\Backup\MyDb-Full.bak' WITH NOFORMAT, INIT, NAME = N'MyDb-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10 GO
Ardından gerçekleşen ufak değişimler sonrasında farklı bir dosya adı belirterek daha küçük boyutlu bir yedek dosyası oluşturmak için aşağıdaki kodu kullanabiliriz:
USE [master] BACKUP DATABASE [MyDb] TO DISK = N'C:\Backup\MyDb-Diff1.bak' WITH DIFFERENTIAL , NOFORMAT, NOINIT, NAME = N'MyDb-Diff Database Backup #1', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO
Şu anda elimizde 1 adet FULL ve bir adet DIFFERENTIAL backup dosyası bulunuyor. Şimdi bunları restore etmek istiyoruz. Burada dikkat edeceğimiz bir husus, full backup restore edildikten sonra burada bir değişiklik olmuşsa tekrar full backup restore etmek istersek NORECOVERY seçeneğini belirtmemiz gerektiğidir. O halde aşağıdaki komut ile full backup u restore ediyoruz.
USE [master] RESTORE DATABASE [MyDb] FROM DISK = N'C:\Backup\MyDb-Full.bak' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 5 GO
Ardından differential backup dosyasındaki değişimleri restore etmek için aşağıdaki kodu kullanıyoruz.
USE [master] RESTORE DATABASE [MyDb] FILE = N'MyDb' FROM DISK = N'C:\Backup\MyDb-Diff1.bak' WITH FILE = 1, RECOVERY, NOUNLOAD, STATS = 10 GO
Hiç yorum yok:
Yorum Gönder