30 推陈出新:版本升级与回滚策略
第 30 章 推陈出新:版本升级与回滚策略
第 29 章已经把逻辑复制、全量校验、切流和回退组织成迁移状态机。版本升级是在这条主线 上再增加五个同时变化的维度:
PostgreSQL server
+ data/catalog format
+ SQL behavior and defaults
+ extensions and native libraries
+ clients, pools, backups, exporters and automation因此,升级不是“换个 RPM/DEB 再重启”,也不是 pg_upgrade 返回成功就结束。它是一项
有兼容性清单、隔离彩排、业务基线、发布门、写入分界和退出窗口的迁移项目。
学习完成标准
完成本章后,读者应能:
- 区分 minor、安全修复和 major upgrade,并从 release notes 提取行为变化;
- 在
pg_upgrade、逻辑复制和 dump/restore 之间按停机、空间、回退与重建目标选型; - 盘点扩展的包、动态库、SQL 对象、preload 和 update path;
- 发现 collation version 漂移,并坚持先重建依赖对象、再刷新版本;
- 用 catalog、checksum、
amcheck、恢复证据、查询结果和业务不变量建立升级基线; - 在隔离环境复现完整升级,并把软件准备时间与业务不可写时间分开;
- 在目标第一笔独占写入前证明回退,在其后切换为对账或前滚策略;
- 输出含停止线、观察窗口、owner 与证据包的生产升级 runbook。
一张图看懂升级决策
识别变化
-> inventory 数据 / 配置 / 扩展 / 客户端 / collation
-> 选择 pg_upgrade / logical / dump-restore
-> 克隆与彩排
-> compatibility gate
-> stop old writer
-> upgrade and rebuild
-> application-visible validation
-> rollback proof before target writes
-> release and observe任一门禁失败,都回到前一个可解释状态;不能用“先上线再看看”跨过 checksum、 collation、扩展或业务结果不一致。
本章目录
30.1 先识别变化类型
30.2 三类大版本升级路径
30.3 扩展与依赖升级
30.4 locale、collation 与索引风险
30.5 升级前检查与业务验证
- 30.5.1 系统目录、无效对象与长事务
- 30.5.2
amcheck、checksum 状态与备份恢复证据 - 30.5.3 查询结果、计划、性能和业务不变量基线
- 30.5.4
amcheck与 checksum 检测对象不同
30.6 用隔离环境完成升级彩排
30.7 实战:前滚、回退与发布决策
写作与验收提示
本章提供一个真实、隔离的 PostgreSQL 17.10→18.4 参考实验。它在 Pigsty
pg-meta 主机的随机 /tmp 目录中创建两套 Unix-socket-only 临时集群,不接触
Pigsty 管理的数据目录与服务。正式证据证明:
fixture rows before / after 10,000 / 10,000
ordered digest equal true
stale ICU collation gate blocked
REINDEX then REFRESH VERSION passed
checksum-incompatible target rejected
pg_upgrade method copy
amcheck and staged ANALYZE passed
old PG17 restart before new write passed
forward canary order_id 10001
remote and fixture cleanup verified验证器拒绝了 30 个声明反例和 20 个现场证据变异。公开摘要位于
upgrade-run.json,完整实验合同位于
lab-contract.md。
这次小型沙箱成功不预测生产停机时长,也不证明第三方扩展、驱动、备份体系或真实应用
已经兼容。production_ch30_gate 始终保持 pending;生产授权必须来自真实数据克隆、
业务彩排、备份恢复与变更审批。
参考资料
- PostgreSQL 18:升级 PostgreSQL 集群
- PostgreSQL 18:
pg_upgrade - PostgreSQL 18:逻辑复制集群升级
- PostgreSQL 18:
ALTER COLLATION - PostgreSQL 18:
pg_verifybackup - PostgreSQL 18:版本 18 发行说明
- Pigsty v4.4:PostgreSQL 大、小版本升级
- Pigsty v4.4:数据迁移
上一章:移花接木:逻辑复制、迁移与异构同步 · 返回下卷导读 · 下一章:事件分级、现场保护与应急决策——枕戈待旦 · 查看全书目录 · 查看索引中心
最后更新于