К статье
Практический материал

Администрирование · 10 мин

Как удалить логи 1С в SQL: пошаговая инструкция

Как безопасно удалить или уменьшить логи 1С в SQL Server: усечение журнала транзакций, очистка журнала регистрации, настройка модели восстановления и бэкапы.

База 1С на SQL Server со временем обрастает двумя видами «логов»: журналом транзакций самого SQL Server (файл .ldf) и журналом регистрации 1С, который хранится внутри базы. Первый может вырасти до десятков и сотен гигабайт и заполнить диск, второй — замедлить работу и раздуть резервные копии. Удалять их нужно по-разному, и ошибка в последовательности действий способна оставить вас без возможности восстановить данные.

Главное правило: файлы журнала транзакций нельзя удалять вручную через проводник — база после этого перейдёт в состояние Suspect и перестанет открываться. Корректные способы — усечение журнала через средства SQL Server, смена модели восстановления и регламентная очистка журнала регистрации 1С штатными механизмами платформы.

Какие логи есть у 1С на SQL и зачем они нужны

Прежде чем что-то удалять, важно различать три разных объекта, которые администраторы называют «логами». Первый — журнал транзакций SQL Server (файл с расширением .ldf). Он фиксирует все изменения данных и нужен для восстановления базы на произвольный момент времени. Именно он чаще всего «съедает» диск.

Второй — журнал регистрации 1С. Он хранится внутри самой базы (в таблице EventLog) и содержит записи о действиях пользователей: кто вошёл, какой документ провёл, что изменил. При активной работе сотен пользователей эта таблица растёт быстро и увеличивает размер бэкапов.

Третий — технологический журнал платформы 1С (каталог log, если он включён в logcfg.xml) и логи СУБД (errorlog SQL Server). Они нужны для диагностики, обычно занимают немного места и очищаются простым удалением старых файлов при остановленных службах или штатной ротацией.

Как определить, что именно заняло диск

Откройте SQL Server Management Studio (SSMS), подключитесь к серверу и посмотрите свойства базы: вкладка Files покажет размер файла данных (mdf) и файла журнала (ldf). Если ldf в разы больше mdf — проблема в журнале транзакций. Если большой именно mdf, вероятнее всего разросся журнал регистрации 1С или сами данные.

Дополнительно проверьте каталоги: папку журнала регистрации файловых баз (если такие есть), каталог технологического журнала и папку Log в каталоге установки SQL Server. Быстрая разведка занимает пару минут и избавляет от очистки «не того» объекта.

Файл .ldf огромныйРазросся журнал транзакций

Проверить модель восстановления базы и расписание бэкапов лога

Файл .mdf большойДанные или журнал регистрации 1С

Посмотреть размер таблицы EventLog и настройки журнала регистрации

Диск заполнен мелкими файламиТехжурнал или логи СУБД

Проверить каталоги log и настройки logcfg.xml

Как уменьшить журнал транзакций (файл .ldf)

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

Второй сценарий — перевод базы в модель восстановления Simple. В этой модели SQL Server сам переиспользует место в журнале после завершения транзакций, и ldf перестаёт расти бесконечно. После переключения выполните сжатие файла, чтобы вернуть место операционной системе.

Усечение журнала через модель Simple
  1. 1
    Сделайте полную резервную копию базы и убедитесь, что она открывается
  2. 2
    В SSMS: правый клик по базе → Properties → Options → Recovery model → Simple
  3. 3
    Tasks → Shrink → Files → выберите File type: Log, укажите целевой размер
  4. 4
    Дождитесь завершения операции и проверьте размер .ldf на диске
  5. 5
    Решите, оставить ли модель Simple, и настройте регулярные полные бэкапы
sql
ALTER DATABASE [Base1C] SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE (N'Base1C_log' , 1024);
GO

Учтите: Shrink большого журнала может занять заметное время и нагружает дисковую подсистему. Выполняйте операцию вне пиковой нагрузки, при активных пользователях возможны блокировки. После сжатия файла данных (mdf) рекомендуется перестроить индексы, так как shrink их фрагментирует.

Выбор модели восстановления для баз 1С

Модель Full даёт возможность восстановить базу на любой момент времени, но требует регулярных бэкапов журнала транзакций — иначе ldf растёт без ограничений. Модель Simple ограничивает восстановление моментом последней полной или разностной копии, зато журнал сам себя переиспользует.

Сравнение моделей восстановления

Simple

Подходит для небольших баз и тестовых сред, где допустима потеря данных за период с последнего бэкапа. Журнал не требует обслуживания

Full

Для критичных баз, где нужно восстановление на произвольный момент. Требует регулярных бэкапов журнала транзакций, иначе ldf растёт бесконечно

Bulk-logged

Компромисс для массовых загрузок данных; для типовых баз 1С применяется редко

Маршрут решения

Как выбрать действие

Допустимо восстановление только на момент последнего бэкапаПереведите базу в Simple и настройте ежедневные полные копии
Нужно восстановление на произвольный момент времениОставьте Full и настройте бэкапы журнала транзакций каждые 15–60 минут
Диск заполнен и работа встала прямо сейчасСделайте бэкап лога (или переключитесь в Simple) и выполните Shrink, затем настройте регламент

Как сократить журнал регистрации 1С

Журнал регистрации сокращается штатно: откройте конфигуратор, меню «Администрирование» → «Настройка журнала регистрации» → кнопка «Сократить». Укажите дату, до которой удалять события, и при необходимости сохраните выгрузку старых записей в файл для архива. Операция удаляет записи из таблицы EventLog внутри базы.

Два нюанса. Во-первых, сокращение большого журнала — длительная операция, при клиент-серверном варианте она выполняется на стороне СУБД и может идти долго. Во-вторых, после удаления записей физический размер mdf не уменьшится сам: освободившееся место останется внутри файла и будет переиспользоваться. Если нужно вернуть место диску — выполните Shrink файла данных, но делайте это осознанно из-за фрагментации индексов.

Чтобы журнал не разрастался снова, в той же настройке ограничьте регистрируемые события: часто достаточно ошибок, предупреждений и важных действий вместо полного протоколирования всех обращений к данным.

Очистка технологического журнала и логов SQL Server

Технологический журнал платформы (если включён через logcfg.xml) пишется в указанный каталог. Старые файлы можно удалять как обычные файлы, остановив службу агента сервера 1С, либо настроить автоматическую ротацию параметрами в самом logcfg.xml. Не держите техжурнал включённым постоянно в продуктиве — он замедляет работу и быстро заполняет диск.

Логи ошибок SQL Server (errorlog) ротируются автоматически при перезапуске службы; можно принудительно закрыть текущий файл командой sp_cycle_errorlog. Старые трассировки и дампы из папки Log удаляются вручную без вреда для работающего сервера.

Профилактика: как не дать логам снова заполнить диск

Разовая очистка решает симптом, но не причину. Настройте план обслуживания: регулярные полные бэкапы, бэкапы журнала транзакций при модели Full, периодическое сокращение журнала регистрации и мониторинг свободного места на дисках. Для баз 1С также полезны регламентные операции по обновлению статистики и перестроению индексов.

Типичные ошибки
01
Удаление файла .ldf вручную — база переходит в Suspect и требует сложного восстановления
02
Shrink журнала без бэкапа при модели Full — место не освобождается, потому что журнал не усечён
03
Сокращение журнала регистрации без выгрузки — теряется история действий пользователей для аудита
04
Отсутствие плана обслуживания — через месяц диск снова заполнен
05
Постоянно включённый технологический журнал в продуктиве — деградация производительности и рост файлов
Контрольные точки

Как проверить результат

Размер .ldf после Shrink
Норма

Файл уменьшился до заданного объёма

Тревожный признак

Размер не изменился — журнал не усечён, проверьте модель восстановления и бэкап лога

Работа базы 1С
Норма

Пользователи входят, документы проводятся без ошибок

Тревожный признак

База в состоянии Suspect или ошибки входа — нужно восстановление из копии

Журнал регистрации
Норма

Старые события удалены, новые записываются

Тревожный признак

Записей нет вообще — проверьте настройки регистрации событий

Итог

Что важно запомнить

Журнал транзакций усекается только штатными средствами SQL Server: бэкап лога или модель Simple плюс Shrink. Журнал регистрации 1С сокращается из конфигуратора с предварительной выгрузкой. Любые операции начинайте с проверенной резервной копии и закрепляйте результат настройкой регламентного обслуживания.

Частые вопросы

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

Нет. SQL Server считает журнал транзакций частью базы, и после удаления файла база перейдёт в состояние Suspect и перестанет открываться. Восстановление в такой ситуации сложнее и рискованнее, чем штатное усечение журнала.

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

Чаще всего потому, что журнал не усечён: при модели восстановления Full нужно сначала сделать резервную копию журнала транзакций. Также сжать файл нельзя, пока в нём есть активные виртуальные журналы — иногда помогает повторный бэкап лога и повторный Shrink.

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

Сама операция безопасна и выполняется быстро, но она разрывает цепочку восстановления: восстановить базу на произвольный момент времени до этого переключения станет нельзя. Сразу после перевода сделайте полную резервную копию, чтобы начать новую точку отсчёта.

Уменьшится ли файл базы после сокращения журнала регистрации 1С?

Размер mdf автоматически не уменьшится: освободившееся место остаётся внутри файла и будет использоваться под новые данные. Чтобы вернуть место диску, нужен Shrink файла данных, но после него стоит перестроить индексы из-за фрагментации.

Как часто нужно сокращать журнал регистрации?

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

Можно ли вообще отключить журнал регистрации в 1С?

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