有谁知道备份postgres数据库的好方法?

Sta*_*kis 7 linux postgresql backup

我有一个脚本,将为mysql生成每日旋转备份,但我找不到任何类似的postgres.我还发现它具有在线备份功能,因为这是一个生产站点,所以它应该派上用场.

有谁知道一个程序/脚本会帮助我,甚至一种方法来做到这一点?

谢谢.

Ada*_*kin 18

一种方法是使用 pg_dump生成平面sql转储,你可以gzip或其他什么.这当然是最简单的选择,因为结果可以通过管道psql重新加载来重新加载数据库,并且因为它也可以作为纯文本导出,所以如有必要,您可以在恢复之前查看或编辑数据.

下一个方法是暂时关闭数据库(或者如果你的文件系统支持理论上可能有效的原子快照)并备份你的PostgreSQL data目录.

来自PostgreSQL站点的这个页面还解释了如何进行在线备份和时间点恢复,这绝对是最难配置的,但也是最佳方法.我们的想法是通过运行一些特殊的SQL(pg_start_backuppg_stop_backup)并创建数据库目录的(文件系统级)副本来执行基本备份(您可以每天,几天或一周执行).在此期间数据库不会脱机,一切仍然正常.从那时起,数据库会生成任何更改的预写日志(WAL),然后可以将其(由数据库自动)推送到您想要的任何位置.要恢复,您需要进行基本备份,将其加载到另一个数据库实例中,然后重放所有WAL文件.这样,您也可以通过不重播所有日志来进行时间点恢复.