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

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

Как почистить логи базы 1С без потери данных

Практическая инструкция по очистке журнала регистрации 1С и логов СУБД: сокращение файлового журнала, усечение transaction log в MS SQL, настройка хранения.

Журналы и лог-файлы 1С со временем разрастаются до десятков гигабайт и начинают мешать работе: база медленнее открывается, диск переполняется, резервные копии становятся тяжёлыми. Чаще всего проблему создают два источника — журнал регистрации самой платформы 1С и журналы транзакций СУБД, если база работает в клиент-серверном варианте.

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

Ниже разобраны оба сценария: как сократить журнал регистрации в файловой и клиент-серверной базе, как безопасно усекать transaction log в MS SQL и PostgreSQL, как настроить хранение, чтобы логи не разрастались снова, и каких ошибок при очистке стоит избегать.

Определяем, какие логи заняли место

Прежде чем что-то удалять, выясните, что именно съело дисковое пространство. В файловой базе проверьте размер файлов в каталоге базы: 1Cv8.1CD (сама база) и подкаталог 1Cv8Log с файлом 1Cv8.lgd (журнал регистрации). Если журнал занимает гигабайты — он и есть виновник.

В клиент-серверном варианте смотрите на файлы базы данных на стороне СУБД. В MS SQL Server большой размер файла .ldf говорит о разросшемся журнале транзакций, а большой .mdf — о данных, которые чистятся иначе. Также журнал регистрации в клиент-серверной базе хранится отдельно — в каталоге srvinfo кластера 1С, в папке вида reg_1541\<GUID базы>\1Cv8Log.

Большой 1Cv8.lgdПереполнен журнал регистрации

Размер файла в каталоге базы или в reg_1541 кластера

Большой .ldf в MS SQLРазросся журнал транзакций

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

Большой 1Cv8.1CDРазрослась сама база, а не логи

Нужна загрузка-выгрузка через dt или тестирование и исправление, а не чистка логов

Сокращаем журнал регистрации через конфигуратор

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

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

После сокращения старый файл журнала заменяется новым, а выгруженная часть сохраняется в указанный каталог в формате журнала — её можно открыть позже через конфигуратор («Файл → Открыть») и просмотреть события как обычный журнал регистрации.

Порядок сокращения журнала регистрации
  1. 1
    Сделайте резервную копию базы или каталога с журналом
  2. 2
    Попросите пользователей выйти из базы
  3. 3
    Откройте конфигуратор: Администрирование → Настройка журнала регистрации
  4. 4
    Нажмите «Сократить», укажите дату и файл для выгрузки удаляемых событий
  5. 5
    Дождитесь завершения и проверьте, что журнал открывается и новые события пишутся

Настраиваем хранение, чтобы журнал не разрастался

Разовая очистка не решает проблему, если журнал снова начнёт расти. В том же окне «Настройка журнала регистрации» можно ограничить состав регистрируемых событий: например, отключить запись информационных сообщений и оставить только ошибки, предупреждения и важные действия пользователей. Это существенно снижает темп роста файла.

Дополнительно в свойствах базы (в консоли кластера 1С для клиент-серверного варианта) доступен параметр периодичности разделения журнала регистрации: по дням, неделям, месяцам или годам. Разделение по периодам упрощает архивацию и удаление старых фрагментов — старый период можно просто перенести в архив, не запуская сокращение.

Чистим логи СУБД в клиент-серверной базе

Если место съедает журнал транзакций MS SQL Server, действия выполняются средствами СУБД. Классическая причина разрастания .ldf-файла — база работает в полной модели восстановления (Full), но резервные копии журнала транзакций не делаются. В этом режиме лог растёт бесконечно, пока его не усечь.

Есть два рабочих подхода. Первый: если восстановление на произвольный момент времени не требуется, переведите базу в простую модель восстановления (Simple) — тогда журнал усекается автоматически после checkpoint, а разросшийся файл сжимается командой shrink. Второй: оставить модель Full, но настроить регулярные бэкапы журнала транзакций — каждый такой бэкап освобождает место внутри .ldf, после чего файл можно сжать до разумного размера.

sql
-- Пример для простой модели восстановления
ALTER DATABASE [MyBase] SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE (N'MyBase_log', 1024); -- сжать лог до ~1 ГБ
GO

В PostgreSQL аналогичную роль играют WAL-файлы. Их накопление обычно связано с остановленной репликой, слотом репликации или слишком большим значением max_wal_size. Удалять WAL-файлы вручную из каталога pg_wal нельзя — это почти гарантированно повредит кластер. Вместо этого устраняют причину накопления и дают серверу удалить файлы автоматически.

Можно ли просто удалить файл журнала регистрации

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

Безопасный вариант ручной очистки: остановить работу с базой (для клиент-серверного варианта — остановить службу агента сервера 1С или хотя бы завершить сеансы), переименовать или переместить файл журнала в архивный каталог, затем запустить работу. Так старый журнал сохраняется и при необходимости открывается отдельно.

Типичные ошибки
01
Удаление 1Cv8.lgd при запущенном сервере 1С — ошибки записи журнала и потеря событий текущего сеанса
02
Удаление .ldf-файла MS SQL вручную — база переходит в suspect и требует сложного восстановления
03
Сокращение журнала без выгрузки старой части — история действий пользователей теряется навсегда
04
Очистка логов без резервной копии — любой сбой во время операции оставляет базу в повреждённом состоянии
05
Сжатие .ldf до минимума без смены модели восстановления — файл снова разрастается за считаные дни

Проверяем результат и предотвращаем повторение

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

Чтобы проблема не вернулась, встройте обслуживание логов в регламент: сокращение журнала регистрации — например, раз в квартал с выгрузкой в архив, бэкапы журнала транзакций — по расписанию, если используется модель Full. Контролируйте свободное место на дисках с базами — переполнение диска во время работы СУБД опаснее самих разросшихся логов.

Контрольные точки

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

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

Открывается в конфигураторе, новые события записываются

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

Ошибка открытия журнала или события не фиксируются

Размер файлов
Норма

1Cv8.lgd или .ldf уменьшились до ожидаемого размера

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

Размер не изменился — операция не выполнилась или чистился не тот файл

Работа пользователей
Норма

Вход и проведение документов без ошибок

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

Ошибки доступа к базе или журналу после очистки

Модель восстановления (MS SQL)
Норма

Соответствует политике бэкапов: Simple без бэкапов лога или Full с регулярными

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

Full без бэкапов журнала — лог разрастётся снова

Частые вопросы о чистке логов 1С

Удалится ли история действий пользователей при сокращении журнала регистрации?

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

Почему .ldf-файл MS SQL снова вырос после сжатия?

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

Нужно ли останавливать пользователей для сокращения журнала?

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

Чем отличается чистка логов от уменьшения самой базы 1С?

Логи — это журнал регистрации и журналы СУБД, они не содержат учётных данных. Если разросся сам файл базы (1Cv8.1CD или .mdf), нужны другие процедуры: свёртка данных, удаление устаревших документов, загрузка-выгрузка через dt или тестирование и исправление с реструктуризацией.

Можно ли автоматизировать сокращение журнала регистрации?

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

Опасно ли отключить журнал регистрации совсем?

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

Итог

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

Журнал регистрации 1С сокращается через конфигуратор с выгрузкой старой части, логи СУБД — только штатными средствами СУБД после резервной копии. Чтобы логи не разрастались снова, ограничьте состав регистрируемых событий и согласуйте модель восстановления базы с расписанием бэкапов.