The tail of the log for the database "MEZUN" has not been backed up.
Use BACKUP LOG WITH NORECOVERY to backup the log if it contains work you
do no
HATA MESAJI:"Msg 3159, Level 16, State 1, Line 1
The
tail of the log for the database "MEZUN" has not been backed up. Use
BACKUP LOG WITH NORECOVERY to backup the log if it contains work you do
not want to lose. Use the WITH REPLACE or WITH STOPAT clause of the
RESTORE statement to just overwrite the contents of the log.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally."
AÇIKLAMA:Bu hata mesajını bir veritabanını açmaya (Restore) çalıştığınızda alırsınız.
Hatanın
nedeni ise, açmaya çalıştığınız veritabanının kopyasının, üzerine
açmaya çalıştığınız veritabanından daha eski olmasıdır.
Meselâ
"MEZUN" isimli veritabanınızın yedeğini en son 22 Aralık 2013tarihinde aldınız. Bundan sonra veritabanı üzerinde tasarım olarak veya
veri girişi olarak güncellemeler oldu. Ayın 23' ünde, ayın 22' sinde
aldığınız yedeği bir nedenden dolayı MEZUN veritabanının üzerine
açmak istediniz. İşte o zaman bu hatayı alırsınız.
ÇÖZÜM:Aslına
bakarsanız bu bir çeşit koruma sistemidir. Maksat, yeni verilerinizin
üzerine yanlışlıkla eski verilerinizin yazılmasını önlemektir ve bu
özellik SQL Server 2005 ile birlikte geldi.
Bu koruma sistemini açmak için (ki aslında uyarı mesajının içerisinde de çözümü söylüyor) iki yöntem kullanabilirsiniz.
1.
Yöntem: Veritabanınızın en güncel Log yedeğini alarak (NO_TRUNCATE ve
NORECOVERY parametrelerini kullanarak), yedeğinizi mevcut veritabanının
üzerine açabilirsiniz.
2. Yöntem: Bu yöntemde RESTORE komutuyla
birlikte REPLACE parametresini kullanarak (hiç yedek almadan) eski
yedeğinizi halihazırdaki veritabanınızın üstüne açabilirsiniz. Bu
yöntemde dikkate almanız gereken şey, bu açtığınız yedeği aldığınız
tarihten sonra veritabanınızdaki yapılan tüm değişiklikler
kaybolacaktır.