27 Şub by NURULLAH ÇAKIR

Tail Log Backup

Tail Log Backup henüz yedeği alınmamış log kayıtlarının backup’ını alır. Bu backup’ı kullanarak son ana dönebiliriz. Tail Log Backup aldıktan sonra veritabanı restoring mode’a geçer ve bu şekilde son log backup olduğunu garanti altına alır.

 

Aşağıdaki şekilde tail log backup alabilirsiniz.

 

Öncelikle veritabanına sağ tıklayarak Tasks ve Backup diyoruz.

 

 

 

 

Karşımıza gelen ekranda Backup type kısmından Transaction Log’u seçiyoruz ve Back up to kısmında Disk’i seçerek Add diyoruz. Back’ı alacağımız path’i seçiyoruz ve backup’a .trn uzantılı bir isim vererek ok diyoruz.

 

 

 

 

 

Daha sonra Media Options kısmına geçiyoruz ve aşağıdaki gibi Transaction log kısmından Back up the tail of the log, and leave the database in the restoring state diyerek tail log backup’ımızı alıyoruz.

 

 

 

 

Yaptığımız işlemin script’ini yukardaki Script yazan yere tıklayarak alabiliriz. Bu script’i aşağıda görebilirsiniz.

BACKUP LOG [Test] TO  DISK = N'C:\MSSQL\TailLogTest.trn' WITH  NO_TRUNCATE , NOFORMAT, NOINIT, 
NAME = N'Test-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  NORECOVERY ,  STATS = 10
GO

 

Script ile yaparak biraz daha esnek olabiliriz. Scriptte NORECOVERY’i eklersek veritabanını restoring mode’a sokar. Bu şekilde makalenin başında anlattığım gibi aldığımız tail log backup’ın son log backup olduğunu garanti altına almış oluruz. NO_TRUNCATE ise sadece hasar görmüş veritabanlarında kullanılmalıdır. Eğer veritabanınız hasar görmediyse bu kısmı scriptten çıkarmalısınız.

 

Tail Log Backup script’ini çalıştırdığınızda aşağıdaki gibi bir hata alabilirsiniz.

Msg 3101, Level 16, State 1, Line 3

Exclusive access could not be obtained because the database is in use.

Msg 3013, Level 16, State 1, Line 3

BACKUP LOG is terminating abnormally.

 

Script’in başına aşağıdaki gibi bir ekleme yaparak tekrar çalıştırıyoruz.

 

use master
go
ALTER DATABASE Test SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE Test SET MULTI_USER WITH ROLLBACK IMMEDIATE
GO
BACKUP LOG [Test] TO  DISK = N'C:\MSSQL\TailLogTest.trn' WITH  NOFORMAT, NOINIT, 
NAME = N'Test-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  NORECOVERY ,  STATS = 10
GO

 

Loading

Bir yanıt yazın

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