Для создания автоматом резервных копии БД PostgreSQL необходим .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
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 файла, создайте в планировщике заданий новое задание с запуском нашего файла.
P.S. Для удаления бекапов старше определенного количества дней допишите в код строку(впишите путь и вместо «14» количество необходимых дней):
1 forfiles -p "путь к папке с бекапами" -s -m . -d -14 -c "cmd /c del /F /q @path"