PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

18.6. 集群大版本升级 #

18.6.1. 通过 pg_dumpall 升级
18.6.2. 通过 pg_upgrade 就地升级
18.6.3. 通过逻辑复制平滑升级

PostgreSQL 的版本号由主版本号与次版本号构成(如 18.6,其中 18 为主版本,6 为次版本维护版本)。

小版本(次版本)之间绝对保持内部磁盘数据存储格式的 100% 物理二进制兼容。执行小版本升级(如从 18.1 升级至 18.6)极其简单:停机替换二进制可执行文件并直接拉起新服务即可,底层数据目录保持原样、无需任何迁移转换。

对于主版本大升级(例如从 17 升级至 18),由于内部物理存储布局与系统目录可能发生重构,必须进行数据迁移。主要支持两类升级途径:

18.6.1. 通过 pg_dumpall 升级 #

在跨大版本升级时,最传统可靠的方式是使用新版本的 pg_dumpall 导出旧实例的全部数据与用户权限定义,随后导入至全新的空集群中。

18.6.2. 通过 pg_upgrade 就地升级 #

使用官方工具 pg_upgrade 可以实现秒级跨大版本物理升级。结合硬链接模式(--link),升级过程无需复制物理数据文件,仅需几分钟即可完成 TB 级集群的平滑就地升级。

18.6.3. 通过逻辑复制平滑升级 #

利用内置的逻辑复制功能,可以在旧版本与新版本集群之间建立实时数据同步管道,并在割接窗口瞬间完成客户端流量切换,实现停机时间趋近于零的无感升级。