Доброго времени суток. Продолжаю публикации "ленивым" админам.
Первая статья (Резервное копирование PostgreSQL) вышла сравнительно давно, с тех пор утекло много воды. С появлением новых возможностей движка 1С решил переделать свои bat файлы, для создания полноценных dt файлов из указанных баз с возможностью хранения указанного количества копий.
- 1. Реализация через (bat) файл:
Итак, какие появились изменения в настройках файла params.bat:
rem Основные дирректории исполняемых файлов postgres и 7z
set BINPATH1C="C:\Program Files\1cv8\8.3.27.1688\bin"
set PATH7Z="C:\Program Files\7-Zip"
rem Основные дирректории обработки
set WORKPATH=D:\scripts
set BACKUPPATH=d:\MyBackup
rem тип SQL "MSSQLServer" или "PostgreSQL"
set DBms="PostgreSQL"
rem адрес или доменное имя по которому доступен SQL сервер.
set DB_server="localhost"
rem Базы SQL сервера - перечисление (base1 base2 base3 base4)
set SQLBASES=(zup_base)
rem имя пользователя на SQL сервере, которому доступны необходимые базы данных.
SET DB_User="postgres"
SET DB_PWD=*******
rem имя пользователя в 1С от базы.
SET Base_User="Admin"
SET Base_PWD=******
rem Количество дней до удаляемой (в бекап дириектории)
SET DAYSAGO=2
Здесь, надеюсь, вопросов не должно появиться. Для работы с несколькими базами создал в каждой пользователя с повышенными правами, но не показывая его в списке.
В строках SET DB_PWD=password и SET Base_PWD=password - укажите свои пароли. Естественно, для Microsoft SQL - имя пользователя sa.
Обязательно наличие на компьютере утилиты ibcmd.exe (идет в составе дистрибутива 1С - когда ставится сервер).
Bat файл для запуска - db_backup_dt.bat. Ссылку на него Вы можете разместить в планировщике задач Windows.
P.S. Оставил архивирование файла после создания dt. Если не нужно то в файле db_backup_dt.bat введите следующие изменения:
rem %PATH7Z%\7z.exe a -tzip %PGTMP%\%%i_%f_name%.zip %PGTMP%\%%i_%f_name%.dt >>%logfile%
move /y %PGTMP%\%%i_%f_name%.dt %BACKUPPATH%\%f_name%\%%i_%f_name%.dt >>%logfile%
del %PGTMP%\%%i_%f_name%.dt >>%logfile%
Впрочем, ничто не мешает Вам вносить и другие изменения.
- 2. Реализация через PowerShell скрипт:
Здесь практически тоже самое по настройкам:
#Основная дирректория исполняемых файлов 1с
$BINPATH1C="C:\Program Files\1cv8\8.3.22.2143\bin"
#Директория хранения бэкапов
$BACKUPPATH="F:\backup_1c"
#тип SQL "MSSQLServer" или "PostgreSQL"
$DBms="PostgreSQL"
#адрес или доменное имя по которому доступен SQL сервер.
$DB_server="localhost"
#Базы SQL сервера - перечисление через запятую (base1,base2,base3,base4)
$SQLBASES=@("mag_prod")
#имя пользователя на SQL сервере, которому доступны необходимые базы данных.
$DB_User="postgres"
$DB_PWD="password"
#имя пользователя в 1С от базы.
$Base_User="backup"
$Base_PWD="password"
#Количество дней до удаляемой (в бекап дирриектории)
$DAYSAGO=2
Единственное изменение в объявлении массива баз для создания резервных копий.
- Кроме того, стоит подсказать, что для запуска powershell скриптов нужно понизить уровень политики, для этого выполнить в powershell команду: set-executionpolicy remotesigned
- Для объявления задачи в планировщике задач Windows :
# Пример запуска в планировщике заданий (директория скрипта: C:\backup1c_scripts)
# Вкладка - ДЕЙСТВИЯ -> Добавляем новую запись
# в окошке действия:
# 1. Запуск программы
# 2. Программа или сценарий: powershell.exe
# 3. Добавить аргументы: -ExecutionPolicy Bypass -NonInteractive -WindowStyle Hidden -File "C:\backup1c_scripts\backup1c.ps1"
Необходимое послесловие:
Скрипты работают при ежедневном выполнении резервного копирования. Для задач, типа "по дням" - могут не удалять старую копию.
Сие поделие появилось по итогам статьи: Автономный сервер. Часть 2 - утилита управления . Автору выражаю большую благодарность.
Вступайте в нашу телеграмм-группу Инфостарт
