لیست محتوا

اینستاگرام آسمان هاست

زمان مطالعه: 4 دقیقه

در مدیریت پایگاه داده، لاگ (Log) یک فایل مهم و حیاتی است، که اطلاعات همه تراکنش­‌های انجام شده در دیتابیس را در خود ثبت می‌­کند. این اطلاعات شامل تراکنش­‌ها، تغییرات اعمال شده روی داده­‌ها و تاریخچه تعامل با سیستم می‌­شوند. در این مقاله با توجه به نیازها و شرایط مختلف، به حذف لاگ دیتابیس یا تراشیدن (shrink) آن در SQL Server، با استفاده از دستورات SQL Server management studio یا از طریق محیط گرافیکی Transact-SQL (T-SQL) می­‌پردازیم.

حذف لاگ دیتابیس sql server
حذف لاگ دیتابیس sql server

لاگ دیتابیس چیست

همانطور که در ابتدای  مقاله اشاره کردیم، لاگ دیتابیس یا لاگ تراکنش (Transaction Log)، فایلی است که همه تراکنش­­‌ها و تغییرات اعمال شده روی داده‌­ها در آن ثبت می­‌شود. هدف از ثبت این اطلاعات، اطمینان از حفظ تراکنش­‌ها و بازیابی داده‌­ها در صورت بروز خطا است. در کل لاگ دیتابیس نقش بسیار مهمی در حفظ و بازیابی داده­‌ها و همینطور مدیریت تراکنش­‌های دیتابیس دارد.

حذف لاگ دیتابیس SQL Server

برای حذف لاگ دیتابیس SQL Server، می­توانید از چند روش استفاده کنید:

  • T-SQL (Transact-SQL)
  • SSMS(SQL Server Management Studio)

البته به این نکته توجه داشته باشید که پاک کردن لاگ دیتابیس باید با دقت انجام شود، زیرا برخی از اطلاعات لاگ شده ممکن است در آینده مورد نیاز باشند و با پاک کردن آن دچار مشکل می­‌شوید.

حذف لاگ دیتابیس با T-SQL

برای حذف لاگ دیتابیس یا کم حجم کردن آن می‌­توان از دستورات T-SQL استفاده کرد. این دستورات به شما امکان کاهش حجم فایل لاگ را می­‌دهد. برای پاک کردن لاگ با استفاده از T-SQL می­‌توانید از دستور "DBCC SHRINKFILE" استفاده کنید:

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

				
					USE  YourDatabaseName; 
ALTER DATABASE YourDatabaseName SET RECOVERY SIMPLE; 
DBCC  SHRINKFILE('YourLogFileName', DesiredSizeInMB);
ALTER DATABASE YourDatabaseName SET RECOVERY FULL;
				
			

به جای YourDatabaseName نام دیتابیس خود را جایگزین کنید و به جای نام فایل لاگ خود را جایگزین کنید. به جای DesiredSizeInMB باید حجم دلخواه را به مگابایت نوشته بنویسید.

Shrink کردن فایل لاگ تا حدی که فضای بلااستفاده آزاد شود:

استفاده  از ALTER DATABASE برای تغییر Recovery Model به "SIMPLE" و سپس با بک­‌آپ از لاگ تراکنش، روش دیگری است که می­‌توان لاگ را حذف کرد.

				
					USE YourDatabaseName; 
ALTER DATABASE YourDatabaseName SET RECOVERY SIMPLE; 
DBCC SHRINKFILE('YourLogFileName', 1); 
ALTER DATABASE YourDatabaseName SET RECOVERY FULL;

				
			

در این قسمت نیز به جای YourDatabaseName نام دیتابیس خود و به جای YourLogFileName نام فایل لاگ خود را جایگزین کنید.
عدد 1 باعث آزاد شدن فضای بلااستفاده می‌شود.
استفاده از این دستورات باعث کاهش فضای اشغال شده (shrink) توسط فایل لاگ می‌شود. همچنین، با تغییر Recovery Model به SIMPLE می‌توانید از بک‌آپ لاگ‌های غیرضروری جلوگیری کنید.
عدد 1 باعث آزاد شدن فضای بلااستفاده می‌شود.
استفاده از این دستورات باعث کاهش فضای اشغال شده (shrink) توسط فایل لاگ می‌شود. همچنین، با تغییر Recovery Model به SIMPLE می‌توانید از بک‌آپ لاگ‌های غیرضروری جلوگیری کنید.

حذف لاگ دیتابیس با SSMS

در SQL Server Management Studio می‌توانید با استفاده از ویژگی‌های گرافیکی لاگ دیتابیس را پاک کنید.
ابتدا وارد Sql server management شده و مراحل زیر را دنبال کنید:

sql server management studio
sql server management studio

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

روی نام دیتابیس کلیک راست کرده ، Proterties را انتخاب و روی Options کلیک کنید.

shrink کردن لاگ دیتابیس
shrink کردن لاگ دیتابیس
روی نام دیتابیس کلیک راست کرده ، Proterties را انتخاب و روی Options کلیک کرده ، Recovery Model دیتابیس را از Full به Simple تغییر داده و روی OK کلیک کنید.
حذف لاگ دیتابیس
حذف لاگ دیتابیس

روی نام دیتابیس کلیک راست کرده ، طبق مسیر زیر پیش روید:

Tasks > Shrink > Files

حذف لاگ دیتابیس
حذف لاگ دیتابیس

 گزینه log را از بخش File type انتخاب کنید.

shrink کردن فایل لاگ
shrink کردن فایل لاگ

Shrink کردن فایل لاگ تا حدی که فضای بلااستفاده آزاد شود:

استفاده  از ALTER DATABASE برای تغییر Recovery Model به "SIMPLE" و سپس با بک­‌آپ از لاگ تراکنش، روش دیگری است که می­‌توان لاگ را حذف کرد.

 یکی از سه حالت زیر را انتخاب کنید :

  • Release unused space: فضای خالی فایل لاگ را حذف می‌کند.
  • Recognize pages before releasing unused space: میزان فضای جدید برای فایل لاگ را انتخاب می‌کند.
  • Empty file by migrating the data to other files in the same file group: محتوای فایل لاگ فعلی را به فایلی دیگر منتقل می‌کند.

در پایان Recovery Model را به Full تغییر دهید.

حذف لاگ را با دقت انجام دهید تا اطلاعات شما از بین نرود. همچنین، پیشنهاد می­‌شود قبل از حذف لاگ، از دیتابیس خود بک‌­آپ گرفته تا در صورت نیاز بتوانید اطلاعات را بازیابی کنید.

بدون دیدگاه

دیدگاهتان را بنویسید

هاستvpsسرور اختصاصی