Журнал транзакции для базы данных переполнен. Причина: “LOG_BACKUP”

На днях при закачке архива базы у программиста появилась ошибка следующего содержания: Журнал транзакции для базы данных переполнен. Причина: ‘LOG_BACKUP’. Быстрая диагностика показала что файл журнала транзакций данной SQL базы разросся до огромных объемов и занял все свободное место на диске.

Тип файла SQL Server Database Transaction Log File (.ldf)
Тип файла SQL Server Database Transaction Log File (.ldf)

Проблема была быстро исправлена. И сегодня рассмотрим в этой заметке способы её устранения.

1-ый способ. Сокращаем объем файла журнала регистрации (.ldf) вручную.

Для этого необходимо провести ряд не сложных действий: переводим модель восстановления базы в ‘Простая’ (в случае если другая) / сжимаем файл журнала транзакции / переводим модель восстановления в прежнее значение.

Модель восстановления базы.
Модель восстановления базы Простая.
Задача сжатия файлов.
Задача сжатия файлов.
Сжимаем LDF файл до нужного размера.
Сжимаем LDF файл до нужного размера.
Возвращаем обратно модель восстановления.
Возвращаем обратно модель восстановления.

В результате данных операциях файл журнала транзакций сократится до нужного размера.

2-ой способ. Сокращаем объем файла при помощи готового скрипта, который все вышеуказанные действия выполнит программно (для базы Fin_Test_All):

Обратите внимание! Что название файла ‘…log’ может отличаться от того, который находится в проводнике! Нужно именно то имя файла (логическое имя), которое указано в параметрах файлов базы:

Имя лог-файла.
Имя лог-файла.

В противном случае вы получите ошибку ‘…в sys.database_files. Файл не существует или был удален.’

Не удалось найти файл.
Не удалось найти файл.

Так же обратите внимание что размер файла указывается в мегабайтах!

Так же о дополнительных вариантах и возможных ошибок при выполнении данной операции можно прочитать в статье с инфостарта!

Всем удачи и поменьше таких ошибок!

2+

Оставить комментарий

Ваш адрес email не будет опубликован.