Журнал транзакций растет, несмотря на регулярное резервное копирование журнала транзакций

Боюсь, я столкнулся с популярной проблемой: мой журнал транзакций на SQL SERVER растет и снова растет. Но я не могу найти ответы в Интернете.

У меня есть ежедневная полная резервная копия, дифференциальная резервная копия каждый час и журнал транзакций каждые 15 минут. И они работают нормально, но как насчет того файла ldf? До 100Go за 2-3 месяца, моя база данных - около 15Go.

В выходные я выполняю некоторую задачу обслуживания: перестроение или реорганизацию индекса, если фрагментация ниже 30%. Кроме того, я выполняю повторное вычисление своего небольшого хранилища данных (15 миллионов строк). Каждую ночь есть какое-то задание, но ничего особенного.

Но я не знаю, почему мой журнал транзакций не обрезается после резервного копирования журнала?

Когда я проверяю использование файла LDF, когда я пишу этот пост, используется только 1,7%.

Любая идея ?

Большое спасибо. Кстати, извините за мой плохой английский ...

РЕДАКТИРОВАТЬ: у меня есть 119 файлов VLF, и никто не используется.


person Sylvain Pauly    schedule 04.02.2015    source источник


Ответы (3)


Вам нужно будет регулярно сжимать файлы журналов. Учитывая, что у вас есть стратегия резервного копирования, включающая резервные копии _1 _, _ 2_ и TRANSACTION LOG, вам будет хорошо, если задание SQL будет выполняться по расписанию, чтобы сжать соответствующий файл журнала до минимума. Я запускаю сохраненную процедуру. с помощью команды сжатия регулярно, чтобы

DBCC SHRINKFILE помогает сжать файлы журналов. к заданному размеру.

DBCC SHRINKFILE (DBNAME_Log, 1); сократит его, например, до 1 МБ.

person GVashist    schedule 04.02.2015
comment
Спасибо за ответ. Как я сказал ниже, я думал, что это плохая практика - сжимать мои LDF из-за потенциально чрезмерной фрагментации, вы слышали об этом? - person Sylvain Pauly; 04.02.2015
comment
Я полагаю, что этот момент может быть неуместным, исходя из вашего недавнего комментария. Когда вы планируете развертывание БД, лучше также учитывать рост файла журнала. - person GVashist; 04.02.2015

Вы можете использовать SQL Sever Studio. Щелкните правой кнопкой мыши по выбранной базе данных, затем выберите Отчеты> Использование диска. Вы увидите (внутреннее) использование файлов базы данных и журналов транзакций. Уменьшение журнала транзакций не имеет никакого смысла, если вы понимаете, что задача обслуживания (например, перестроение индекса) требует много места в журнале транзакций. Практическое правило - размер файла журнала транзакций равен размеру самой большой таблицы (Отчеты> Использование диска по верхним таблицам).

person huhu78    schedule 04.02.2015

усечение не уменьшает размер физического файла журнала. Для уменьшения физического размера файла журнала необходимо сжать файл. Размер увеличивается, например, из-за длительных транзакций, которые не удаляются при резервном копировании журнала транзакций.

С уважением, Джова

person Giova    schedule 04.02.2015
comment
Спасибо за ответ. Ммм, хорошо. Я много раз читал, что сжимать файл LDF было плохой практикой из-за потенциально чрезмерной фрагментации ... Итак, я должен это делать? - person Sylvain Pauly; 04.02.2015
comment
Нет, делать это необязательно, если вам не нужно больше свободного места - person Giova; 04.02.2015
comment
У меня много свободного места :), но мой босс спрашивает, сколько места используется базой данных (чтобы знать, сколько БД мы можем разместить на одном сервере, я думаю ...). - person Sylvain Pauly; 04.02.2015