Сжатие файла журнала
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. Сначала сделайте резервную копию журнала, иначе размер не уменьшится. Сжимайте только излишне выросший файл журнала, а не файл данных. Затем увеличьте его до подходящего размера за один шаг.
Связанные материалы
- Резервная копия журнала транзакций
- Резервные копии FULL и DIFFERENTIAL
- Почему вырос файл журнала / почему он не усекается
- Количество VLF (Virtual Log File)
- Поиск самой старой открытой транзакции (ACTIVE_TRANSACTION)
- Разовая резервная копия без разрыва цепочки (COPY_ONLY, striping, пропускная способность)