При обслуживании и восстановлении информационных баз 1С:Предприятия системные администраторы нередко сталкиваются с ситуацией: после успешного восстановления базы из файла резервной копии СУБД (например, .bak в MS SQL Server) или выгрузки .dt журнал регистрации оказывается полностью пустым, а новые записи начинаются только с момента запуска восстановленной базы. Разберем подробно, почему это происходит, как устроено хранение журнала регистрации в платформе 1С и как можно вернуть историю действий пользователей.
Проанализируем архитектурные особенности хранения данных в 1С:Предприятии 8:
.ldf) фиксирует только низкоуровневые транзакции самой базы данных и не имеет никакого отношения к журналу событий 1С.ragent) и сохраняется исключительно в файловой системе сервера приложений в каталоге данных кластера: C:\Program Files\1cv8\srvinfo\reg_1541\<UUID_базы>\1Cv8Log\ (или аналогичном пути в Linux).1Cv8.lgd (в старых версиях или разделенном формате — набор файлов .lgf и .lgp)..bak), ни файл выгрузки конфигуратора (.dt) не включают в себя каталог журнала регистрации. Они сохраняют только структуру метаданных и данные прикладных таблиц.Выясним основные сценарии, из-за которых журнал начинает вестись с нуля:
UUID). В каталоге srvinfo создается новая папка, а внутри нее — чистый файл 1Cv8.lgd.srvinfo, удалив кэш и настройки баз, каталог старого журнала был стерт с диска.Если база была просто пересоздана в кластере, файлы старого журнала регистрации с высокой вероятностью остались на диске сервера приложений. Разберем по шагам процесс их поиска и переноса.
srvinfo необходимо обязательно остановить службу 1C:Enterprise 8.3 Server Agent (ragent), чтобы снять блокировки с файлов SQLite.C:\Program Files\1cv8\srvinfo\reg_1541\). Просматриваем подпапки с идентификаторами. В одной из них (соответствующей старому UUID удаленной базы) в папке 1Cv8Log будет лежать файл 1Cv8.lgd большого размера.1Cv8Log (файл 1Cv8.lgd или файлы .lgp/.lgf) в папку 1Cv8Log с новым идентификатором базы, заменив созданный пустой файл.ragent и заходим в информационную базу через Конфигуратор или Предприятие для проверки доступности истории в журнале регистрации.Если папка старой базы в каталоге srvinfo отсутствует, рассмотрим альтернативные источники восстановления:
srvinfo, откроем свойства папки reg_1541, перейдем на вкладку «Предыдущие версии» и скопируем состояние папки 1Cv8Log на дату до восстановления.srvinfo из снимка виртуальной машины (снапшота) или резервной копии уровня файловой системы (Veeam, Acronis, Windows Server Backup).Чтобы избежать потери аудита действий пользователей в будущем, настроим регулярное сохранение журнала:
1Cv8.lgd (с предварительной остановкой службы либо с использованием механизмов VSS для создания консистентного снимка)..elf.Посмотрим на пример программного вызова сокращения журнала регистрации с выгрузкой в архивный файл:
ИмяФайлаАрхива = "D:\Backup\Log\Archive_" + Формат(ТекущаяДата(), "ДФ=yyyyMMdd") + ".elf";
ДатаСреза = НачалоДня(ТекущаяДата()) - 30 * 86400; // Оставляем данные за последние 30 дней
СократитьЖурналРегистрации(ДатаСреза, ИмяФайлаАрхива);
Таким образом, при переносе, восстановлении или пересоздании баз данных 1С всегда учитываем, что журнал регистрации живет отдельно от СУБД, и контролируем сохранность каталога 1Cv8Log на сервере приложений.