pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
另一种备份策略是直接复制Postgres用来存储 数据库中数据的文件。这些文件的位置在第 3.2 节 中有说明,但如果你对这个方法感兴趣,可能早就已经找到它们了。 你可以使用自己喜欢的任何常规文件系统备份方法,例如:
tar -cf backup.tar /usr/local/pgsql/data
然而,有两个限制使这种方法不实用,或者至少不如pg_dump 方法:
为了得到可用的备份,数据库服务器必须被 关闭。诸如禁止所有连接之类的折中办法是行不通的,因为总会有 一些缓冲在进行。因此,也不建议信任那些声称支持“一致 快照”的文件系统。关于停止服务器的信息可以在 第 3.6 节中找到。
不用说,恢复数据之前你也需要关闭服务器。
如果你深入研究过文件系统布局的细节,你可能会想尝试 只从各自的文件或目录中备份或恢复某些单独的表或数据库。 这行不通,因为这些文件中包含的信息 只是真相的一半。另一半在文件 pg_log中,其中包含所有事务的提交状态。一个表文件只有配合这些信息 才可用。当然,只恢复一个表及相关的pg_log 文件也是不可能的,因为那将使数据库集群中的所有其他表都 变得不可用。
另外注意,文件系统备份不一定比 SQL 转储小。相反,它很可能会更大。 (例如,pg_dump不需要转储索引(indices)的 内容,只需要转储重建它们的命令。)
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。