У меня есть база данных, которая имеет файл данных 350 МБ (.mdf) и файл журнала 4,9 ГБ (.ldf). Модель восстановления установлена на FULL
.
Когда я пытаюсь сжать файл журнала, он не сжимается.
Я знаю, что сокращение базы данных не хорошо, и это не должно быть сделано. Но все же я пытаюсь сделать это для сокращения файла журнала.
Когда я побежал
DBCC SQLPerf(logspace)
Я обнаружил, что размер журнала составляет 4932 МБ, а объем используемого журнала - 98,76% !
Тогда я попробовал эту команду
USE <databasename>;
DBCC loginfo;
Теперь почти все VLF имеют статус 2, что означает, что все используются.
Я попытался сделать резервную копию журнала, а затем сжать файл журнала. Сокращение не уменьшило размер.
Я изменил модель восстановления на SIMPLE
и попытался снова сжаться, но это также не помогло.
Я проверил на открытые транзакции
DBCC opentran (database);
и обнаружил, что ни одна транзакция не открыта сейчас.
Что мешает мне сжать файл журнала? Как я могу решить это?
log_reuse_wait_desc
далACTIVE_TRANSACTION
. Как только транзакция была завершена, сжатие работало нормально.