Ошибка MS SQL: The transaction log is full due to LOG_BACKUP — решение
- 1С полностью останавливает работу с ошибкой:
The transaction log for database 'ib_name' is full due to 'LOG_BACKUP' (Error 9002). - Файл журнала транзакций с расширением
.LDFзанял все свободное место на диске сервера. - Попытки пользователей записать любой документ завершаются аварийным отказом СУБД.
- Простое удаление данных внутри 1С не уменьшает физический размер файла на диске.
Почему лог не очищается сам
По умолчанию базы 1С в MS SQL создаются в режиме восстановления Full (Полная). В этом режиме SQL Server бережно записывает каждое действие в LDF-файл и никогда не стирает его, пока администратор не настроит регулярное резервное копирование самого лога транзакций (Transaction Log Backup).
Экстренное решение: Сжатие лога транзакций через SSMS
- Откройте SQL Server Management Studio (SSMS) и подключитесь к серверу.
- Нажмите кнопку New Query (Создать запрос) и выполните следующий T-SQL скрипт (замените
Base1Cна имя вашей базы):USE [Base1C]; GO -- 1. Переключаем базу в простую модель (Simple), чтобы сбросить очередь логов ALTER DATABASE [Base1C] SET RECOVERY SIMPLE; GO -- 2. Сжимаем физический LDF-файл до разумных 1000 МБ DBCC SHRINKFILE (N'Base1C_Log' , 1000); GO -- 3. Возвращаем модель Full (если делаете бэкапы логов) или оставляем Simple ALTER DATABASE [Base1C] SET RECOVERY FULL; GO - Если вы не знаете логическое имя файла лога (
Base1C_Log), выполните командуsp_helpfile.
Как предотвратить проблему навсегда
- Вариант А: Если вам не требуется восстановление базы на конкретную секунду времени — оставьте режим Simple в свойствах базы (Properties → Options → Recovery model = Simple). В этом режиме лог очищается автоматически.
- Вариант Б: Если нужен режим Full — создайте план обслуживания (Maintenance Plan), который делает бэкап лога транзакций каждые 15–30 минут.
Частые вопросы (FAQ)
Можно ли просто удалить LDF файл с диска в Проводнике Windows?
Категорически нет! При удалении файла лога база перейдет в состояние Recovery Pending или Suspect, и 1С перестанет открываться.
В чем разница между моделями Full и Simple для 1С?
В Simple модель база сбрасывает транзакции после фиксации, экономя место на диске. В Full модель база позволяет восстановить данные на любой момент времени в прошлом, но требует настройки постоянных бэкапов лога.
Почему после удаления половины документов LDF файл не уменьшился?
Операция массового удаления — это тоже транзакция. Она требует еще больше места в логе для записи информации об удаленных строках.
Как часто нужно делать Shrink (сжатие) базы?
Регулярно делать сжатие не рекомендуется, так как это вызывает сильнейшую фрагментацию индексов. Сжатие делают только разово при аварийном разрастании файла.