30 Haziran 2010 Çarşamba

SQL Server 2005'te Bozulan Veritabanı ve Onarımı

SQL Sunucu SAS disk üzerindeki cluster'larda oluşmaya başlayan bozulmalardan ötürü aktif olarak kullandığımız veritabanının belirli tablo,index ve viewlarında bozulma olmuştu.Bozulan SAS diski yenisiyle değiştirmemize rağmen tabloya ulaşım sorunu çözülmedi.Bunun üzerine DBCC CHECK komutunu çalıştırarak onarım yapmak istedik.SQL Manegement Studio'yu açarak onarım yapılacak database'e erişim olmaması için aşağıdaki ekran ve komutta olduğu gibi Single User moduna geçirmeliyiz.

EXEC sp_dboption 'Database', 'single user', 'TRUE'





Database'i single user moduna geçirdikten sonra hangi bölümlerinde sorun olduğunu tespit etmek için
aşağıdaki komutu çalıştırmalıyız.


DBCC CHECKDB ('database adı')

komutu çalıştırdıktan sonra çıkan sonuçta aşağıdaki gibi 0 rakamını görüyorsak databasemizde bozulma olmamıştır.

CHECKDB found 0 allocation errors and 0 consistency errors in database 'TEST'.


DBCC execution completed. If DBCC printed error messages, contact your system administrator.
 
 
eğer 0 yerine farklı  rakamlar varsa aşağıdaki komutu çalıştırmalıyız.
 
 
DBCC CHECKDB ('TEST', REPAIR_REBUILD)
 
 
Bu işlem ile veritabanında onarım yaparken veri kaybı oluşmaz.İşlem sonucunda aşağıdaki sonuç çıkarsa onarım işlemi başarı ile tamamlanmıştır.Bu işlemin ardından Single User durumundaki veritabanını veritabanı özellliklerinden options bölümünden Multi User konumuna getirmeliyiz
 
 
CHECKDB found 0 allocation errors and 0 consistency errors in database 'TEST'.

DBCC execution completed. If DBCC printed error messages, contact your system administrator.