DBCC CHECKDB ILE VERTABANI KONTROLU

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.

ALTER DATABASE DATABASEADI SET SINGLE_USER
GO
DBCC CHECKDB('DATABASEADI',REPAIR_ALLOW_DATA_LOSS)
GO
ALTER DATABASE DATABASEADI SET MULTI_USER

REPAIR_FAST
Veri kaybı olmadan hızlıca hataları düzeltmek için kullanılır.

ALTER DATABASE DATABASEADI SET SINGLE_USER
GO
DBCC CHECKDB('DATABASEADI',REPAIR_FAST)
GO
ALTER DATABASE DATABASEADI SET MULTI_USER

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.

ALTER DATABASE DATABASEADI SET SINGLE_USER
GO
DBCC CHECKDB('DATABASEADI',REPAIR_REBUILD)
GO
ALTER DATABASE DATABASEADI SET MULTI_USER

ESTIMATEONLTY
DBCC CHECKDB işlemi için TempDB‘de kullanılacak olan alanın tahmini değerini verir.

DBCC CHECKDB('DATABASEADI') WITH ESTIMATEONLY

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.

DBCC CHECKDB('DATABASEADI') WITH TABLOCK

NO_INFOMSGS
CHECKDB işleminde bilgi mesajlarının gösterilmemesi için kullanabilirsiniz.

DBCC CHECKDB ('DATABASEADI') WITH NO_INFOMSGS

ALL_ERRORMSGS

Tüm mesajların listelenmesi için kullanılır.

DBCC CHECKDB ('DATABASEADI') WITH ALL_ERRORMSGS

Sadece hata mesajlarının listelenmesini isterseniz;

DBCC CHECKDB ('DATABASEADI') WITH NO_INFOMSGS,ALL_ERRORMSGS

 

Bu makaleyi yararlı buldunuz mu?