Журнал транзакций остается размером 60 ГБ, даже после перехода на полное восстановление

Просто начал с компании и заметил, что их база данных настроена на простое восстановление.

Я поговорил с владельцем и предложил преобразовать его в полное восстановление, объяснил ему преимущество использования журнала транзакций и делал резервные копии каждый час. После того, как он согласился, я сделал полную резервную копию БД до преобразования. Затем запланировано ежечасное резервное копирование для файла журнала транзакций и полное ночное резервное копирование для файла данных.

У меня сложилось впечатление, что после запуска почасового резервного копирования размер журнала транзакций (60 ГБ) уменьшится. Прошло больше месяца, но размер журнала транзакций остался прежним.

Можно ли бежать? DBCC ShrinkDB против файла журнала без отсоединения и присоединения базы данных?

2 ответа

Резервные копии журналов, которые вы принимаете, помогут сохранить размер файла журнала, но файл журнала не будет сокращаться сам по себе. Внутри файл журнала сегментируется на виртуальные файлы журнала (VLF) и используется (более или менее) циклически. Пока вы выполняете свою рабочую нагрузку, транзакции записываются в эти VLF. При запуске резервного копирования журнала он будет считывать данные с любого VLF, в котором были транзакции с момента последнего резервного копирования журнала, записывать эти транзакции на диск, а затем очищать VLF и отмечать его как доступный для повторного использования.

У меня сложилось впечатление, что как только почасовое резервное копирование начнет работать с размером Tlog, 60 ГБ начнет уменьшаться. Прошло уже больше месяца, но размер журнала не изменился.

Файл журнала не будет сжиматься автоматически

Можно ли запустить DBCC ShrinkDB против Tlog?

Не уменьшайте файл журнала, если у вас не хватает места. Причина этого в том, что операции по наращиванию файла обходятся дорого

Вы можете увидеть ниже команду для просмотра свободного места в файле журнала

dbcc sqlperf('logspace')
Другие вопросы по тегам