На сервере 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. Если идентификатор в файле не найден, то папку можно удалять.
В директории Srvinfo находится папка с названием вида snccntx+<Идентификатор базы на сервере>. Эта папка содержит сеансовые данные и ее лучше не удалять без необходимости т.к. много места она не занимает.
Настройка и очистка журнала регистрации 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" указываем новую директорию нахождения журнала регистрации.
В статье использован источник: http://infostart.ru/public/161396/
Спасибо!
Спасибо ! буду знать ! -))
СПАСИБО!
На более ранних платформах папка srvinfo называется server , путь к ней и название можно подсмотреть в настройках службы Агент сервера 1С:Предприятия или в реестре
Попытка запустить скрип в текущем виде выдаёт следующее:
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
Подскажите, как бороться?
Вдруг кому-то поможет. У меня на Server 2019 скрипт заработал в следующем виде:
& "$1cexe" CONFIG "/s $1cbase" "/n $1cuser" "/p $1cuserpassword" "/Out $1coperlog" "/ReduceEventLogSize $((get-date).Date.AddDays(-$1cdaysoflogstore).ToString("yyyy-MM-dd"))" -saveAs $1clog
А что будет если просто удалить эти папки?
Потому что есть старые базы от которых даже неизвестны пароли входа.
удаляться данные журнала регистрации. сама база останется, не переживайте)
Огромное спасибо!