PostgreSQL/backupwin
Создание автоматического бэкапа для PostgreSQL
Для создания единичных дампов есть программа поставляющаяся в комплекте с PostgreSQL pg_dump
Эта инструкция поможет Вам настроить автоматический бэкап на Windows.
Скачайте по ссылке ( ftp://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/9.0/Windows/wrappers/pg_createdump.bat ) batch скрипт для создания автоматического дампа
Функции скрипта:
- создания дампа с именем соответствующим дате создания дампа (bu04052011.sql)
- удаление старого дампа
Настройте скрипт:
Откройте файл pg_createdump.bat, измените в нем параметры, относящиеся к Вашей версии PostgreSQL
REM path bin postgres
set PATHPOSTGRESBIN=%ProgramFiles(x86)%\PostgreSQL\9.0-eter1\bin
REM path backup
set PATHPOSTGRESBACKUP=C:\dump
REM name dump file
set NAMEPGDUMP=pg_dumpall.exe
REM user database
set USERDATABASE=postgres
REM number day for delete old bachup
set NUMBERDAYBACKUP=3
Где:
PATHPOSTGRESBIN -- путь к программе, которой будут делаться бэкапы (настраивается с помощью NAMEPGDUMP, по умолчанию pg_dumpall)
PATHPOSTGRESBACKUP -- путь к директории, в которую будут делаться бэкапы
NAMEPGDUMP -- программа, которой будут делаться дампы
USERDATABASE -- пользователь бд, от которого будут делаться дампы
NUMBERDAYBACKUP -- количество дней, которые будут храниться бэкапы ( бэкапы сколько дней ранее будут удаляться)
Создайте пользователя Windows, который будет заниматься бэкапами Windows, например bupostgres
Дайте этому пользователю необходимые права на программу, делающую дамп, скрипт pg_createdump.bat, и директорию с дампами
Настройте автоматический запуск pg_createdump.bat с помощью Windows Task Scheduler, от созданного пользователя.
Настройте доступ пользователя postgres ко всем имеющимся базам данных. Это можно сделать следующими способами.
- Настроить trust аудентификацию (http://www.postgresql.org/docs/9.0/static/auth-pg-hba-conf.html)
- Настроить pgpass (http://www.postgresql.org/docs/current/static/libpq-pgpass.html)
- Добавить строчку "export PGPASSWORD=mypassword" в pg_createdump.bat