افزایش بی رویه حجم بخش 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 کنید.
7- پنجره باقیمانده را نیز OK کنید.
کار تمام شد. اما توصیه می شود برای اطمینان مراحل زیر را نیز دنبال کنید:
8- مجددا مراحل 2 و 3 را انجام دهید تا اعداد جدید را در بخش Data و Log مشاهده کنید. طبیعتا انتظار می رود عدد درج شده در ستون Initial Size دقیقا مشابه عدد تعیین شده در مراحل قبل باشد. در صورتیکه بیشتر بود. مرحله بعد را طی کنید.
9- به قسمت Option مراجعه و Recovery Mode را از Full به Simple تغییر داده و Ok کنید. سپس مراحل 2 تا 5 را دوباره تکرار کنید.
USE [master] GO ALTER DATABASE [DatabaseName] MODIFY FILE ( NAME = N'DATABASENAME_Log', SIZE = 51200KB , FILEGROWTH = 0) GO