آموزش Check Database Integrity Task در SQL Server(بررسی سلامت دیتابیس)

آموزش Check Database Integrity Task در SQL Server(بررسی سلامت دیتابیس)

اگر به دنبال تضمین سلامت و یکپارچگی دیتابیس‌های SQL Server خود هستید، Task بررسی یکپارچگی دیتابیس (Check Database Integrity Task) یکی از قدرتمندترین ابزارها در Maintenance Plan است. در این مقاله به صورت کامل یاد می‌گیرید این Task چه کاری انجام می‌دهد، چگونه کار می‌کند.

Check Database Integrity Task چیست؟

Check Database Integrity Task یک وظیفه در برنامه‌های نگهداری (Maintenance Plan) SQL Server است که منحصراً روی دیتابیس‌های SQL Server کار می‌کند. وظیفه اصلی آن، بررسی سلامت تخصیص (Allocation) و یکپارچگی ساختاری (Structural Integrity) تمام آبجکت‌های دیتابیس از جمله:

  • جداول کاربری و سیستمی

  • ایندکس‌ها

  • Viewهای ایندکس‌شده

  • داده‌های FILESTREAM

  • و Service Broker

می‌باشد.

معادل T-SQL این Task چیست؟

این Task در پشت صحنه، دستور معروف DBCC CHECKDB را روی دیتابیس هدف اجرا می‌کند. دستور DBCC CHECKDB یکی از حیاتی‌ترین دستورات در SQL Server است که تضمین می‌کند هرگونه مشکل یکپارچگی منطقی و فیزیکی گزارش شود تا مدیر سیستم یا مالک دیتابیس بتواند به موقع آن را برطرف کند.

عملیات انجام شده توسط DBCC CHECKDB

دستور DBCC CHECKDB به صورت خودکار عملیات زیر را انجام می‌دهد (نیازی به اجرای جداگانه آن‌ها نیست):

  1. DBCC CHECKALLOC : بررسی تخصیص همه صفحات در دیتابیس، بدون توجه به نوع صفحه یا شیء.

  2. DBCC CHECKTABLE : بررسی یکپارچگی صفحات و ساختارهای هر جدول و View ایندکس‌شده.

  3. DBCC CHECKCATALOG : بررسی سازگاری (Consistency) کاتالوگ دیتابیس (جدول‌های متادیتای سیستمی).

  4. اعتبارسنجی Indexed Viewها.

  5. بررسی Link-Level سازگاری در داده‌های FILESTREAM (ذخیره‌سازی varbinary(max) در سیستم فایل).

  6. اعتبارسنجی داده‌های Service Broker.

نکته مهم: شما نیازی به اجرای جداگانه دستورات CHECKALLOC، CHECKTABLE و CHECKCATALOG ندارید؛ DBCC CHECKDB همه آن‌ها را پوشش می‌دهد.

گزینه‌های قابل تنظیم در Check Database Integrity Task

هنگام پیکربندی این Task در Maintenance Plan، چهار گزینه مهم از دستور DBCC CHECKDB در اختیار شما قرار می‌گیرد:

گزینه توضیح
Include Indexes با فعال کردن این گزینه، یکپارچگی ایندکس‌های جداول نیز بررسی می‌شود (به طور پیش‌فرض فقط داده‌های جدول بررسی می‌شود). انتخاب این گزینه باعث افزایش زمان اجرا می‌شود.
Physical Only بررسی را فقط به یکپارچگی ساختار فیزیکی صفحات و هدر رکوردها محدود می‌کند. این گزینه زمان اجرا را در دیتابیس‌های بزرگ کاهش می‌دهد و برای استفاده مکرر در سیستم‌های تولید توصیه می‌شود.
Tablock به جای استفاده از Snapshot دیتابیس (که رفتار پیش‌فرض است)، SQL Server برای مدت کوتاهی قفل انحصاری روی دیتابیس می‌زند. باعث افزایش سرعت اجرا می‌شود، اما همزمانی کاربران را کاهش می‌دهد (دسترسی آن‌ها برای لحظاتی قطع می‌شود).
Max Degree Of Parallelism به طور پیش‌فرض DBCC CHECKDB از همه هسته‌های CPU استفاده می‌کند. با این گزینه می‌توانید حداکثر تعداد هسته‌های مجاز را محدود کنید.

بهترین روش‌ها (Best Practices) از دیدگاه مایکروسافت

مایکروسافت توصیه‌های کلیدی زیر را برای استفاده از این Task ارائه می‌دهد:

  • برای استفاده مکرر در سیستم‌های تولید (مثلاً هر شب)، از گزینه Physical Only استفاده کنید. این کار زمان اجرا را به شدت کاهش می‌دهد.

  • به صورت دوره‌ای (مثلاً هفتگی یا ماهانه) دستور DBCC CHECKDB را بدون هیچ گزینه‌ای اجرا کنید تا بررسی کامل یکپارچگی منطقی نیز انجام شود.

  • تعداد دفعات اجرا را بر اساس نیاز محیط عملیاتی و حجم دیتابیس تعیین کنید.

مثالی از اجرای دستور DBCC CHECKDB

اگر بخواهید معادل T-SQL این Task را به صورت دستی اجرا کنید، دستور زیر کافی است:
 

DBCC CHECKDB ('YourDatabaseName') WITH NO_INFOMSGS, ALL_ERRORMSGS;

و در صورت تمایل به استفاده از گزینه Physical Only:
 

DBCC CHECKDB ('YourDatabaseName') WITH PHYSICAL_ONLY;

جمع‌بندی

  • Check Database Integrity Task یک ابزار ضروری برای حفظ سلامت دیتابیس در SQL Server است.

  • این Task همان DBCC CHECKDB را اجرا می‌کند که شامل بررسی تخصیص، جدول و کاتالوگ می‌شود.

  • گزینه‌های Physical Only و Tablock به بهینه‌سازی اجرا در محیط‌های شلوغ کمک می‌کنند.

  • حتماً برنامه‌ای منظم برای اجرای این Task تنظیم کنید تا از بروز مشکلات یکپارچگی داده جلوگیری شود.


سوالات متداول (FAQ)

آیا اجرای Check Database Integrity Task روی دیتابیس در حال استفاده مشکل ایجاد می‌کند؟
به طور پیش‌فرض از Snapshot استفاده می‌شود و مشکل خاصی ایجاد نمی‌کند. فقط با فعال کردن Tablock ممکن است همزمانی کاهش یابد.

آیا این Task جایگزین بکاپ گیری می‌شود؟
خیر. بررسی یکپارچگی، بکاپ را بی‌نیاز نمی‌کند. همیشه باید از دیتابیس بکاپ معتبر داشته باشید.

منابع رسمی برای مطالعه بیشتر:

💬 نظرات (0)

هنوز نظری ثبت نشده است. اولین نفری باشید که نظر می‌دهید!

📝 ثبت نظر جدید