pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
作为一般规则,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 章。 安装说明会提示执行这些步骤的合适位置。
当你“把旧安装移开”时,它就不再完全可用了。 安装的某些部分包含其他部分所在位置的信息。这通常不是大 问题,但如果你计划让两个安装并行使用一段时间,应当在 构建时就给它们分配不同的安装目录。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。