Журнал регистрации 1С занял гигабайты: как освободить место и не потерять нужное
Содержание
Почистить логи
базы 1С проще всего в Конфигураторе: Администрирование → Настройка журнала регистрации…, кнопка «Сократить…», дата, до которой удалить события, и при желании выгрузка удалённого в файл. Это штатный способ очистки журнала регистрации, он работает и для файловой, и для клиент-серверной базы.
Если журнал разбит по периодам, старые файлы можно удалить прямо с диска. А если «логи» — это 50 ГБ файла .ldf на SQL-сервере, то журнал регистрации тут ни при чём: это лог транзакций СУБД, и чистится он иначе.
С чего начать: что именно разрослось и где лежит
Под словом «логи» в 1С скрываются три разные вещи. Перед очисткой определите, какая из них съела диск.
| Что это | Где лежит | Чем чистить |
|---|---|---|
| 📒 Журнал регистрации базы | папка 1Cv8Log | Конфигуратор, удаление старых файлов |
| 🛠 Технологический журнал | папка из logcfg.xml | параметр history, удаление каталогов |
| 💾 Лог транзакций СУБД | файл .ldf (MS SQL), pg_wal (PostgreSQL) | средствами СУБД |
Где найти папку журнала регистрации
- 📁 Файловая база — в каталоге базы, рядом с
1Cv8.1CD, есть подпапка1Cv8Log. - 🖥 Клиент-серверная база
на Windows — на сервере 1С:
C:\Program Files\1cv8\srvinfo\reg_1541\<GUID базы>\1Cv8Log. Если сервер ставили с другим каталогом данных, путь начинается с него. - 🐧 Сервер на Linux — обычно
/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<GUID базы>/1Cv8Log.
GUID базы — это идентификатор информационной базы в кластере. Его видно в свойствах базы в консоли администрирования серверов или в выводе rac infobase summary list --cluster=<id кластера>. Папок с GUID в reg_1541 столько, сколько баз в кластере, поэтому сверяйтесь именно по идентификатору, а не по размеру.
Какой у вас формат журнала
Формат определяется по файлам в 1Cv8Log:
- 📄 Последовательный (старый) — файл
1Cv8.lgfи много файлов.lgp. Имя каждого.lgp— дата и время начала периода, например20250301000000.lgp. - 🗄 SQLite (новый) — один файл
1Cv8.lgd.
От формата зависит, можно ли чистить лог удалением файлов. Для .lgp — можно, для .lgd — только штатно.
Оценка журнала: что в нём копится и сколько
Прежде чем удалять, посмотрите размер папки и состав событий. Это займёт пять минут и подскажет, нужно ли вообще чистить или достаточно поменять уровень записи.
- Посмотрите размер
1Cv8Logв проводнике или командойdu -shна Linux. - Для последовательного формата отсортируйте
.lgpпо имени: видно, за какие месяцы файлы самые тяжёлые. - Откройте журнал в программе. В БП 3.0, ЗУП 3.1, УТ 11 он есть в разделе
Администрирование → Обслуживание. В любой конфигурации его можно открыть черезВсе функции → Стандартные → Журнал регистрации(команду «Все функции» включают в параметрах программы). - Поставьте отбор по периоду за один день и посмотрите, какие события повторяются тысячами.
Типичные «пожиратели» места:
- 🔁 фоновые и регламентные задания, которые запускаются каждую минуту и пишут информационные события;
- 🔐 события входа и выхода, если к базе постоянно подключаются обмены или веб-сервисы;
- 🧾 изменения данных на уровне «Регистрировать все события» — каждая запись регистра попадает в журнал;
- ❌ одна и та же повторяющаяся ошибка, которую никто не чинит.
Если 90% записей — одна ошибка регламентного задания, сначала исправьте её. Иначе через месяц журнал снова будет того же размера.
Сокращение журнала в Конфигураторе
Это основной и самый безопасный способ. Платформа сама удаляет записи и сохраняет целостность журнала. Работает для обоих форматов.
- Запустите базу в режиме Конфигуратора под администратором.
- Откройте
Администрирование → Настройка журнала регистрации…. - Нажмите «Сократить…».
- В поле даты укажите, до какого числа удалить события. Например, оставить последние 6 месяцев: на 1 октября ставьте 1 апреля.
- Если записи могут понадобиться для разбора инцидентов или проверки, включите сохранение удалённых событий в файл и выберите каталог на другом диске.
- Нажмите «ОК» и дождитесь окончания.
На журнале в несколько десятков гигабайт операция идёт долго, иногда больше часа. Запускайте её вечером, когда нагрузка на базу минимальна.
Удалённые события восстановить нельзя, если вы не выгрузили их в файл. Журнал часто нужен, чтобы выяснить, кто и когда изменил документ. Перед сокращением договоритесь с главбухом или службой безопасности, за какой срок история должна храниться.
Что можно сделать без Конфигуратора
В режиме 1С:Предприятие журнал можно смотреть, фильтровать и выгружать, но сокращать его штатно — только в Конфигураторе. В типовых конфигурациях на БСП в разделе Администрирование → Обслуживание есть настройки журнала регистрации, где меняют уровень записи. Удаление старых записей там не предусмотрено как отдельная кнопка, поэтому для разовой большой чистки идите в Конфигуратор.
Чистка с диска и через консоль кластера
Чем помогает консоль администрирования серверов
Сама консоль кластера журнал регистрации не сокращает: такой команды в ней нет, и в rac тоже. Она нужна для двух вещей:
- 🔎 узнать GUID базы, чтобы найти нужную папку в
reg_1541; - 🚫 при необходимости установить блокировку начала сеансов на время работ.
Удаление старых файлов .lgp
Для последовательного формата с разделением по периодам каждый месяц или день лежит в отдельном файле. Старые файлы можно просто удалить.
- Скопируйте
1Cv8Logцеликом в архив, если история нужна. - Удалите файлы
.lgpза старые периоды. Последний (текущий) файл не трогайте. - Файл
1Cv8.lgfне удаляйте: в нём справочники пользователей, компьютеров и метаданных, на которые ссылаются записи.
Место освобождается сразу. Журнал в программе просто начнётся с более поздней даты.
Если журнал не разделён по периодам и лежит одним огромным .lgp, удалять его вручную не нужно — пользуйтесь «Сократить…» в Конфигураторе.
Если хочется удалить папку 1Cv8Log целиком
Иногда журнал не нужен совсем, например в копии базы для тестов. Тогда папку можно удалить полностью, платформа создаст новую при следующей записи. Делайте это при остановленной службе 1С (для серверной базы) или когда в файловой базе никто не работает .
Остановка службы «Агент сервера 1С:Предприятия» обрывает сеансы всех пользователей во всех базах кластера. Предупредите людей заранее и выбирайте время вне рабочего дня.
SQL и SQLite: что можно сделать запросами
Частое заблуждение — искать таблицу журнала регистрации в базе на MS SQL или PostgreSQL и удалять её записи SQL-запросом. В 8.3 журнал регистрации хранится не в СУБД, а в файлах на сервере 1С. Таблиц с ним в базе данных нет.
Лог транзакций MS SQL
Если «логи базы» — это разросшийся файл .ldf, причина обычно в модели восстановления «Полная» (Full) без регулярного резервного копирования журнала транзакций. Для базы 1С без требований к восстановлению на момент времени хватает модели «Простая» (Simple).
-- имя базы и логическое имя файла лога проверьте в свойствах базы
ALTER DATABASE [buh_base] SET RECOVERY SIMPLE;
GO
USE [buh_base];
GO
DBCC SHRINKFILE (N'buh_base_log', 1024); -- оставить около 1 ГБ
GO
Переход на модель «Простая» отключает восстановление на произвольный момент времени. Если у вас настроены резервные копии журнала транзакций, вместо смены модели сделайте очередной бэкап лога и уже потом сжимайте файл.
Логическое имя файла лога смотрите в SQL Server Management Studio: свойства базы → «Файлы». Оно не всегда совпадает с именем базы.
PostgreSQL
Каталог pg_wal вручную не чистят: удаление файлов из него ломает кластер PostgreSQL. Если он растёт, ищите причину — зависший слот репликации или неработающее архивирование WAL — и устраняйте её средствами PostgreSQL.
Файл 1Cv8.lgd (SQLite)
Журнал нового формата — это база SQLite. Удалять записи из неё сторонними утилитами не стоит: структура не документирована, и легко получить журнал, который платформа не откроет. Записи удаляйте через «Сократить…».
Сжатие и обслуживание после очистки
После сокращения журнала размер на диске меняется не всегда так, как ожидаешь.
| Ситуация | Что происходит | Что делать |
|---|---|---|
Удалили старые .lgp | место освободилось сразу | ничего |
Сократили .lgd | файл может не уменьшиться: SQLite оставляет пустые страницы внутри | сжать копию файла |
| Сжали лог MS SQL | .ldf уменьшился до заданного размера | следить за моделью восстановления |
Файловая база 1Cv8.1CD всё равно большая | журнал не внутри .1CD, он отдельно | тестирование и исправление со сжатием таблиц |
Как сжать 1Cv8.lgd
- Остановите службу сервера 1С или закройте файловую базу у всех пользователей.
- Сделайте копию
1Cv8.lgd. - Выполните сжатие утилитой
sqlite3:
sqlite3 "D:\1C_Bases\Buh\1Cv8Log\1Cv8.lgd" "VACUUM;"
- Проверьте, что журнал открывается в Конфигураторе, и запустите службу.
VACUUM не удаляет данные, он только перестраивает файл без пустых страниц. Для него нужно свободное место примерно равное размеру файла.
Если выросла сама база, а не журнал
Для файловой базы раздутый 1Cv8.1CD сжимают в Конфигураторе: Администрирование → Тестирование и исправление… с флажком сжатия таблиц информационной базы. Этот режим требует монопольного доступа, все пользователи должны выйти. В БСП-конфигурациях базу часто раздувает не журнал, а история версий объектов — её очищают в настройках версионирования в разделе Администрирование.
Настройка журнала, чтобы он не разрастался снова
Разовая чистка без настройки — это повтор той же проблемы через полгода. Три настройки решают вопрос надолго.
Уровень регистрации
В том же окне Администрирование → Настройка журнала регистрации… выберите уровень:
| Уровень | Когда подходит |
|---|---|
| Не регистрировать | почти никогда: пропадёт история действий |
| Регистрировать ошибки | тестовые и учебные базы |
| Регистрировать ошибки и предупреждения | рабочие базы с жёстким лимитом диска |
| Регистрировать ошибки, предупреждения и информацию | разумный выбор для большинства рабочих баз |
| Регистрировать все события | на время расследования, потом понизить |
Разделение по периодам
В той же настройке включите разделение журнала по периодам — по месяцам для небольшой базы, по дням для нагруженной. Тогда каждый период ляжет в свой файл, а старые файлы можно удалять без Конфигуратора.
Автоматическое удаление старых файлов
Для последовательного формата с разделением по периодам удаление можно поставить в планировщик. Пример для Windows — удаляет .lgp старше 180 дней:
forfiles /p "C:\Program Files\1cv8\srvinfo\reg_1541\<GUID базы>\1Cv8Log" /m *.lgp /d -180 /c "cmd /c del @path"
Для Linux то же самое делает find:
find /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<GUID>/1Cv8Log -name "*.lgp" -mtime +180 -delete
Перед удалением добавьте в задание копирование старых файлов в архив, если по регламенту историю нужно хранить.
Технологический журнал
Если включён технологический журнал, в logcfg.xml у элемента <log> задайте параметр history — сколько часов хранить данные:
<log location="D:\v8logs" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
Каталог технологического журнала размещайте на отдельном диске. После разбора проблемы техжурнал выключают: убирают logcfg.xml или его блок <log>.