Создание резервной копии баз данных Postgres (Windows)

REM /////////////////////////////////////////////////////////////////////////////////
REM РЕЗЕРВИРВОВАНИЕ
REM ПРИМЕР СОЗДАНИЯ РЕЗЕРВНОЙ КОПИИ БАЗЫ ДАННЫХ 1C НА POSTGRESQL
CLS
ECHO OFF
CHCP 866

REM УКАЗАНИЕ ПЕРЕМЕННЫХ СРЕДЫ POSTGRESQL
SET PGBIN=C:\Program Files\PostgresPro\12\bin\
SET PGDATABASE=KAMIN
SET PGHOST=localhost
SET PGPORT=5432
SET PGUSER=postgres
SET PGPASSWORD=**********

REM ПЕРЕХОД В КАТАЛОГ С bat-ФАЙЛОМ (ОТКУДА ЗАПУЩЕН ФАЙЛ)
%~d0
CD %~dp0

REM ФОРМИРОВАНИЕ ИМЕНИ ФАЙЛА ДЛЯ РЕЗЕРВНОЙ КОПИИ И LOG ФАЙЛА ОТЧЕТА
@echo off
set h=%TIME:~0,2%
set m=%TIME:~3,2%
set s=%TIME:~6,2%
set dd=%DATE:~0,2%
set mm=%DATE:~3,2%
set yyyy=%DATE:~6,4%
SET DUMPFILE=Z:\KAMIN\%yyyy%.%mm%.%dd%%h%.%m%.%s%_KAMIN.butts SET LOGFILE=Z:\KAMIN\log\%yyyy%.%mm%.%dd%%h%.%m%.%s%_KAMIN.log
SET DUMPPATH=”%DUMPFILE%”
SET LOGPATH=”%LOGFILE%”

REM ВЫПОЛНЕНИЕ КОМАНДЫ (ПРОГРАММЫ) ДЛЯ СОЗДАНИЕ РЕЗЕРВНОЙ КОПИИ БАЗЫ
CALL “%PGBIN%\pg_dump.exe” –format=custom –verbose –file=%DUMPPATH% 2>%LOGPATH%

REM ВЫПОЛНЕНИЕ КОМАНДЫ (ПРОГРАММЫ) ЗАВЕРШЕНО, ЕСЛИ ОШИБОК НЕТ ТО КОНЕЦ
IF NOT %ERRORLEVEL%==0 GOTO Error
GOTO Successfull
REM ПРИ ВОЗНИКНОВЕНИИ ОШИБОК УДАЛЯЕТСЯ ПОВРЕЖДЕННЫЙ ФАЙЛ КОПИИ И СООТВЕТСТВУЮЩАЯ ЗАПИСЬ В ЖУРНАЛЕ О ЕЕ СОЗДАНИИ
:Error
DEL %DUMPPATH%
MSG * “Ошибка при создании резервной копии базы данных. Смотрите backup_KAMIN.log.”
ECHO %DATETIME% Ошибки при создании резервной копии базы данных %DUMPFILE%. Смотрите отчет %LOGFILE%. >> backup_KAMIN.log
GOTO End

REM ЕСЛИ КОПИЯ СДЕЛАНА БЕЗ ОШИБОК ДЕЛАЕТСЯ ЗАПИСЬ В ЖУРНАЛЕ РЕГИСТРАЦИИ
:Successfull
ECHO %DATETIME% Успешное создание резервной копии %DUMPFILE% >> backup_KAMIN.log
GOTO End
:End

REM УСТАНАВЛИВАЕТСЯ ПАРАМЕТРЫ ДЛЯ КОПИИ ХРАНИТЬ 60 ДНЕЙ ОТ ДАТЫ СОЗДАНИЯ, УДАЛЯТЬ ПО ИСТЕЧЕНИЮ
FORFILES /p “Z:\KAMIN” /s /m . /d –60 /c “CMD /c del /Q @FILE”


CMD или BAT скрипт создаёт резервную копию с именем файла 2020.11.04_14.13.02_KAMIN.butts

C:\Program Files\PostgresPro\12 – путь до программы и версии postgres

KAMIN – какую из баз данных резервируем

********** – указываем пароль от базы данных postgres

Z:\KAMIN\ – куда копируем резервную копию

KAMIN.butts – окончание имени копии базы

Z:\KAMIN\log\ – директория лог файла

KAMIN.log – имя лог файла