PostgreSQL 的版本号由主版本号与次版本号构成(如 18.6,其中 18 为主版本,6 为次版本维护版本)。
小版本(次版本)之间绝对保持内部磁盘数据存储格式的 100% 物理二进制兼容。执行小版本升级(如从 18.1 升级至 18.6)极其简单:停机替换二进制可执行文件并直接拉起新服务即可,底层数据目录保持原样、无需任何迁移转换。
对于主版本大升级(例如从 17 升级至 18),由于内部物理存储布局与系统目录可能发生重构,必须进行数据迁移。主要支持两类升级途径:
逻辑导出导入升级:使用 pg_dumpall 导出全局 SQL 逻辑全量备份,并在新版本初始化好的集群中重新执行恢复。流程最安全,但面对数 TB 级大库耗时漫长。
原地物理秒级升级(pg_upgrade):使用官方工具 pg_upgrade(结合 --link 硬链接模式)。它直接重用底层的物理数据文件,仅重建系统目录元数据,使数 TB 乃至数十 TB 的超大规模集群大版本升级能够被收敛在几分钟甚至几十秒内秒级完成。