DBCC CHECKALLOC

Bu makalede DBCC CHECKALLOC komutunu detaylı bir şekilde görmüş olacağız. DBCC CHECKALLOC, SQL Server’da bir veritabanındaki ayrılmış veri alanlarının (allocation structures) tutarlılığını kontrol etmek için kullanılan bir komuttur. Bu komut, veritabanının depolama yapısında kullanılan tahsis edilen sayfaların (allocated pages) ve veri yapılandırmalarının bütünlüğünü inceler. DBCC CHECKALLOC tahsis edilen bu alanda tutarlılık testi yapmaktadır.
 
SQL Server’da, veriler depolama alanında belirli sayfalara tahsis edilir. DBCC CHECKALLOC, tahsis edilmiş bu sayfaların doğru bir şekilde kaydedilip kaydedilmediğini kontrol eder.
Örnek: GAM (Global Allocation Map), SGAM (Shared Global Allocation Map), IAM (Index Allocation Map) gibi sayfaların doğru ve tutarlı olduğunu denetler.

Veri tabanındaki allocation units’lerin (örneğin: tablolar, dizinler gibi nesneler için tahsis edilen sayfalar) tutarlılığı kontrol edilir.
Tahsis edilmiş bir sayfanın fiziksel olarak mevcut olup olmadığı ve doğru yerde kullanılıp kullanılmadığı incelenir.

Tahsis edilmemiş (Unallocated) sayfaların sistemde doğru şekilde işaretlenip işaretlenmediğini doğrular.

DBCC CHECKALLOC şu şekilde çalıştırılır:

DBCC CHECKALLOC ('VeritabanıAdı');

Eğer veritabanı adı belirtilmezse, bağlı olunan veritabanı için çalıştırılır:

USE VeritabanıAdı;
DBCC CHECKALLOC;

Eğer tahsis edilen alanlarda ve sayfalarda bir sorun yoksa şu mesaj görüntülenir:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Hatalar, bozulmaların detaylı açıklamalarıyla birlikte raporlanır.
Msg 2575, Level 16, State 1, Line 1
The IAM page (Page ID) is incorrect. Allocation check failed.


Hangi Durumlarda Kullanılır:
Özellikle veritabanında disk bozulmaları veya hatalı tahsisler nedeniyle sorun oluştuğunda kullanılır. Tahsis edilen alanlarda çakışmalar veya bozukluklar veritabanı performansını olumsuz etkileyebilir. Fiziksel disk sorunlarından sonra tahsis edilmiş alanların tutarlılığını kontrol etmek için.

DBCC CHECKDB, veritabanının genel bütünlüğünü kontrol ederken, DBCC CHECKALLOC tahsis edilen alanlara odaklanır. Genel sorunlar için CHECKDB, spesifik alan sorunları için CHECKALLOC kullanılır.

Performans Üzerine Etkisi
DBCC CHECKALLOC, tüm veritabanındaki tahsis yapısını kontrol ettiği için büyük veritabanlarında uzun sürebilir ve sistem kaynaklarını yoğun şekilde kullanabilir. Bu nedenle, canlı sistemlerde düşük trafik zamanlarında çalıştırılması önerilir. DBCC CHECKALLOC yalnızca sorunları tespit eder, düzeltmez. Eğer bir hata bulunursa Veritabanı üzerindeki işlemlere başlamadan önce mutlaka bir yedek alınmalıdır.

DBCC CHECKALLOC tarafından tespit edilen sorunları çözmek için genellikle DBCC CHECKDB kullanılır.

DBCC CHECKDB ('VeritabanıAdı', REPAIR_ALLOW_DATA_LOSS);

Bu komut, sorunları düzeltmeye çalışır ancak veri kaybı olasılığı vardır.

Eğer sorunlar ciddi ise, bozuk tahsis edilmiş nesneler (örneğin: tablolar veya dizinler) elle yeniden oluşturulabilir veya kaldırılabilir.

Komut çalıştırılırken, kontrol edilen veriler üzerinde bir kilit uygulanabilir. Bu nedenle, sistemde işlemler sırasında çalıştırılmamalıdır.

DBCC CHECKALLOC, yalnızca tahsis yapılarının tutarlılığını kontrol eder. Veritabanının genel tutarlılığı ve diğer sorunlar için DBCC CHECKDB daha kapsamlıdır.

Not: DBCC CHECKDB ve DBCC CHECKFILEGROUP komutlarını çalıştırırsanız DBCC CHECKALLOC çalıştırmanıza gerek kalmaz.

DBCC CHECKALLOC, SQL Server’da bir veritabanındaki tahsis edilen alanların tutarlılığını kontrol etmek için kullanılan önemli bir araçtır. Bu komut, özellikle tahsis yapılarında meydana gelebilecek bozulmaları tespit etmek için hayati bir rol oynar. Ancak, tespit edilen sorunları düzeltmek için genellikle ek araçlar veya komutlar (örneğin, DBCC CHECKDB) kullanılır. Bu nedenle, düzenli bakım işlemleri sırasında kullanılması tavsiye edilir.

Bu makalede DBCC CHECKALLOC komutunu detaylı bir şekilde görmüş olduk. Başka bir makalede görüşmek dileğiyle..

“Biz insana anne babasıyla ilgili öğütler verdik. Annesi, güçten kuvvetten düşerek onu karnında taşımıştır; çocuğun sütten kesilmesi iki yıl içinde olur. Bunun için (ey insan), hem bana hem anne babana minnet duymalısın; sonunda dönüş yalnız banadır.” Lokman-14

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir