همه یادداشت‌ها

کاهش حجم ( Shrink Log ) فایل لاگ دیتابیس در SQL Server

راه‌حل

در SQL Server، فایل لاگ دیتابیس (Transaction Log) ممکن است به مرور زمان حجم زیادی از فضای دیسک را اشغال کند. با استفاده از دستورات زیر می‌توان در شرایط مناسب حجم فایل لاگ را کاهش داد.

USE Database_Name;
GO

-- Change the database recovery model to SIMPLE
ALTER DATABASE Database_Name
SET RECOVERY SIMPLE;
GO

-- Shrink the log file to 100 MB
DBCC SHRINKFILE (Database_Name_log, 100);
GO

-- Restore the database recovery model to FULL
ALTER DATABASE Database_Name
SET RECOVERY FULL;
GO

نکته: عدد 100 در دستور SHRINKFILE بر حسب MB است. همچنین پس از تغییر Recovery Model به FULL، برای شروع مجدد زنجیره بکاپ‌های لاگ باید یک Full Backup تهیه شود. این روش را بدون بررسی نیازهای بکاپ و بازیابی دیتابیس اجرا نکنید.

خطاهای رایج

در صورت پر شدن فایل لاگ یا عدم امکان افزایش حجم آن، ممکن است خطاهای زیر مشاهده شوند:

  • The transaction log for database is full due to 'LOG_BACKUP'.
  • The transaction log for database is full due to 'ACTIVE_TRANSACTION'.
  • Could not allocate space for object because the filegroup is full.
https://tnote.ir/n/1081