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

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

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

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

Лог транзакций (.ldf) MS SQL переполнен: как правильно урезать (Shrink) базу 1С

Обновлено: 26.08.2026 · Официальная документация ↗
  • На диске сервера полностью закончилось свободное место (0 байт).
  • В 1С при проведении документов выскакивает ошибка: «The transaction log for database '1c_base' is full due to 'LOG_BACKUP'».
  • Файл базы данных .mdf весит 20 ГБ, а файл журнала транзакций .ldf раздулся до 300–500 ГБ.

Почему разрастается файл .ldf простыми словами?

По умолчанию в MS SQL Server включена Полная модель восстановления (Full Recovery Model). В этом режиме сервер протоколирует абсолютно каждое изменение каждой строки базы в файл журнала .ldf и никогда не удаляет их сам, ожидая, пока администратор выполнит специальный бэкап лога транзакций. Если такие бэкапы не настроены, файл лога забивает весь жесткий диск.

Пошаговое решение: Быстрое сжатие лога транзакций

  1. Запустите программу SQL Server Management Studio (SSMS) и подключитесь к серверу.
  2. Нажмите кнопку «Создать запрос» (New Query) на верхней панели.
  3. Скопируйте и выполните следующий SQL-скрипт (замените 1C_BASE_NAME на реальное имя вашей базы):
    -- 1. Переключаем модель восстановления на Простую (Simple)
    ALTER DATABASE [1C_BASE_NAME] SET RECOVERY SIMPLE;
    GO
    
    -- 2. Узнаем точное логическое имя файла журнала
    -- (по умолчанию обычно имя базы с суффиксом _log)
    USE [1C_BASE_NAME];
    GO
    
    -- 3. Сжимаем файл журнала до разумных 500 Мегабайт
    DBCC SHRINKFILE (N'1C_BASE_NAME_log' , 500);
    GO
    
    -- 4. (Опционально) Возвращаем модель обратно в Full, если делаете бэкапы логов:
    -- ALTER DATABASE [1C_BASE_NAME] SET RECOVERY FULL;
    -- GO
  4. Нажмите клавишу F5 (или кнопку Execute / Выполнить).
  5. Файл .ldf мгновенно сожмется, и на диске моментально освободятся сотни гигабайт.
💡 Практика специалистов: Если после выполнения команды DBCC SHRINKFILE размер лога не уменьшился, проверьте причину задержки усечения запросом: SELECT name, log_reuse_wait_desc FROM sys.databases — чаще всего этому мешает зависшая активная транзакция или репликация AlwaysOn.

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

В чем разница между моделями восстановления Simple и Full?

В режиме Simple (Простая) SQL Server автоматически очищает завершенные транзакции из файла лога, и он не растет бесконечно. В режиме Full (Полная) лог копится непрерывно для возможности восстановления базы 'на любую секунду времени' (Point-in-time recovery).

Безопасно ли оставлять базу 1С в режиме восстановления Simple насовсем?

Для 90% типовых баз 1С малого и среднего бизнеса режим Simple является абсолютно нормальным и рекомендованным стандартом, если вы делаете регулярные ежедневные полные бэкапы баз.

Почему нельзя сжимать основной файл данных (.mdf) через Shrink Database?

Сжатие файла данных (.mdf) приводит к жесточайшей дефрагментации индексов (до 99%), после чего 1С начинает сильно тормозить. Сжимать можно только файл лога транзакций (.ldf).

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

Оставьте модель восстановления в режиме Simple или настройте в SQL Server Agent ежечасное резервное копирование журнала транзакций (Transaction Log Backup).

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