У мене є база даних, що містить 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
. Як тільки транзакція завершилася, скорочення спрацювало чудово.