در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

اهمیت اجراء دستور DBCC CheckDB قبل از گرفتن فایل پشتیبان

در هر محیط پایگاه داده ای؛ گرفتن فایل پشتیبان بدون مشکل یکی از پر اهمیت ترین کارهایی است که یک مدیر پایگاه داده در انجام آن نباید کوتاهی کند. بر اساس تجربه بنده بیشتر مدیران پایگاه داده اقدام به گرفتن فایل پشتیبان بدون بررسی مشکلات ساختاری و منطقی پایگاه داده انجام می دهند که این امکان وجود دارد که داده های خراب در فایل پشتیبان ذخیره شود.

چرا دستور DBCC CheckDB پر اهمیت است؟


این دستور تمامی هماهنگی فیزیکی و منطقی تمامی اشیاء داخل پایگاه داده را بررسی کرده و از سلامت آنها اطمینان حاصل می نماید. دستور DBCC CheckDB مراحل زیر را انجام می دهد:

۱- اجراء دستور DBCC CheckAlloc بر روی پایگاه داده

۲- اجراء دستور DBCC CheckTable بر روی تمامی جداول و «ویو ها» در پایگاه داده

۳- اجراء دستور DBCC CheckCatalog بر روی پایگاه داده

۴- اعتبار سنجی تمامی «ایندکس ویوها» بر روی پایگاه داده

۵- اعتبار سنجی بین ارتباط داده ها و متادیتا های سیستم ؛ اعتبار سنجی بین فایلها و پوشه ها زمانی که از نوع داده ای VarBinary(Max) و Filestream استفاده شده باشد.

۶- اعتبار سنجی داده های Service Broker در پایگاه داده

این به این معنی است که شما بعد از اجراء دستور DBCC CheckDB دیگر نیازی به اجراء دستورات DBCC CheckAlloc , DBCC CheckTable و DBCC CheckCatalog ندارید.

  • نکته: دستور DBCC CheckDB در پایگاه داده هایی که قابلیت In-Memory Optimized Table فعال باشد قابل اجراء است اما فقط جداول Disk-Base مورد بررسی قرار می گیرند به هر حال در عملیات پشتیبان گیری و بازیابی پایگاه داده اجراء عملیات CheckSum برروی جداول In-Memory اجراء می شود. دستور DBCC توانایی درست کردن خرابی احتمالی در جداول In-Memory را ندارد پس بر این اساس بهتر است که شما از این نوع پایگاه داده ها فایل پشتیبان گرفته و فایل پشتیبان را بررسی مجدد کنید تا از نبود داده خراب در آن اطمینان حاصل فرمايید.

در ذهن داشته باشید که دستور DBCC CheckDB با پارامتر Repair به صورت تراکنشی است و کاملا قابل برگشت به وضعیت اول بعد از اجراء دستور می باشد. مایکروسافت همیشه به تمامی کاربران این پیشنهاد را می دهد که این دستور را با یک تراکنش خارجی یا Explicit Transaction اجراء کنند که توانایی بازگرداندن به حالت قبل را داشته باشند. دستورات زیر زمان آخرین اجراء دستور DBCC CheckDB را بر روی هر یک از پایگاه های داده در SQL Server نمایش می دهد.

CREATE TABLE #result (DBName sysname,Last_DBCC DATETIME);
 
CREATE TABLE #temp (ParentObject sysname,OBJECT sysname,Field sysname,VALUE NVARCHAR(200));
 
EXEC sp_MSforeachdb ' USE [?];
Insert Into #temp
Exec (''dbcc dbinfo() With Tableresults;'');
 
Insert Into #result select db_name(),VALUE from #temp where Field = ''dbi_dbccLastKnownGood'';
 
Truncate Table #temp;
';
 
SELECT * FROM #result;
 
DROP TABLE #result;
DROP TABLE #temp;

با تشکر

حمید ج. فرد

متخصص پایگاه داده SQL Server

منبع: http://fard-solutions.com/importance-of-dbcc-checkdb/

#معرفی_دستور_dbcc_checkdb #آموزش_استفاده_از_dbcc_checkdb #مهمترین_نکات_backup_گیری_از_sql #انواع_روش_های_backup_گیری_از_sql__سرور #backup_و_restore_کردن_در_sql_سرور #آموزش_backup_گیری_از_sql_سرور #oltp_چیست #دستور_dbcc_checkdb_در_sql_سرور #backup_گیری_از_sql #نکات_مهم_در_backup_گیری_از_sql
عنوان
1 آیا NonClustered Columnstore Index گزینه مناسبی است؟ رایگان
2 مقایسه فنی Stream Aggregate و Hash Match رایگان
3 بهینه سازی بازدهی پایگاه داده SQL Server با Hypothetical Index رایگان
4 بازیابی داده های سالم از پایگاه داده خراب رایگان
5 تغییر در Optimizer Engine برای غیر فعال کردن مرتب سازی JOIN ها رایگان
6 اهمیت اجراء دستور DBCC CheckDB قبل از گرفتن فایل پشتیبان رایگان
7 اهمیت استراتژی پشتیبانگیری و بازیابی پایگاه داده در SQL Server رایگان
8 محدودیتهای بازدهی و راه حل آنها در SQL Server رایگان
9 مستلزمات برای طراحی Index در SQL Server رایگان
زمان و قیمت کل 0″ 0
4 نظر
وحید علیمحمدی

ممنون از مطالب خوبتون؛ بیزحمت میشه بفرماید معادل DBCC CheckDB در حالت تنظیمات Maintenance Plan برای تنظیمات بک آپ گیری چی هستش؟ با تشکر!

حمید ج. فرد

با سلام

نه متاسفانه چنین تنظیماتی در Maintenance Plan وجود نداره. برای مدیریت بهتر پایگاه داده ها بهتر از Script استفاده شود.

حسن ضرابی

با سلام

ممنونم آقای مهندس HamidJFard از بابت این نکات آموزنده خیلی عالی بود و لذت بردم

البته در این باره یک سئوال هم برای من پیش آمده است و آن این هست که وقتی از دستور DBCC CheckDB استفاده می کنیم برای دیتابیس جاری اگر مشکلی در دیتابیس وجود نداشته باشد و همچی ok باشد از کجا باید report آن را گرفت

با تشکر از شما

حمید ج. فرد

گزارش ریپورتش در قسمت Messages است.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....