SQL Server sunucusu, dosyaları zarar gördüğünde ve veritabanı hasarlı dosyayı onaramadığından suspect moda geçer. Böyle bir durumda ilgili veritabanına bağlanmak, veritabanından veri okumak ve yazmak için bağlanamazsınız.
Örnek bir senaryo olarak bir veritabanının log file ını farklı bir klasöre taşımak üzere modify ederken File Name kısmını yanlış yazılmasından kaynaklanan ve veritabanını Offline moda çektikten sonra log file ını taşınacak klasöre kopyalama işlemi sonrası, veritabanını Online moda çekmeye çalıştığımda log file’ını ilgili klasörde doğru bir şekilde bulamayışından kaynaklı veritabanının modunun Suspect’e düşerken gözlemlemiş bulunmaktayım.
Peki Suspect Moda Başka Hangi Durumlarda Düşer?
- Corrupt olmuş MDF, NDF veya LDF dosyaları.
- Veritabanının erişilemeyen veri dosyaları.
- Sistemin aniden kapanması veya yanlış bir şekilde kapatılması.
- Rollback ve roll forward işlemlerinin tamamlanamaması.
- Storage’daki disk alanının çok düşük kalması.
- Sistem sorunları.
- Ani elektrik kesintileri.
-
Donanım arızası.
Bu Durumda Neler Yapmalıyız?
- Suspect modu öncelikle sıfırlamak için:
EXEC SP_RESETSTATUS ‘DatabaseName’;
ALTER DATABASE DatabaseName SET EMERGENCY
Büyük veritabanları için PHYSICAL_ONLY seçeneği tercih edilebilir.
DBCC CHECKDB (‘DatabaseName ‘)
ya da
DBCC CHECKDB (‘DatabaseName’) WITH PHYSICAL_ONLY;
ALTER DATABASE DatabaseName SET SINGLE_USER WITH ROLLBACK IMMEDIATE
BACKUP DATABASE [DEMO] TO DISK = N’D:\BackupPath\DatabaseName.bak’
WITH COPY_ONLY
,NOFORMAT
,NOINIT
,NAME = N’DatabaseName-Full Database Backup’
,SKIP
,NOREWIND
,NOUNLOAD
,STATS = 10
GO
DBCC CHECKDB (‘DatabaseName’, REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE DatabaseName SET MULTI_USER
Bu işlemleri gerçekleştirebilmeniz için sysadmin olmanız gerekmektedir.
Bu konuyla ilgili sorularınızı https://forum.mshowto.org alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
TAGs: Online, Offline, Suspect, Emergency, Database States, SQL Server, Database States in SQL Server, DBCC, DBCC CHECKDB, REPAIR_ALLOW_DATA_LOSS, SP_RESETSTATUS, Rollback