自动postgres备份

每天在Linux上自动备份Postgres数据库的最佳方法是什么?

你可以像这样使用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

从cron运行pg_dumpall。

尝试AutoPostgreSQLBackup 。 它是一个单一的脚本文件,可以很容易地configuration您的需求,每天,每周和每月的计划,每个电子邮件日志,日志文件或标准输出等。

如果这个数据库相当小,而且对备份的要求很低,每天只需要一次,就可以从cron运行pg_dump将其转储到本地文件,然后使用任何备份文件的方式将转储归档。

pg_rman是一个新的工具,提供增量备份,适用于PostgreSQL 8.4或更新版本。

尝试astrails安全 。 它知道如何备份mysql(mysqldump),postgres(pg_dump),或只是纯文件(tar)与encryption(gnupg)并上传到S3 / Sftp。

pg_dump是一个不错的解决scheme,但是如果你正在尝试备份大量的数据,这可能会有所帮助:

http://www.postgresql.org/docs/8.1/static/backup-online.html

这实际上是一种“原始”日志logging,但作为一种增量备份方法可能是有用的。

这是一个脚本,将单独备份每个数据库以及经常遗忘但重要的PostgreSQL GLOBALS和用户login信息。

这样做的重要性是利用pg_dumpall不提供的压缩以及pg_dump忽略的遗漏数据。

这将需要一个pgpass或类似的设置,如http://wiki.postgresql.org/wiki/Pgpass所述

这是设置为OSX,但只是改变程序path,它会正常工作。

备份到/ sqlbackups脚本将返回目录大小/目录,并具有断点,如果失败,将返回非零状态。 我使用它与pgAgent结合进行日常备份。

脚本编辑,抱歉关于:(

为什么要安排日常的备份,当你可以很容易地与酒保 时间点恢复

正如其他人所说:pg_dumpall。

另外,看看日志传送。 然后,您可以获得更多可以播放的时间点备份: http : //www.postgresql.org/docs/8.3/static/runtime-config-wal.html

或者手册中关于备份的部分如何:

http://www.postgresql.org/docs/8.3/static/backup.html