Почему после восстановления базы 1С из бэкапа очистился журнал регистрации и как его вернуть

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При обслуживании и восстановлении информационных баз 1С:Предприятия системные администраторы нередко сталкиваются с ситуацией: после успешного восстановления базы из файла резервной копии СУБД (например, .bak в MS SQL Server) или выгрузки .dt журнал регистрации оказывается полностью пустым, а новые записи начинаются только с момента запуска восстановленной базы. Разберем подробно, почему это происходит, как устроено хранение журнала регистрации в платформе 1С и как можно вернуть историю действий пользователей.

Где хранится журнал регистрации и почему его нет в бэкапе СУБД

Проанализируем архитектурные особенности хранения данных в 1С:Предприятии 8:

  1. Разделение данных базы и журнала: журнал регистрации 1С никогда не хранится внутри таблиц СУБД (MS SQL, PostgreSQL, Oracle и др.). Файл журнала транзакций SQL-сервера (с расширением .ldf) фиксирует только низкоуровневые транзакции самой базы данных и не имеет никакого отношения к журналу событий 1С.
  2. Физическое расположение на сервере 1С: журнал регистрации ведется службой сервера 1С:Предприятия (ragent) и сохраняется исключительно в файловой системе сервера приложений в каталоге данных кластера: C:\Program Files\1cv8\srvinfo\reg_1541\<UUID_базы>\1Cv8Log\ (или аналогичном пути в Linux).
  3. Формат хранения: в платформе 1С:Предприятие 8.3 журнал по умолчанию представляет собой файл базы данных SQLite с именем 1Cv8.lgd (в старых версиях или разделенном формате — набор файлов .lgf и .lgp).
  4. Специфика резервного копирования: ни стандартный бэкап СУБД (.bak), ни файл выгрузки конфигуратора (.dt) не включают в себя каталог журнала регистрации. Они сохраняют только структуру метаданных и данные прикладных таблиц.

Причины «исчезновения» журнала регистрации при восстановлении

Выясним основные сценарии, из-за которых журнал начинает вестись с нуля:

  1. Пересоздание базы в кластере серверов 1С: если перед восстановлением база была удалена из консоли администрирования кластера 1С и добавлена заново, сервер 1С присваивает ей совершенно новый уникальный идентификатор (UUID). В каталоге srvinfo создается новая папка, а внутри нее — чистый файл 1Cv8.lgd.
  2. Восстановление в новую (тестовую) базу: при разворачивании копии базы на том же или отдельном сервере для нее создается своя директория с уникальным идентификатором, где журнал изначально пуст.
  3. Очистка каталога сеансовых данных: если администратор перед восстановлением вручную или скриптом очистил каталог srvinfo, удалив кэш и настройки баз, каталог старого журнала был стерт с диска.

Как найти и восстановить старый журнал регистрации

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

  1. Определяем новый идентификатор базы: откроем консоль администрирования кластера серверов 1С, перейдем в свойства нужной информационной базы и найдем параметр Идентификатор (UUID).
  2. Останавливаем службу сервера 1С: перед любыми файловыми манипуляциями с каталогом srvinfo необходимо обязательно остановить службу 1C:Enterprise 8.3 Server Agent (ragent), чтобы снять блокировки с файлов SQLite.
  3. Ищем каталог со старым журналом: переходим в каталог кластера (например, C:\Program Files\1cv8\srvinfo\reg_1541\). Просматриваем подпапки с идентификаторами. В одной из них (соответствующей старому UUID удаленной базы) в папке 1Cv8Log будет лежать файл 1Cv8.lgd большого размера.
  4. Переносим файлы журнала: копируем содержимое старой папки 1Cv8Log (файл 1Cv8.lgd или файлы .lgp/.lgf) в папку 1Cv8Log с новым идентификатором базы, заменив созданный пустой файл.
  5. Запускаем службу сервера 1С: запускаем службу ragent и заходим в информационную базу через Конфигуратор или Предприятие для проверки доступности истории в журнале регистрации.

Что делать, если каталог был удален

Если папка старой базы в каталоге srvinfo отсутствует, рассмотрим альтернативные источники восстановления:

  1. Теневые копии тома (VSS): если на сервере включена функция «Предыдущие версии» (Volume Shadow Copy) для диска, на котором расположен каталог srvinfo, откроем свойства папки reg_1541, перейдем на вкладку «Предыдущие версии» и скопируем состояние папки 1Cv8Log на дату до восстановления.
  2. Бэкап файловой системы или виртуальной машины: восстановим каталог srvinfo из снимка виртуальной машины (снапшота) или резервной копии уровня файловой системы (Veeam, Acronis, Windows Server Backup).

Рекомендации по организации резервного копирования журнала регистрации

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

  1. Резервное копирование каталога srvinfo: настроим отдельное регламентное задание на уровне операционной системы для резервного копирования файлов 1Cv8.lgd (с предварительной остановкой службы либо с использованием механизмов VSS для создания консистентного снимка).
  2. Штатное сокращение журнала: для оптимизации размера журнала настроим регламентную процедуру сокращения логов через Конфигуратор или встроенный язык платформы 1С с обязательным сохранением удаляемых записей в архивные файлы .elf.

Посмотрим на пример программного вызова сокращения журнала регистрации с выгрузкой в архивный файл:


ИмяФайлаАрхива = "D:\Backup\Log\Archive_" + Формат(ТекущаяДата(), "ДФ=yyyyMMdd") + ".elf";
ДатаСреза = НачалоДня(ТекущаяДата()) - 30 * 86400; // Оставляем данные за последние 30 дней

СократитьЖурналРегистрации(ДатаСреза, ИмяФайлаАрхива);

Таким образом, при переносе, восстановлении или пересоздании баз данных 1С всегда учитываем, что журнал регистрации живет отдельно от СУБД, и контролируем сохранность каталога 1Cv8Log на сервере приложений.

← На главную