Резервное копирование базы данных в АРМ ЛПУ/АРМ ЭРС

Вернуться в основную статью

Для резервного копирования БД необходимо в c:\PostgreSQL создать bat-файл со следующим содержимым:

REM СОЗДАНИЕ РЕЗЕРВНОЙ КОПИИ БАЗЫ ДАННЫХ POSTGRESQL
CLS
ECHO OFF
CHCP 1251
REM Установка переменных окружения
SET PGBIN=c:\PostgreSQL\bin
SET PGDATABASE=fss
SET PGHOST=localhost
SET PGPORT=5433
SET PGUSER=postgres
SET PGPASSWORD=Manager1
REM Смена диска и переход в папку из которой запущен bat-файл
%~d0
CD %~dp0
REM Формирование имени файла резервной копии и файла-отчета
SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%
SET DUMPFILE=%PGDATABASE%.backup
SET LOGFILE=%PGDATABASE%.log
SET DUMPPATH="C:\backup_db_fss\%DUMPFILE%"
SET LOGPATH="C:\backup_db_fss\%LOGFILE%"
REM Создание резервной копии
IF NOT EXIST Backup MD Backup
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.log."
ECHO %DATETIME% Ошибки при создании резервной копии базы данных %DUMPFILE%. Смотрите отчет %LOGFILE%. >> backup.log
GOTO End
REM В случае удачного резервного копирования просто делается запись в журнал
:Successfull
ECHO %DATETIME% Успешное создание резервной копии %DUMPFILE% >> backup.log
GOTO End
:End

в строках:

SET DUMPPATH="C:\backup_db_fss\%DUMPFILE%"

SET LOGPATH="C:\backup_db_fss\%LOGFILE%"

необходимо выставить свой путь для сохранения бэкапа БД и логов (переменные %DUMPFILE% и %LOGFILE% не трогать)

В строке:

SET PGBIN=c:\PostgreSQL\bin

необходимо указать путь к папке bin вашей СУБД Postgresql

После этого необходимо добавить данный bat-файл в планировщик заданий для выполнения задачи резервного копирования по расписанию.


Всем, кому понравился или помог этот проект - Вы можете помочь ему развиваться материально:

Поддержать проект