我是 PostgreSQL 的新手,我正在寻找备份数据库。我知道有 3 种方法pg_dump
,快照和复制以及使用 WAL。您建议使用哪一种来完全备份数据库?如果可能,请提供代码片段。
问问题
2038 次
1 回答
6
它更多地取决于您的操作要求,而不是其他任何东西。
这三个都需要使用外部程序。libpq
不直接提供这些设施;您需要调用pg_basebackup
or pg_dump
viaexecv
或类似方法。
这三个都有不同的优点。
如果文件系统支持,则基于原子快照的备份很有用,但如果您使用表空间,则变得无用,因为您需要多卷原子快照 - 大多数系统不支持。设置它们也可能很痛苦。
pg_dump
简单并生成紧凑的备份,但需要更多的服务器资源才能运行,并且不支持任何类型的时间点恢复或增量备份。
pg_basebackup
+ WAL 归档和 PITR 非常有用,在服务器上的资源成本相当低,但设置和管理起来更复杂。适当的备份测试是必要的。
我强烈建议允许用户控制所使用的备份方法。开始,pg_dump
因为您可以将它作为一个简单的命令行调用并管理单个文件。使用该-Fc
模式并pg_restore
在需要的地方恢复它。然后在掌握了基础知识后探索诸如配置服务器以进行 WAL 归档和 PITR 之类的事情。
于 2013-06-03T12:34:40.910 回答