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: