↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
历史版本。 PostgreSQL 7.4 已结束支持。 请参阅 当前版本手册.

22.3. 版本间的迁移 #

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

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

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

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

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

pg_dumpall > backup
pg_ctl stop
mv /usr/local/pgsql /usr/local/pgsql.old
cd ~/postgresql-7.4.30
gmake install
initdb -D /usr/local/pgsql/data
postmaster -D /usr/local/pgsql/data
psql template1 < backup

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

注意

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

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.