Anasayfa TEKNOLOJİK DONANIM / YAZILIM SQL Server’da Suspect Mod’a Düşen Database’i Kurtarma

SQL Server’da Suspect Mod’a Düşen Database’i Kurtarma

3 Dakikada Okunabilir
0

Zaman zaman kullanmış olduğumuz veritabanı sunucularındaki database’lerde database’in bağlı olduğu cihazda ram yetmezliğinden, diskte yer kalmadığında, ani güç kaybından kaynaklı (elektrik kesintisi gibi) veya database’deki tutarsızlık sonucu hatalar ortaya çıkabiliyor. Ortaya çıkan bu problemden sonra database otomatik olarak Suspect Mod‘a düşüyor.

Suspect Mod‘a düşen Database’i kurtarmak her zaman mümkün olmasada çoğu zaman aşağıda paylaşacağım sorgu ve kodlar ile kurtarmak veya onarmak mümkün olabiliyor.

Suspect Olmuş Bir Database

Suspect olmuş database’i onarmak için aşağıdaki kodları sırasıyla çalıştırmalısınız. İşlem süresi database boyutunuza bağlı olarak 5 dk ile 1 saat arasında değişebilir.

Başlamadan Önce Uyarı ve Öneriler

  • Database’e bağlı tüm servisleri kapatmalısınız.
  • repair_allow_data_loss işlemini çalıştırdıktan sonra mümkünse işlemi yarıda kesecek durumdan kaçmalısınız.
  • Suspect’e düşen database’i detach etmemelisiniz.
  • İşlemleri db kullanıcısı ile yapamassınız System Admin user ile yapılmalı.

Sorgu ve kodların ne işe yaradıkları;

EXEC sp_resetstatus = Database’in statüsünü resetler ve database’e manuel müdahaleye izin verilmesini sağlar.

DBCC checkdb = Database üzerindeki veri bozukluklarını gösterir.

ALTER DATABASE dbname SET EMERGENCY= Database’i EMERGENCY mod’a alır.

ALTER DATABASE dbname SET SINGLE USER= Database üzerinde onarım yapabilmek için database single user mod’a alır.

DBCC checkdb (db, repair_allow_data_loss) = Database üzerindeki bozuk log ve veri dosyalarını onarır ve gerekirse siler.

ALTER DATABASE dbname SET MULTI_USER = Database’i normal mod’a çeker.

Suspect database kurtarma kodları

dbname yazan yere kullandığınız Database ismini yazmalısınız. Aşağıdaki kodları sırasıyla çalıştırdığınızda database büyük ihtimalle Suspect Mod‘tan çıkmış olacaktır. repair_allow_data_loss kodunun çalışması sonuçlandığında alt bölümde eğer kırmızı ile işaretli tablolar var ise bu tablolar onarım yapılan tabloları temsil etmektedir.

EXEC sp_resetstatus 'dbname';
 
DBCC checkdb;
 
ALTER DATABASE dbname SET EMERGENCY
 
ALTER DATABASE dbname SET SINGLE_USER 
 
DBCC checkdb (dbname, repair_allow_data_loss)


 


Konuyla ilgili Eleştiri, İtiraz yada bilginiz var ise lütfen aşağıdaki yorum bölümünde paylaşmaktan çekinmeyin!

Daha Fazla Göster /  DONANIM / YAZILIM

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İLGİNİZİ ÇEKEBİLİR

Alternatif E-Mail/E-Posta Programları (Ücretsiz)

Bundan 20 yıl önce çoğu toplulukta posta/mektup en yaygın haberleşme türlerinden biriydi. …