DBCC CHECKDB , veritabani bütünlük kontrolü
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 ‘AdventureWorks2008′.
CHECKDB sonucunda bize herhangi bir hata olmadığı bilgisini iletiyor. Sırası ile CHECKDBkomutunun 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.
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çinCHECKDB işlemi daha hızlı sonlanacaktır.
DBCC CHECKDB ('AdventureWorks',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.
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.
Veri kaybı olmadan hızlıca hataları düzeltmek için kullanılır.
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.
DBCC CHECKDB işlemi için TempDB‘de kullanılacak olan alanın tahmini değerini verir.
DBCC CHECKDB('AdventureWorks') WITH ESTIMATEONLY
DBCC CHECKDB işleminin kısıtlı halidir. Daha kısa sürdüğü için Production ortamlarında kullanılabilir.
DBCC CHECKDB('AdventureWorks') WITH PHYSICAL_ONLY
CHECKDB işleminde TABLOCK parametresi işlemin daha kısa sürmesini sağlar ancak veritabanına erişimi bir süreliğine durdurur.
DBCC CHECKDB('AdventureWorks') WITH TABLOCK
NOT: Veritabanlarının sağlıklı çalışabilmesi için belli aralıklarla CHECKDB kontrollerinin yapılması önerilir. Maintenance Plan ‘ınıza eklemenizi tavsiye ederim.
Eline saglik Mesut.