вторник, 14 мая 2013 г.

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


Автоматизированная периодическая очистка разросшегося журнала регистрации на сервере с сохранением удаляемых частей на другом диске.
Однажды мы заметили, что на системном диске значительно уменьшился размер свободного пространства. Одной из причин этого была папка С:\Program Files\1cv82\srvinfo\reg_1541\, в которой разросся размер файлов журнала регистрации. Существует возможность очистить журнал регистрации интерактивно в Конфигураторе из меню "Администрирование" --> "Настройка журнала регистрации".
Но есть возможность автоматизировать этот процесс, запуская командную строку следующего вида:
"[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, к которым можно будет обратиться в случае необходимости проводить расследования давних операций с информационной базой.
Эту операцию можно выполнять тогда, когда в информационной базе не будет других пользователей. Пробелы (и их отсутствие) проставлены в соответствией с документацией, обращайте на них внимание.
Наш системный администратор написал Power Shell скрипт (ВНИМАНИЕ: данные в нём анонимизированы, для использования требуется актуализация применительно к конкретной ситуации):
#
# 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`"`""

Комментариев нет:

Отправка комментария