MSSQL in Recovery Mode Problem

MS SQLMicrosoft SQL Server üzerinde çalıştığınız veritabanınızın in Recovery Mode durumunda olduğunu görseniz ve ona erişemiyor olduğunuzu görseydiniz ne yapardınız?

Evet bu sorun sabah saatleri itibari ile uykulu gözlerimin bir anda açılmasını ve soğuk duş etkisi ile uyanmamı sağladı. 🙂 Yaklaşık 3 yıldır üzerinde çalıştığım projeme ait veritabanına ulaşmak istediğimde bu hatayı aldım.

Eğer bu tip bir sorun ile sizlerde karşılaşmışsanız aşağıdaki kodu çalıştırmak sureti ile bilgilerinizi düzeltebilirsiniz. Tek yapmanız gereken proje_veritabani yazan yere hasarlı olan veritabanınızın ismini yazmak.

    declare @veritabani as nvarchar(max);
    declare @sql as nvarchar(max);

    set @veritabani='proje_veritabani';

    set @sql='USE master;
    EXEC sp_resetstatus ''' + @veritabani + ''';

    USE ' + @veritabani + ';
    DBCC CHECKDB WITH NO_INFOMSGS;

    ALTER DATABASE ' + @veritabani + ' SET EMERGENCY

    ALTER DATABASE ' + @veritabani  + ' SET SINGLE_USER

    DBCC CHECKDB(' + @veritabani + ', REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS;

    USE ' + @veritabani + ';
    DBCC CHECKDB WITH NO_INFOMSGS;
    ALTER DATABASE ' + @veritabani + ' SET Online;
    ALTER DATABASE ' + @veritabani + ' SET Multi_USER WITH NO_WAIT;
    '
    exec (@sql);

Kolay gelsin.