↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
历史版本PostgreSQL 7.1 已于 2006 年 4 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

8.3. 版本间的迁移 #

作为一般规则,Postgres的各版本之间内部数据 存储格式可能发生变化。这不适用于不同的“补丁级别”; 它们总是具有兼容的存储格式。例如,版本 6.5.3、7.0.1 和 7.1 互不兼容, 而 7.0.2 和 7.0.1 是兼容的。在兼容的版本之间升级时,你可以 直接让新的可执行文件复用磁盘上的数据目录。否则,你需要 “备份”你的数据并把它“恢复”到新服务器上,使用 pg_dump。(有些检查可以防止你做错事,因此 混淆这些事情不会造成损害。)具体的安装过程不是本节的主题, 这些细节见安装指南。

把新服务器安装到另一个目录中,并让旧服务器和新服务器在 不同的端口上并行运行,可以实现最短的停机时间。然后你可以 用类似下面的命令:

pg_dumpall -p 5432 | psql -d template1 -p 6543

来传输你的数据,如果愿意,也可以使用中间文件。然后你可以 关闭旧服务器,并在旧服务器运行的端口上启动新服务器。你应当 确保在运行pg_dumpall之后数据库没有被更新, 否则你显然会丢失那些数据。关于如何禁止访问,见第 4 章。在实践中,切换前你可能 想先在新的配置上测试你的客户端应用。

如果无法或不想并行运行两个服务器,可以在安装新版本之前先执行 备份步骤,然后关闭旧服务器、把旧版本移开、安装新版本、启动 新服务器并恢复数据。例如:

pg_dumpall > backup
kill -INT `cat /usr/local/pgsql/postmaster.pid`
mv /usr/local/pgsql /usr/local/pgsql.old
cd /usr/src/postgresql-7.1
gmake install
initdb -D /usr/local/pgsql/data
postmaster -D /usr/local/pgsql/data
psql < backup

有关启动和停止服务器的方式及其他细节,见第 3 章。 安装说明会提示执行这些步骤的合适位置。

注意

当你“把旧安装移开”时,它就不再完全可用了。 安装的某些部分包含其他部分所在位置的信息。这通常不是大 问题,但如果你计划让两个安装并行使用一段时间,应当在 构建时就给它们分配不同的安装目录。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。