آموزش Check Database Integrity Task در SQL Server(بررسی سلامت دیتابیس)
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 به صورت خودکار عملیات زیر را انجام میدهد (نیازی به اجرای جداگانه آنها نیست):
-
DBCC CHECKALLOC: بررسی تخصیص همه صفحات در دیتابیس، بدون توجه به نوع صفحه یا شیء. -
DBCC CHECKTABLE: بررسی یکپارچگی صفحات و ساختارهای هر جدول و View ایندکسشده. -
DBCC CHECKCATALOG: بررسی سازگاری (Consistency) کاتالوگ دیتابیس (جدولهای متادیتای سیستمی). -
اعتبارسنجی Indexed Viewها.
-
بررسی Link-Level سازگاری در دادههای FILESTREAM (ذخیرهسازی varbinary(max) در سیستم فایل).
-
اعتبارسنجی دادههای 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 را به صورت دستی اجرا کنید، دستور زیر کافی است:
و در صورت تمایل به استفاده از گزینه Physical Only:
جمعبندی
-
Check Database Integrity Task یک ابزار ضروری برای حفظ سلامت دیتابیس در SQL Server است.
-
این Task همان
DBCC CHECKDBرا اجرا میکند که شامل بررسی تخصیص، جدول و کاتالوگ میشود. -
گزینههای
Physical OnlyوTablockبه بهینهسازی اجرا در محیطهای شلوغ کمک میکنند. -
حتماً برنامهای منظم برای اجرای این Task تنظیم کنید تا از بروز مشکلات یکپارچگی داده جلوگیری شود.
سوالات متداول (FAQ)
آیا اجرای Check Database Integrity Task روی دیتابیس در حال استفاده مشکل ایجاد میکند؟
به طور پیشفرض از Snapshot استفاده میشود و مشکل خاصی ایجاد نمیکند. فقط با فعال کردن Tablock ممکن است همزمانی کاهش یابد.
آیا این Task جایگزین بکاپ گیری میشود؟
خیر. بررسی یکپارچگی، بکاپ را بینیاز نمیکند. همیشه باید از دیتابیس بکاپ معتبر داشته باشید.
منابع رسمی برای مطالعه بیشتر:
💬 نظرات (0)
هنوز نظری ثبت نشده است. اولین نفری باشید که نظر میدهید!
📝 ثبت نظر جدید