SQL Server DATABASE(Suspect) Nasıl düzeltilir ?

Merhaba dostlar, Bu yazımda SQL Seritabanları ile uğraşan tüm DBA’lerin başına gelebilecek bir konudan bahsetmek istiyorum. Ben bir kaç defa restart işlemlerinde karşılaştım. Birden çok veritabanı bulunan SQL sunucularda bazen başınıza gelebiliyor.

Database(Suspect) hatası bu hatadan nasıl kurtulabileceğinizi kısa ve basitçe anlatmaya çalıştım. Faydalı olması dileklerimle.

REPAIR_FAST : Geriye dönük veri onarım işlevini gerçekleştirir. Veri kaybı olmaz fakat hata alabilirsiniz.

REPAIR_REBUILD : Bir önceki işlevden bir sonuç alınamadığı zaman kullanılabilir, veri kaybı olmaz fakat hata alabilirsiniz.
 
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 mutlaka yedek alınız.

Not : 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.

Aşağıdaki Komutları Uygulayınız :

EXEC SP_RESETSTATUS VERITABANIADI

ALTER DATABASE ( VERITABANIADI ) SET EMERGENCY
GO

DBCC CHECKDB ( VERITABANIADI )
GO

ALTER DATABASE VERITABANIADI SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO

DBCC CHECKDB ( VERITABANIADI , REPAIR_FAST)
GO

DBCC CHECKDB ( VERITABANIADI , REPAIR_ALLOW_DATA_LOSS)
GO

ALTER DATABASE ( VERITABANIADI ) SET MULTI_USER
GO

Not : Yukarıdaki işlemde verikaybı göz alınmıştır. Ver,kaybı toleransınız yok ise ” REPAIR_ALLOW_DATA_LOSS ” komutunu REPAIR_FAST veya REPAIR_REBUILD olarak deneyiniz. Son çare olarak REPAIR_ALLOW_DATA_LOSS demenizi tavsiye ediyorum.


Bir cevap yazın

Connect with: