Answers:
您可以这样使用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
。
尝试使用AutoPostgreSQLBackup。它是一个脚本文件,可以轻松配置以满足您的需要,每天,每周和每月进行调度,每封电子邮件的日志,日志文件或标准输出等。
如果它是一个相当小的数据库,并且每天备份一次,对备份的要求很低,则只需从cron运行pg_dump以转储到本地文件,然后使用所需的一切来备份计算机上的文件以将转储存档。
pg_rman是一个新工具,提供了增量备份,适用于PostgreSQL 8.4或更高版本。
尝试使用Astrails-safe。它知道如何使用加密(gnupg)备份mysql(mysqldump),postgres(pg_dump)或仅普通文件(tar)并上传到S3 / Sftp。
pg_dump是一个很好的解决方案,但是如果您尝试备份大量数据,也许这会有所帮助:
http://www.postgresql.org/docs/8.1/static/backup-online.html
这实际上是一种“原始”日志记录,但可用作增量备份方法...
这是一个脚本,它将分别备份每个数据库以及经常忘记但重要的PostgreSQL GLOBALS和用户登录信息。
这样做的重要性是利用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
或手册中有关备份的部分如何: