Bozuk (Suspect) SQL database'i düzeltme
Sql Server ile uğraşan herkesin başına gelmesi kuvvetle muhtemel bir durumdur bir veritabanının "Suspect" duruma gelmesi
Bu durumun telafisi için birden çok çözüm mevcut bunları sırasıyla yazacağım. Ancak her şeyden önce bilmeniz gereken bazı detaylar var
REPAIR_FAST : Geriye dönük veri onarım işlevini gerçekleştirir. Veri kaybı olmaz fakat hata alma olasılığı diğerlerine göre daha fazladır.
REPAIR_REBUILD : Bir önceki işlevden bir sonuç alınamadığı zaman kullanılabilir, veri kaybı olmaz fakat hata alma olasılığı vardır.
REPAIR_ALLOW_DATA_LOSS : Rebuild yaptığınız halde hata almışsanız bu işlemi deneyebilirsiniz fakat veri kaybı olasılığı vardır. Bu nedenle öncesinde yedekleme yapılmalıdır.
Önemli bir hatırlatma : Suspect modundaki veritabanını sakın "Detach" etmeyin yoksa bir daha "Attach" edemezsiniz. Bu yüzden mutlaka ilk iş olarak .mdf ve .log dosyalarını yedekleyip aşağıdaki yöntemlerle şansınızı deneyin. Her denemeden sonra SQL server’ ı yeniden başlatmayı unutmayın.
DBCC CHECKDB (‘DatabaseName’)
DBCC CHECKDB (‘DatabaseName’, REPAIR_REBUILD)
GO
EXEC sp_resetstatus’DatabaseName’;
USE DatabaseName;
DBCC CHECKDB WITH NO_INFOMSGS;
GO
ALTER DATABASE DatabaseName SET SINGLE_USER
DBCC CHECKDB(DatabaseName, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS;
USE DatabaseName;
DBCC CHECKDB WITH NO_INFOMSGS;