Bozuk (Suspect) SQL database'i düzeltme


August 2021 (0) Iptv 5/9/2024


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.

1.       DatabaseName yazan yerleri suspect olmuş veritabanınızın adıyla değiştirin ve komutu çalıştırın.
             EXEC SP_RESETSTATUS ’DatabaseName’;
             ALTER DATABASE DatabaseName SET EMERGENCY
             DBCC CHECKDB(’DatabaseName’)
             ALTER DATABASE DatabaseName SET SINGLE_USER WITH ROLLBACK IMMEDIATE
             DBCC CHECKDB (’DatabaseName’, REPAIR_ALLOW_DATA_LOSS)
             ALTER DATABASE DatabaseName SET MULTI_USER
 
            2.       Yukarıdaki kodlardan sonuç alamadıysanız bunları deneyin :
DBCC CHECKDB (‘DatabaseName’, REPAIR_ALLOW_DATA_LOSS)
DBCC CHECKDB (‘DatabaseName’)
DBCC CHECKDB (‘DatabaseName’, REPAIR_REBUILD) 
 
3.       Ve üçüncü olarak iki seçenek de fayda etmediyse :
USE master;
GO
EXEC sp_resetstatus’DatabaseName’;
USE DatabaseName;
DBCC CHECKDB WITH NO_INFOMSGS;
 
4.       Son olarak seçeneğimiz kalmadığında aşağıdakileri kullanabiliriz
USE master;
GO
ALTER DATABASE DatabaseName SET EMERGENCY
ALTER DATABASE DatabaseName SET SINGLE_USER
DBCC CHECKDB(DatabaseName, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS;
USE DatabaseName;
DBCC CHECKDB WITH NO_INFOMSGS;

 


Yorum yapabilmek için giriş yapınız

Giriş Yap

Sitede Ara

En Çok Okunanlar

Android Cihazlara POP3 E-Posta Hesabı Kurulumu (1761)
Windows simgelerinde beyaz ikon sorunu ve çözümü (1332)
SQL REPLACE() Kullanımı (884)
Yerel Ağ Bağlantısına girmek istediğimde ''Bağlantı özelliklerine erişmek için yeterli yetkiniz yok.Yöneticinize başvurun'' uyarısı.. (487)
Access violation at address 0518fde4 inmodule NETINFO.dll Read of adress 00000000 (393)
CMD komutları ile Windows Aktivasyonu (367)
PatchCleaner v1.4.2.0 indir Windows Installer Temizleme Programı (357)
MailEnable Webmail Unknown or Disabled User Hatası (349)
Server communication failure. Please refresh your browser and try again. (339)
Bedava Netflix Hesapları 2022 (Ücretsiz Premium Hesaplar) (332)
There is already an object named in the database Cozum (326)
Turbobit Premium Hesaplar Bedava Güncel Üyelikler 2022 (315)
Turbobit Premium Hesaplar Güncel Liste 2022 (313)
Windows 10 Gereksiz Servislerin Kapatılması - Resimli Anlatım (295)
Yazıcı hata kodu 0x0000011b sorun ve cozumu (273)
Windows Bileşen Deposu (WinSxS) Klasörünü Temizleme (270)
ASP.NET MVC Email Doğrulama Sayfası (Verification) (233)
Adobe After Effects CC 2019 Full İndir – v16.1.1.4 (232)
Linq ile inner Join Kullanımı (229)
Dinozor Nesline Son Veren Silen Asteroit Felaketi, Nasıl Gerçekleşti? (220)
3 Adımda Server olay loglarının silinmesi (199)
Windows 10 durdurulabilecek hizmetler (181)
Visual Studio 2017 Dil Ekleme/Değiştirme (175)
Bedava Turbobit Premium Hesap 2022 (%100 Güncel Hesaplar) (165)
Mailenable IP Adresi Nasıl Banlama / How to ip ban block on Mailenable? (154)

Son Yorumlar