مرکز آموزش

نحوه مدیریت و تعیین size بخش log و data در دیتابیس MSSQL

  • شرینک دیتابیس, کاهش حجم لاگ دیتابیس mssql, حذف لاگ دیتابیس MSSQL
  • 31

افزایش بی رویه حجم بخش Log در دیتابیس MSSQL همواره یکی از مهمترین دغدغه های برنامه نویسان بوده است.
فایل Log معمولا برای ثبت تراکنش های دیتابیس مورد استفاده قرار میگرد حتی اگر Recovery Mode را به Simple تغییر داده باشید.
به عنوان مثال ممکن است شما indexهایی  برای گزارش جداول تعریف کرده باشید که حجم بالایی بسته به تراکنش های دیتابیس در بخش Log اشغال می کند.
در چنین مواقعی معمولا از روش Shrink برای کاهش حجم استفاده می شود اما این یک راهکار موقتی است و نمی تواند از تکرار افزایش بی رویه حجم Log جلوگیری کند. هر چند که بسته به ساختار دیتابیس در برخی از مواقع نتیجه مورد انتظار در راستای کاهش حجم Log را در بر ندارد.
در این مقاله به روشی برای تعیین سقف مجاز حجم Log یا Data اشاره کرده ایم. پس در ادامه با ما همراه باشید...

1- برنامه Management Studio را باز کرده و به MSSQL Server متصل شوید.
2- از لیست دیتابیس ها بر روی دیتابس مورد نظر کلیک راست کرده و Properties را انتخاب کنید.
3- به قسمت Files مراجعه کنید.
4- دو خط یکی برای بخش Data و یکی برای بخش Log مشاهده خواهید کرد.
5- بر روی ستون Initial Size در بخش Log یا Data کلیک کنید و سقف مورد نظر را بر حسب MB وارد کنید. (مثال:   50MB برای بخش Log )
6- از ستون Autogrowth بر روی قسمت (...) کلیک کنید و در پنجره جدید چکباکس گزینه Enable Autogrowth را غیر فعال کرده و OK کنید.

به جای غیر فعال کردن چکباکس می توانید آن را فعال باقی بگذارید اما در بخش Maximum File Size عدد مربوط به سقف تعیین شده را وارد کنید.

7- پنجره باقیمانده را نیز OK کنید.

کار تمام شد. اما توصیه می شود برای اطمینان مراحل زیر را نیز دنبال کنید:

8- مجددا مراحل 2 و 3 را انجام دهید تا اعداد جدید را در بخش Data و Log مشاهده کنید. طبیعتا انتظار می رود عدد درج شده در ستون Initial Size دقیقا مشابه عدد تعیین شده در مراحل قبل باشد. در صورتیکه بیشتر بود. مرحله بعد را طی کنید.
9- به قسمت Option مراجعه و Recovery Mode را از Full به Simple تغییر داده و Ok کنید. سپس مراحل 2 تا 5 را دوباره تکرار کنید.

به عنوان یک راهکار دیگر شما می توانید به جای طی مراحل فوق با اجرای Script زیر اقدام کنید. (هر جا که DATABASENAME آمده است، نام دیتابیس خود را جایگزین کنید.)
USE [master]
GO
ALTER DATABASE [DatabaseName] MODIFY FILE ( NAME = N'DATABASENAME_Log', SIZE = 51200KB , FILEGROWTH = 0)
GO
در یک مثال ساده چنانچه سقف تعیین شده برای بخش Log را 50MB تعیین کرده باشید و دیتابیس بخواهد فراتر از این مقدار برود، ممکن است وبسایت شما با خطای log file out of space مواجه شود. در چنین مواقعی می توانید دیتابیس را Shrink کنید یا ساختار دیتابیس را برای جلوگیری از افزایش Log تصحیح کنید.

تمامی حقوق مادی و معنوی این مطلب متعلق به HiSupport است.
کپی برداری از مطالب تنها با ذکر منبع و لینک به وبسایت HiSupport بلامانع است.


آیا این آموزش به شما کمک کرد؟