postgresql-logo

Для создание резервной копии БД PostgreSQL необходим .bat файл.

 

Скачать

ОПИСАНИЕ:

6 строка - путь в дерикторию файла "pgdump.exe"

7 строка - имя целевой базы данных (basename)

8 строка - сетевое расположение сервера баз данных

9 строка - используемый порт для баз данных

10 строка - имя root пользователя PostgreSQL (postgres)

11 строка - пароль root пользователя (Pa$$word)

19 строка - место хранения резервной копии (\\192.168.0.242\backup\buhgalteria\%DUMPFILE%) (желательно расшарить папку на другом ПК и хранить резервные копии баз отдельно от сервера баз данных)

20 строка - место хранения лога процесса резервного копирования (\\192.168.0.242\backup\logs\%LOGFILE%)

35 строка - название лога процесса резервного копирования (log_basename.log) После настройки .bat файла, создайте в планировщике заданий новое задание с запуском нашего файла.

REM ПРИМЕР СОЗДАНИЯ РЕЗЕРВНОЙ КОПИИ БАЗЫ ДАННЫХ POSTGRESQL
CLS
ECHO OFF
CHCP 1251
REM Установка переменных окружения
SET PGBIN=C:\Program Files (x86)\PostgreSQL\9.3.4-1.1C\bin
SET PGDATABASE=crm3
SET PGHOST=localhost
SET PGPORT=5432
SET PGUSER=postgres
SET PGPASSWORD=RSqw12Ma100
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% %DATETIME%.backup
SET LOGFILE=%PGDATABASE% %DATETIME%.log
SET DUMPPATH="m:\kino-market%DUMPFILE%"
SET LOGPATH="m:\logs\kino-market%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
pause

 

P.S. Для удаления бекапов старше определенного количества дней допишите в код строку(впишите путь и вместо "14" количество необходимых дней):

forfiles -p "путь к папке с бекапами" -s -m *.* -d -14 -c "cmd /c del /F /q @path"

 

Gravatar
Алексей
можно ли сделать батник для файловых баз 1с опубликованных через IIS или апач?
Gravatar
Artur
Можно! Без разницы как они опубликованы. Файловая база - это каталог с базой, достаточно написать батник копирования папки и поставить в планировщик заданий.

К примеру код батника:
"C:\Program Files\7-Zip\7z.exe" u -ssw -mx0 -mmt2 -ms=off -r Z:\backup\base_ ?te%_?y%%month%%year%.7z @"c:\Archiv\listb ackup.txt" >> Z:\logs\base_?te%.log

Батник архивирует в 7zip и сохраняет архив на диске Z: с указанием даты, месяца и года

Gravatar
Олег
Подобный батник нужно делать на каждую базу или есть способ сделать группой бэкап? баз порядка 40шт.
Gravatar
Роман
А восстановление этих бэкапов каким образом делать ?
Gravatar
Артур
Через консоль PgAdmin, пкм по базе --> восстановить --> выбрать файл бекапа
Gravatar
Антон
Лучше работает, чем программы. Настроил выгрузку на яндекс диск...

1000 Осталось символов


Телефон:+7 (926) 322-21-35;
+7 (499) 404-64-98
e-mailartur@buben.it