DBCC CHECKDB
Parametre olarak verilen veritabanının bütünlük kontrolleri yapılır. Veritabanında oluşturulan her index içeriği doğrulanır, FILESTREAM kullanılıyorsa metadata ve dosya sistemi arasındaki uyumluluk kontrol edilir.
DBCC CHECKDB (DATABASEADI)
Eğer tabloda veya index’lerde bulunan verilerde herhangi bir sorun varsa bunu mesaj penceresinde görüyor olacaktık. Mesajların sonuna indiğimizde ;
CHECKDB found 0 allocation errors and 0 consistency errors in database ‘DATABASEADI’.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
CHECKDB sonucunda bize herhangi bir hata olmadığı bilgisini iletiyor. Sırası ile CHECKDB komutunun alabileceği parametreleri görelim.
DATABASE_Name – DATABASE_ID
CHECKDB komutu veritabanı adı veya veritabanı id bilgisi verilerek çalıştırılır. Parametre verilmeden çalıştırılırsa o anda aktif olan veritabanı için CHECKDB komutu çalışır.
DBCC CHECKDB ('DATABASEADI'
)
NOINDEX
CHECKDB işlemine tâbi tutulacak veritabanda bulunan Non-Clustered index’lerin kontrol işlemine tâbi tutulmaması için NOINDEX parametresini kullanabiliriz. Index’ler kontrol edilmeyeceği için CHECKDB işlemi daha hızlı sonlanacaktır.
DBCC CHECKDB (
'DATABASEADI'
,NOINDEX)
REPAIR_ALLOW_DATA_LOSS – REPAIR_FAST – REPAIR_REBUILD
CHECKDB işlemi sonrasında tablo veya index’lerde kayıt sorunu varsa bu kayıtlarda oluşan hataları düzeltmek için kullanılan komutlardır. Bu komutlar kullanılmadan önce veritabanı Single User Mode alınmış olmalıdır.
REPAIR_ALLOW_DATA_LOSS
DBCC CHECKDB işleminde raporlanan hataları düzeltmek için kullanılır. Düzeltme işleminde veri kaybı meydana gelebilir. Bu komut çalıştırılmadan önce yedek alınması yararınıza olacaktır.
REPAIR_FAST
Veri kaybı olmadan hızlıca hataları düzeltmek için kullanılır.
REPAIR_REBUILD
Veri kaybı olmadan hataları düzelmek için kullanılır. Bu işlemde index rebuild yapılması veya index’te eksik kayıtların index’e dahil edilmesi işlemi vb.
ESTIMATEONLTY
DBCC CHECKDB işlemi için TempDB‘de kullanılacak olan alanın tahmini değerini verir.
PHYSICAL_ONLY
DBCC CHECKDB işleminin kısıtlı halidir. Daha kısa sürdüğü için Production ortamlarında kullanılabilir.
DBCC CHECKDB(
'DATABASEADI'
)
WITH
PHYSICAL_ONLY
TABLOCK
CHECKDB işleminde TABLOCK parametresi işlemin daha kısa sürmesini sağlar ancak veritabanına erişimi bir süreliğine durdurur.
NO_INFOMSGS
CHECKDB işleminde bilgi mesajlarının gösterilmemesi için kullanabilirsiniz.
ALL_ERRORMSGS
Tüm mesajların listelenmesi için kullanılır.
Sadece hata mesajlarının listelenmesini isterseniz;
DBCC CHECKDB (
'DATABASEADI'
)
WITH
NO_INFOMSGS,ALL_ERRORMSGS