Ответы:
Вы можете использовать pg_dump
как это:
$ pg_dump -h db_host -U user_name db_name > dump_file.sql
Пожалуйста, подумайте сначала, чтобы установить .pgpass
файл, который содержит пароли, которые будут использоваться, если соединение требует пароль. Этот файл должен иметь строки следующего формата:
hostname:port:database:username:password
И каждое из первых четырех полей может быть буквальным значением или *, которое соответствует чему угодно. Например: *:*:*:postgres:pg_password
.
Этот .pgpass
файл должен находиться в домашнем каталоге ~ /, а разрешения на него должны запрещать любой доступ к миру или группе; добиться этого по команде
chmod 0600 ~/.pgpass
.
Запустите pg_dumpall из cron.
Попробуйте AutoPostgreSQLBackup . Это отдельный файл сценария, который можно легко настроить в соответствии с вашими потребностями, выполнять ежедневное, еженедельное и ежемесячное планирование, журналы по электронной почте, файл журнала или стандартный вывод и т. Д.
Если это достаточно небольшая база данных и такие низкие требования к резервному копированию, как раз в день, просто запустите pg_dump из cron, чтобы создать дамп в локальный файл, а затем используйте все, что вам нужно, для резервного копирования файлов на машине, чтобы архивировать дамп. ,
pg_rman - это новый инструмент, предлагающий инкрементные резервные копии, который работает для PostgreSQL 8.4 или новее.
Попробуйте astrails-safe . Он знает, как сделать резервную копию mysql (mysqldump), postgres (pg_dump) или просто простых файлов (tar) с шифрованием (gnupg) и загрузить их в S3 / Sftp.
pg_dump - хорошее решение, но если вы пытаетесь сделать резервную копию большого количества данных, возможно, это может помочь:
http://www.postgresql.org/docs/8.1/static/backup-online.html
который на самом деле является своего рода «необработанным» журналированием, но это может быть полезно в качестве метода инкрементного резервного копирования ...
Это скрипт, который будет резервировать каждую базу данных в отдельности, а также часто забываемые, но важные GLOBALS PostgreSQL и информацию для входа пользователя.
Важность этого состоит в том, чтобы воспользоваться преимуществами сжатия, которое pg_dumpall не предоставляет, и забытых данных, которые pg_dump игнорирует.
Для этого потребуется настройка pgpass или аналогичная, как описано здесь http://wiki.postgresql.org/wiki/Pgpass
Это настройка для OSX, но просто измените пути программы, и она будет работать нормально.
Резервное копирование в / sqlbackups Сценарий вернет размер каталога / каталог и имеет точки останова, которые в случае сбоя вернут ненулевой статус. Я использовал его в сочетании с pgAgent для ежедневного резервного копирования.
Сценарий отредактирован, извините за это :(
Зачем соглашаться на ежедневное резервное копирование, если вы можете легко восстановить данные на определенный момент времени с барменом ?
Как уже говорили другие: pg_dumpall.
Также обратите внимание на доставку журналов. Затем вы можете получить больше резервных копий на определенный момент времени, которые вы можете воспроизвести: http://www.postgresql.org/docs/8.3/static/runtime-config-wal.html
Или как насчет раздела о резервных копиях в руководстве: