备份PostgreSQL

时间:2013-06-03 10:00:05

标签: database postgresql backup pg-dump

我是PostgreSQL的新手,我正在寻找备份数据库。我知道有3种方法pg_dump,快照和复制以及使用WAL。您建议哪一个完整备份数据库?如果可能,请提供代码段。

1 个答案:

答案 0 :(得分:6)

这在很大程度上取决于您的操作要求。

这三个都需要炮轰外部程序。 libpq不直接提供这些设施;您需要通过pg_basebackup或类似方式调用pg_dumpexecv

这三者都有不同的优势。

如果文件系统支持基于原子快照的备份很有用,但如果您使用表空间则无用,因为您需要多卷原子快照 - 这是大多数系统不支持的。它们也可能是一种痛苦。

pg_dump很简单,可以生成紧凑的备份,但需要运行更多的服务器资源,不支持任何类型的时间点恢复或增量备份。

pg_basebackup + WAL归档和PITR非常有用,服务器上的资源成本相当低,但设置和管理起来比较复杂。正确的备份测试势在必行。

我强烈建议允许用户控制使用的备份方法。从pg_dump开始,因为您可以将其作为简单的命令行调用并管理单个文件。使用-Fc模式和pg_restore可以根据需要进行恢复。然后,一旦你掌握了基础知识,就可以探索配置服务器以进行WAL归档和PITR。