Srvinfo reg_1541 - очистка журнала регистрации 1С

На сервере 1С  со временем увеличивается в размерах папка
reg_1541, содержащая журналы регистрации 1С. Расположена эта папка в директории  С:\Program Files\1cv82\srvinfo. И как следствие может возникнуть проблема свободного пространства на системном жестком диске. Чтобы избежать роста папки srvinfo необходимо периодически очищать журнал регистрации 1С.

На сервере 1С  со временем увеличивается в размерах папка
reg_1541, содержащая журналы регистрации 1С. Расположена эта папка в директории  С:\Program Files\1cv82\srvinfo. И как следствие может возникнуть проблема свободного пространства на системном жестком диске. Чтобы избежать роста папки srvinfo необходимо периодически очищать журнал регистрации 1С.

Удаление неиспользуемых журналов регистрации из папки Srvinfo

В журнале регистрации фиксируется все изменения объектов баз 1С - документы, справочники, регистры и т.д.

Для каждой базы данных 1С существует своя директория хранения журнала регистрации и выглядит она таким образом:

C:\Program Files\1cv8\srvinfo\<Имя кластера сервера>\<Идентификатор базы на сервере>\1Cv8Log

Папка <Имя кластера сервера> по-умолчанию называется reg_1541.

После удаления базы данных с сервера 1С папка журнала регистрации не удаляется из Srvinfo. Поэтому из множества папок в 
Srvinfo могут находиться и те, которые давно не используются и просто занимают место на жестком диске.

Вычислить эти папки можно открыв файл 1CV8Clst.lst, который находится так же в reg_1541.

Копируем <Идентификатор базы на сервере> из папки Srvinfo и ищем в файле  1CV8Clst.lst. Если идентификатор в файле не найден, то папку можно удалять.

1CV8Clst.lst
1CV8Clst.lst

В директории Srvinfo находится папка с названием вида snccntx+<Идентификатор базы на сервере>. Эта папка содержит сеансовые данные и ее лучше не удалять без необходимости т.к. много места она не занимает.

Настройка и очистка журнала регистрации 1С

Запускаем 1С в режиме конфигуратора и переходим в меню "Администрирование/Настройка журнала регистрации"

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

В настройках журнала регистрации можно выбрать какие события будут регистрироваться:

Ошибки - информация о сбоях
Предупреждения - важные уведомления, не ошибки
Информация - все изменения базы данных
Примечания - все остальные уведомления

Для очистки журнала регистрации нажимаем кнопку "Сократить"

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

Здесь можно будет увидеть диапазон дат, за который хранятся данные.

В поле "Удалить события до:" выбираем дату до который будем очищать журнал регистрации.

Удаляемые события рекомендуется записать в файл, чтобы при необходимости можно было их восстановить

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

Автоматизация процесса через командную строку Windows выглядит таким образом:

"[PathTo1Cv8Exe]\1cv8.exe" CONFIG [ConnectionString] /Out[PathToOperLog] /ReduceEventLogSize [ShrinkDate] -saveAs [BackUpedLog]

[ConnectionString] -- строка подключения к информационной базе. Т.к. речь идёт о серверном варианте, эта строка будет иметь вид "/S[ServerName][InfoBaseName] /N[UserName] /P[UserPassword]". Пользователь должен иметь право администрирования.

[PathToOperLog] -- путь к файлу, в котором будут сохранены сообщения системы при выполнении этой операции.

[ShrinkDate] -- дата, по которую будет укорочен журнал регистрации в формате yyyy-mm-dd

[BackUpedLog] -- путь к файлу в формате *.elf, к которым можно будет обратиться в случае необходимости проводить расследования давних операций с информационной базой.

Операцию необходимо выполнять когда нет активных подключений к базе 1С.

Образец скрипта для PowerShell

#
# backup & shrink 1c logs
#

