4 Kasım 2010 Perşembe

SQL Server Veritabanı Bütünlüğünün Kontrol Edilmesi

Üretim ortamında kullandığımız SQL Sunucu veritabanlarının bulunduğu disklerde(SAS Disk,SCSI Disk ve RAID Dizileri) çeşitli sebeplerle problemler oluşabilir.Problem oluştuğu anda eğer aktif olarak kullandığımız veritabanı dosyalarının bulunduğu kümelerdede sorun olursa veri bütünlüğünde sorunlar oluşabilmektedir.Eğer  Database mirroring,SQL Cluster gibi çözümleri kullanmıyorsak farklı bir medyaya SQL Server yedekleme planı oluşturmalı ve veritabanı dosyalarının veri bütünlüğünü belirli periyotlarla kontrol etmeliyiz.Her ne kadar SQL Server 2005 sürümünden bu yana maintanance plan özelliğinde yer alan DBCC CHECK komutu ile bu işlemi otomatik yapsakta kendimiz T-SQL komutları ile bunu kontrol etmeliyiz.Ben kendi SQL sunucumda aşağıdaki işlemleri yapıyorum;

  • SQL Server 2008 ile gelen yedek sıkıştırma özelliğini kullanarak maintanence plan ile 7/24 çalışan sistemimin otomatik oalrak saatlik yedeklerini alıyorum.
  • Ardından aldığım yedekleri test için farklı bir sunucuda kurulu olan SQL Server 2008 R2 sürümünde restore ederek aşağıdaki komutlarla veritabanı bütünlük kontrolünü sağlıyorum.
  • SQL Query ekranında EXEC sp_dboption 'database adı','single user','true' komutu ile veritabanımızı CHECKDB kontrolu yapmak için hazırlıyoruz.Ardından DBCC CHECKDB('Database Adı') komutunu çalıştırarak işlemin bitmesini bekliyoruz(Bu işlem uızun sürmektedir)
  • DBCC CHECKDB işlemi bitince en son satırdaki hata bulunamadı mesajını görmeliyiz.Bu mesajı görüyorsak veritabanımızın bütünlük testi başarıyla geçmiş demektir.
  • Ardından yeniden EXEC sp_dboption 'database adı','single user','false' komutu ile veritaabınımızı ulaşılabilir hale getirerek önemli tablolarımızı select sorgusu ile kontrol etmeliyiz.
Yukarıdaki işlemleri mesai saatlerinde belirli periyotlarla yaparak SQL Sunucu veritabanlarımızın kontrolunu sağlamalıyız.