已结束支持的版本: 6.5
历史版本。 PostgreSQL 6.5 已结束支持。 请参阅 当前版本手册.
25.4. 备份与恢复
小心
每个数据库都应当定期备份。由于 Postgres 在文件系统中管理它自己的文件,因此不建议依靠你文件系统的系统备份来做数据库备份;不能保证恢复之后文件处于可用的、一致的状态。
Postgres 提供两个用来备份系统的实用程序:pg_dump 用于备份单个数据库,pg_dumpall 用于一步备份你的整个安装。
可以使用下面的命令备份单个数据库:
% pg_dumpdbname>dbname.pgdump
恢复时使用
catdbname.pgdump | psqldbname
这项技术可以用来把数据库移动到新位置,以及重命名现有数据库。
25.4.1. 大型数据库
作者
由 Hannu Krosing 于 1999-06-19 撰写。
由于 Postgres 允许表大于系统的最大文件大小,把表转储到一个文件可能有问题,因为得到的文件很可能大于你的系统所允许的最大尺寸。
由于 pg_dump 写到标准输出,你可以直接使用标准 *nix 工具绕过这个潜在问题:
使用压缩的转储:
% pg_dump
dbname| gzip >filename.dump.gz重载时使用
% createdb
dbname% gunzip -cfilename.dump.gz | psqldbname或
% cat
filename.dump.gz | gunzip | psqldbname使用 split:
% pg_dump
dbname| split -b 1m -filename.dump.重载时使用
% createdb
dbname% catfilename.dump.* | pgsqldbname
当然,文件的名字(filename)和
pg_dump 输出的内容不必与数据库的名字匹配。而且,恢复后的数据库可以有任意的新名字,因此这个机制也适用于重命名数据库。