param (
    [string]$1cexe = "C:\Program Files (x86)\1cv82\8.2.15.319\bin\1cv8.exe",
    [string]$1cbase = "srvrname\ibname",
    [string]$1cuser = "username",
    [string]$1cupassword = "password",
    [string]$1coperlog = "s:\logs\1cshrink.txt",
    [string]$1cdaysoflogstore = 7, #[дата по которую удалить логи] (get-date).Date.AddDays(-$1cdaysoflogstore).ToString("yyyyMMdd")
    [string]$1clogsarchive = "s:\backup\6months\", #[путь к сохраняемому в другом месте файлу логов *.elf] 
    [string]$1clogfilename = $env:COMPUTERNAME.ToLower() + "-1clog-" + ($1cbase.split("\"))[1] + "-" + (get-date).Date.ToString("yyyyMMdd") + ".elf"
)

$1clog = $1clogsarchive + $1clogfilename

cmd /c "`"`"$1cexe`" CONFIG `/s$1cbase `/N`"$1cuser`" `/P`"$1cupassword`" `/Out$1coperlog `/ReduceEventLogSize $((get-date).Date.AddDays(-$1cdaysoflogstore).ToString("yyyy-MM-dd")) -saveAs`"$1clog`"`""

Внимание! Данные для подключения к базе 1С обезличены. Необходимо заменить на свои.

Перенос журнала регистрации на другой диск

Чтобы избежать переполнения системного диска файлами журнала регистрации 1С папку SRVINFO можно перенести на другой диск. Выполнить это можно изменив параметры запуска службы "Агент сервера 1С:Предприятия 8.3" в реестре Windows.

В редакторе реестра переходим по ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.2 Server Agent и в параметре ImagePath изменяем значение "Агент сервера 1С:Предприятия 8.3" "C:\Program Files (x86)\1cv8\8.3.10.2667\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files (x86)\1cv8\srvinfo".
Вместо "C:\Program Files (x86)\1cv8\srvinfo" указываем новую директорию нахождения журнала регистрации.

редактирование запуска службы
редактирование запуска службы "Агент сервера 1С:Предприятия 8.3" в реестре Windows

В статье использован источник: http://infostart.ru/public/161396/

9 thoughts on “Srvinfo reg_1541 - очистка журнала регистрации 1С

  1. Гость

    На более ранних платформах папка srvinfo называется server , путь к ней и название можно подсмотреть в настройках службы Агент сервера 1С:Предприятия или в реестре

  2. Игорь

    Попытка запустить скрип в текущем виде выдаёт следующее:
    cmd : """C:\Program" не является внутренней или внешней
    Я тут логику одинарных и двойных кавычек в последней строке вообще не смог осознать, как ни пытался

    Методом тыка понял, что Powershell в общем-то считывает команды без кавычек, написал следующее
    cmd.exe /c $1cexe CONFIG /s$1cbase /n$1cuser /p$1cuserpassword /Out$1coperlog /ReduceEventLogSize $((get-date).Date.AddDays(-$1cdaysoflogstore).ToString("yyyy-MM-dd")) -saveAs $1clog

    Но эта команда не выполняет никаких действий. Как я понимаю, PowerShell передаёт в командную строку вместо /ReduceEventLogSize команду /R с параметром educeEventLogSize

    Подскажите, как бороться?

  3. Игорь

    Вдруг кому-то поможет. У меня на Server 2019 скрипт заработал в следующем виде:
    & "$1cexe" CONFIG "/s $1cbase" "/n $1cuser" "/p $1cuserpassword" "/Out $1coperlog" "/ReduceEventLogSize $((get-date).Date.AddDays(-$1cdaysoflogstore).ToString("yyyy-MM-dd"))" -saveAs $1clog

  4. David

    А что будет если просто удалить эти папки?
    Потому что есть старые базы от которых даже неизвестны пароли входа.

    1. Прог

      удаляться данные журнала регистрации. сама база останется, не переживайте)

Добавить комментарий для Андрей Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *