دسته بندی ها
16:29 1400/02/25

نحوه کاهش حجم Log فایل در Sql Server چگونه است ؟

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 518     رتبه کاربر : 4
دسته بندی : Sql Server

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 6834
هوش مصنوعی

پاسخ هوش مصنوعی

برای کاهش حجم Log فایل در SQL Server می توانید مراحل زیر را دنبال کنید:

-- 1. بررسی وضعیت Recovery Model دیتابیس 
SELECT name, recovery_model_desc 
FROM sys.databases
WHERE name = 'نام_دیتابیس_شما';

-- 2. اگر Recovery Model روی FULL یا BULK_LOGGED است، باید آن را به SIMPLE تغییر دهید
ALTER DATABASE نام_دیتابیس_شما SET RECOVERY SIMPLE;

-- 3. سپس Log فایل را تراکم کنید
DBCC SHRINKFILE (نام فایل Log, 1); -- 1 به معنای حداقل حجم اسمی است.

-- 4. اگر بخواهید می توانید دوباره Recovery Model را به FULL تغییر دهید (تنها در صورتی که نیاز باشد)
ALTER DATABASE نام_دیتابیس_شما SET RECOVERY FULL;

توجه داشته باشید که تغییر Recovery Model و کاهش اندازه Log فایل ممکن است خطر از دست دادن داده های مهم را به همراه داشته باشد، بنابراین قبل از این کار از داده های خود پشتیبان تهیه کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : mshosseini 18:17 1400/02/26

عملیات shrink در Sql

ابتدا بر روی نام دیتابیس کلیک نموده و  سپس از منو بالای صفحه گزینه new query  را انتخاب نمائید.

دستورات زیر را در آن کپی و اجرا نمائید. بجای DATABASENAME نام دیتابیس مربوطه را جایگزین کنید.

Shrink کردن فایل LOG به یک حجم خاص :

Use DATABASENAME
Alter Database DATABASENAME Set Recovery Simple
DBCC SHRINKFILE ('YOUR_LOG_NAME_log', 1)
Alter Database DATABASENAME Set Recovery Full

دستورShrink یک دیتابیس به یک درصد خاص از فضای آزاد:

DBCC SHRINKDATABASE (DatabaseName, 10);

 

ویرایش شده در یکشنبه 26 اردیبهشت 1400 ساعت 19:26:47
به این پاسخ امتیاز بدهید    1
امتیاز: 33 رتبه: 23
پاسخ دهنده : saedbfd 19:32 1400/02/26

هر دیتابیسی بعد از مدتی استفاده مداوم حجم Log فایلهای اون زیاد میشه. در واقع هر عملیاتی که در دیتابیس شما انجام میشه یک Log فایل کوچک ایجاد میکند که بعد از مدتی این لاگ فایل های زیاد میشه و حجم زیادی رو هم میگیره. برای این کار می تونید از دستور زیر استفاده کنید.

 

ALTER DATABASE [DataBase_Name]
   SET RECOVERY SIMPLE
   GO
   DBCC SHRINKFILE (DataBase_log, 1)
   GO
   ALTER DATABASE [DataBase_Name]
   SET RECOVERY FULL

در دستورات بالا ابتدا Recovery Model مربوط به دیتابیس به حالت Simple تبدیل می شود. با این کار می توان در ساختار دیتابیس تغییراتی ایجاد کرد. سپس دیتابیس فایل های لاگ (DataBase_log) توسط دستور Shrink کوچک می شود. و در انتها هم Recovery Model به حالت Full تبدیل می شود.

 

نکته : DataBase_log همان نام لاگ فایل شما می باشد که اگر نمی دانید چیست می توانید روی نام دیتابیس کلیک راست کرده و گزینه Properties رو بزنید و از منوی سمت راست گزینه Files را انتخاب کنید.

 

کاهش حجم log فایل دیتابیس

به این پاسخ امتیاز بدهید    1
امتیاز: 1664 رتبه: 1
پاسخ دهنده : YA30N 18:37 1400/02/27

علاوه بر موردی که دوستان گفتند، یعنی حذف شیرینک لاگ، باید این تنظیم رو هم انجام بدید.

روی دیتابیس خود راست کلیک کنید و گزینه آخر یعنی Properties کلیک نمیایید سپس در پنجره باز شده در تب Option در لیست تنظیمات گزینه Auto Shirink رو بر روی False قرار دهید

ویرایش شده در سه شنبه 28 اردیبهشت 1400 ساعت 07:18:45
به این پاسخ امتیاز بدهید    1
امتیاز: 20 رتبه: 36
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود