DBAtlas · Атлас эксплуатации баз данных

Сжатие файла журнала

SQL ServerБэкап и журнал

Команда

-- First take a log backup so the log can be truncated (FULL model):
BACKUP LOG [Customer] TO DISK = N'D:\Backup\Customer_log_pre_shrink.trn' WITH COMPRESSION;

-- Find the logical name of the log file:
SELECT name, type_desc FROM sys.database_files WHERE type_desc = 'LOG';

-- Shrink (target 2048 MB):
USE [Customer];
DBCC SHRINKFILE (N'Customer_log', 2048);

Что делает

Уменьшает физический размер файла журнала транзакций и возвращает место операционной системе.

Когда использовать

Когда журнал остался постоянно раздутым после разового аномального роста (большая транзакция/перестроение индекса).

Внимание

ОПАСНО/ОСТОРОЖНО: регулярное сжатие — ПЛОХАЯ практика; производительность падает, пока журнал снова растёт, и усиливается фрагментация VLF. Сначала сделайте резервную копию журнала, иначе размер не уменьшится. Сжимайте только излишне выросший файл журнала, а не файл данных. Затем увеличьте его до подходящего размера за один шаг.

Открыть в DBAtlas →

Связанные материалы