pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
每个数据库都应当定期备份。由于 Postgres 在文件系统中管理它自己的文件,因此不建议依靠你文件系统的系统备份来做数据库备份;不能保证恢复之后文件处于可用的、一致的状态。
Postgres 提供两个用来备份系统的实用程序:pg_dump 用于备份单个数据库,pg_dumpall 用于一步备份你的整个安装。
可以使用下面的命令备份单个数据库:
% pg_dumpdbname>dbname.pgdump
恢复时使用
catdbname.pgdump | psqldbname
这项技术可以用来把数据库移动到新位置,以及重命名现有数据库。
由 Hannu Krosing 于 1999-06-19 撰写。
由于 Postgres 允许表大于系统的最大文件大小,把表转储到一个文件可能有问题,因为得到的文件很可能大于你的系统所允许的最大尺寸。
由于 pg_dump 写到标准输出,你可以直接使用标准 *nix 工具绕过这个潜在问题:
使用压缩的转储:
% pg_dumpdbname| gzip >filename.dump.gz
重载时使用
% createdbdbname% gunzip -cfilename.dump.gz | psqldbname
或
% catfilename.dump.gz | gunzip | psqldbname
使用 split:
% pg_dumpdbname| split -b 1m -filename.dump.
重载时使用
% createdbdbname% catfilename.dump.* | pgsqldbname
当然,文件的名字(filename)和 pg_dump 输出的内容不必与数据库的名字匹配。而且,恢复后的数据库可以有任意的新名字,因此这个机制也适用于重命名数据库。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。