Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

ERR_MSSQL_LOG_FULL_9002 1С:Предприятие и СУБД

Журнал транзакций LDF переполнен в MS SQL: бэкап и сжатие (Shrink)

Обновлено: 27.08.2026 · Официальная документация ↗

Почему файл .LDF разрастается до сотен гигабайт?

Каждое изменение данных в базе 1С сначала записывается в журнал транзакций — файл ИмяБазы_log.ldf. Если в свойствах базы включена «Полная модель восстановления» (Full Recovery Model), но при этом настроены бэкапы только самого файла данных (.mdf) без регулярного резервного копирования лога, файл .ldf бесконечно растет, пока не заполнит весь жесткий диск.

Ошибка СУБД: Microsoft OLE DB Driver for SQL Server: 
Журнал транзакций для базы данных 'buh_db' переполнен. Код ошибки 9002.
Причина: 'LOG_BACKUP'. Невозможно выполнить операцию записи.

Последствия переполнения:

  • База 1С намертво блокируется: ни один пользователь не может записать или провести документ.
  • Свободное место на диске сервера падает до 0 байт.
  • База в SQL Management Studio может перейти в аварийный статус Recovery Pending или Suspect.

Экстренное сжатие лога транзакций (Пошагово)

Способ 1. Быстрое освобождение места через T-SQL (Рекомендуется)

Откройте SQL Server Management Studio (SSMS), нажмите кнопку «Создать запрос» (New Query) и выполните следующий скрипт (замените buh_db на имя вашей базы, а buh_db_log на логическое имя лог-файла):

USE [buh_db];
GO
-- 1. Переводим базу в простую модель восстановления (очищает цепочку логов)
ALTER DATABASE [buh_db] SET RECOVERY SIMPLE;
GO
-- 2. Сжимаем файл журнала транзакций до 100 Мегабайт
DBCC SHRINKFILE (N'buh_db_log', 100);
GO
-- 3. Возвращаем полную модель восстановления (если нужны ежечасные бэкапы лога)
ALTER DATABASE [buh_db] SET RECOVERY FULL;
GO

Как узнать логическое имя файла лога: Кликните по базе правой кнопкой мыши в SSMS → Свойства (Properties) → Файлы (Files) → посмотрите значение в столбце «Имя логического файла» для типа файла «Журнал» (Log).

Способ 2. Решение через графический интерфейс SSMS

  1. В SSMS кликните правой кнопкой мыши по базе → Задачи (Tasks) → Сжать (Shrink) → Файлы (Files).
  2. В выпадающем списке «Тип файла» (File type) выберите Журнал (Log).
  3. В блоке параметров сжатия выберите «Реорганизовать страницы перед освобождением неиспользуемого места» и укажите желаемый размер (например, 500 МБ).
  4. Нажмите «ОК». Файл .ldf мгновенно сожмется, освободив десятки гигабайт на диске.
💡 Практика специалистов: Никогда не настраивайте автоматическое сжатие базы (Auto Shrink = True) в свойствах MS SQL! Постоянные циклы роста и сжатия вызывают чудовищную фрагментацию диска и файловой системы NTFS, роняя скорость работы 1С в разы.

Частые вопросы (FAQ)

Почему Shrink не уменьшает размер файла лога?

Внутри файла лога есть незавершенная активная транзакция (например, зависший фоновый перерасчет итогов 1С). Проверьте статус командой DBCC OPENTRAN и сделайте бэкап журнала перед сжатием: BACKUP LOG [buh_db] TO DISK = 'NUL'.

Какую модель восстановления выбрать: Simple или Full?

Для небольших баз 1С (до 50 пользователей) идеальна модель Simple (Простая) — лог очищается автоматически при каждом чекпоинте. Модель Full нужна только крупным предприятиям, где требуется восстановление базы на любую секунду дня.

Можно ли просто удалить файл .ldf с жесткого диска?

Категорически нет! Без файла лога база данных перейдет в состояние «Recovery Pending» и перестанет открываться. Удалять файлы базы можно только после правильного отсоединения (Detach).

Как предотвратить повторное разрастание .ldf в будущем?

Если база работает в режиме Full, обязательно настройте в Плане обслуживания (Maintenance Plan) создание бэкапа журнала транзакций каждые 15–30 минут.

Полезные материалы
Рекомендуем