Veritabanının (MSDE, Sql Server), askıda (Suspect) durumunda kalması

Veri bütünlüğü bozulmuş datanın kurtarma yöntemi aşağıdaki gibidir.
Log dosyası bulunmayan ve askıda-şüpheli durumda (Suspect) kalmış bir database in data dosyasını sp_attach_single_file_db ile database e eklemek mümkün değil. Bu durumda :

"Server: Msg 1813, Level 16, State 2, Line 1 Could not open new database 'test'. CREATE DATABASE is aborted.
Device activation error. The physical file name 'c:\.................
_log.ldf' may be incorrect." gibi bir hata alınabilir.

Yapılabilecek işlem adımları:

Dikkat: Bu islemler sonunda kesin olmamakla beraber database consistency bozulabilir.

1- Aynı isimle boş bir database yaratın.

2- select status from sysdatabases where name= 'db_name' ile yeni yaratılan database in durumunu kontrol edin. Dönecek değer "1077936153" gibi bir degerdir. (db_name:Yeni yaratilan database in adı)

3- Database in durumunu Emergency (bypass recovery) moda geçirmek için sysdatabases tablosunda databasein status bilgisini değiştirmek gerekir.
Bunun için (sysdatabases tablosunda update yapabilmek için.) sp_configure 'allow update',1 Reconfigure WITH OVERRIDE satırlarını çalıştırın.

4- update sysdatabases set status = 32768 where name='db_name' ile status degerini değiştirin.

5- SQL Server servisini durdurun.

6- Bozuk data dosyasını boş data dosyası üzerine kopyalayın. Yeni database in log dosyasını silin.

7- SQL Server servisini çalıştırın.

8- DBCC rebuild_log('db_name','c:\program files\.........._log.ldf') satirini çalıştırın.

9- "Warning: The log for database 'test' has been rebuilt. Transactional consistency has been lost. DBCC CHECKDB should be run to validate physical consistency. Database options will have to be reset, and extra log files may need to be deleted." Mesajını alırsınız.

10- Database DBA use only modundadır. Options bölümünden restrict access check ini kaldırın.

11- sp_configure 'allow update',0
reconfigure WITH OVERRIDE
satırlarını çalıştırın

12- Database iniz kullanıma hazırdır.