Suspect’e düşmüş veritabanlarında genelde veri kayıpları veya veritabanı bütünlüğünde hatalar oluşma ihtimali vardır. Transaction loglarınızda kalan işlemlerin database’e insertlenmeside aksayacağı için veri kaybınız olabilir.
Eğer ki veritabanınızda çok fazla bir hasar söz konusu değilsede bu veri kaybını en az ile atlatabilmenizde mümkün;
Ama bu işlemlere geçmeden önce bir kaç uyarı yapmak gerek; Bir Repair işlemini yarıda kesmeyiniz.Suspect olmuş bir Database’i Deattach etmeyiniz.
İlk Önce Suspect’ten çıkaralım
İşlemler listesi sırasıyla şöyledir.
Database Status’ü resetliyoruz.
EXEC SP_RESETSTATUS ‘DATABASEADI’
Db ile ilgili işlemleri yapabilmek için Single moda çekiyoruz.
ALTER DATABASE DATABASEADI SET SINGLE_USER
Db’yi Emergency Moda alıyoruz.
ALTER DATABASE DATABASEADI SET EMERGENCY
Bu işlem Db boyutunu kontrol eder.( Eğer Db boyutunuz yüksek zamanınız da azsa bu adımı atlayın derim)
DBCC CHECKDB (‘DATABASEADI’)
ndex bütünlüğünü bypass etmek için
DBCC CHECKDB(‘DATABASEADI’, NOINDEX)
Db gerekli Repair işlemlerini başlatmak için ;
DBCC CheckDB (‘DATABASEADI’,REPAIR_REBUILD)
yada DBCC CheckDB (‘DATABASEADI’,REPAIR_ALLOW_DATA_LOSS)
DBCC CheckDB (‘DATABASEADI’,REPAIR_ALLOW_DATA_LOSS)
(Bu işlemler verikayıplarına sebebiyet verecektir repair işlemi sırasında olan verilerin kaybıdır sadece )
Db’yi tekrar Multi User a ayarlıyoruz;
ALTER DATABASE DATABASEADI SET MULTI_USER
(Başarısız olur ise SQL Management Studio üzerindende bu işlemi yapabilirsiniz.)
Tüm işlemleri ise tek bir seferde şu şekilde gerçekleştirebilirsiniz.
EXEC SP_RESETSTATUS ‘DATABASEADI’
GO
ALTER DATABASE DATABASEADI SET SINGLE_USER
GO
ALTER DATABASE DATABASEADI SET EMERGENCY
GO
DBCC CheckDB (‘DATABASEADI’,REPAIR_ALLOW_DATA_LOSS)
GO
ALTER DATABASE DATABASEADI SET MULTI_USER
Tesekkurlerimi sunuyorum. Beni cok buyuk kayiplardan kurtardiniz
Rica ederim işe yaradıysa ne mutlu bize