SQL Veritabanini Suspect – Emergency Mod’dan kurtarmak
Bazen şirketinizdeki elektrik kesintisi sonucu olmadık bir şekilde aksilikler üst üste gelmiş olabilir. Dosyalar bozulmuş, database deki MDF ve LDF dosyaları bir biriyle uyumsuz olduğuna dair hatalar veriyor ve ya MASTER db in bozulduğuna dair uyarılar alıyor olabilirsiniz.
Database genellikle şu sebeplerdeb SUSPECT moduna düşmektedir.
- Database bozulmuş olabilir
- LDF dosyası bozulmuş olabilir
- Boş disk alanı kalmamış olabilir yada harddiskiniz de bozulmalar meydana gelmiş olabilir.
- SQL serverin açılabilmesi için yeterli ram in olmadığı durumlarda bu moda düşebilir.
Bu dosyayı normale çekebilmek için aşağıdaki adımları yapmamız gerekiyor.
Not: DATABASE imin adı Axata_Entegrasyon dur siz burada kendi databaseinizin adını yazmanız gerekmektedir.
SQL üzerinde en üstte New Query I çalıştırarak query ekranında aşağıdaki komutları çalıştırmamız gerekmektedir. Ben ortamımda alt alta kodları yazdım, hangi kod bloğunu çalıştırmak istiyorsanız o bloğu seçerek klavyeden F5 tuşuna basarak sadece o komutu çalıştırabilirsiniz.
Suspect modda olan bir veritabanının yedeğini alamamaktayız bundan dolayı yeniden attach yapılana dek bozuk olan databaseinizi detach etmeyin.
-Database in statüsünü resetleyerek manuel müdahaleye izin verir
EXEC sp_resetstatus ‘Axata_Entegrasyon’
-Database dosyasını EMERGENCY moda çekiyoruz.
alter databaseAxata_Entegrasyon set emergency
-Database üzerinde veri bozukluğu olup olmadığını kontrol edelim
dbcc checkdb (‘Axata_Entegrasyon’)
-Database üzerinde değişiklik yapabilmek için SINGLE mod a alıyoruz
ALTER DATABASE Axata_Entegrasyon SET SINGLE_USER WITH ROLLBACK IMMEDIATE
-Database üzerindeki tam oluşmamış log ve veri dosyalarının silinmesi için aşağıdaki komutu çalıştırıyoruz. Dikkat*** Bazı veriler silinebilir
DBCC CHECKDB (‘Axata_Entegrasyon’, REPAIR_ALLOW_DATA_LOSS)
-Son olarak Databaseimizi normal moda a çekerek kullanmaya başlıyoruz
ALTER DATABASE Axata_Entegrasyon SET MULTI_USER
Bu komutlar sonrası herşeyin normale döndüğü gözlenmekte
Not: Bu makaledeki ekran görüntüleri canlı ortamda uygulanarak alınmıştır.
Referans: http://sqlservr.blog.com/2012/08/31/how-to-recovery-database-from-suspect-mode/