版本升级向导
补丁还是大版本,原地升级还是迁移?逐步规划升级;每个分支涵盖预检查、方法和升级后工作。在动生产环境之前先在这里演练。
您要进行哪种升级?
补丁/次版本升级(在同一主版本内,例如 16.2 -> 16.4,或 SQL Server CU)风险较低,通常就地进行。主版本升级(例如 15 -> 16)可能涉及数据格式变化,需要更周密的规划。
SELECT * FROM v$version;
SELECT patch_id, action, status FROM dba_registry_sqlpatch ORDER BY action_time DESC;- 次版本/补丁(同一主版本,CU)
- 主版本(主版本号变化)
- 我不清楚区别,请解释
补丁还是大版本?
补丁:大版本不变(16.2 -> 16.4);数据文件格式不变,通常替换二进制文件 + 重启即可。大版本:大版本号改变(15 -> 16);目录/格式可能改变,需要 pg_upgrade / AutoUpgrade / dump-restore,并且必须测试应用兼容性。
- 我的是补丁(相同大版本)
- 我的是大版本(大版本号改变)
备份和回退计划准备好了吗?
尽管补丁风险较低,但每次升级的黄金法则是:先做完整备份(可能的话再做快照)。出问题时需要一个可以回退的点。
- 是的,备份 + 回退已就绪
- 不,还没有
先做备份 + 回退计划
开始升级前先建立安全网。
应用补丁
同一大版本内的补丁。在集群中以滚动方式应用(从副本开始)可减少停机时间。
大版本升级方法
两条主要路径:(1) 原地升级:在现有服务器上转换(pg_upgrade、Oracle AutoUpgrade/DBUA、MySQL in-place)。速度快但难以回退。(2) 迁移升级:在新版本上搭建全新服务器,迁移数据(通过 dump/restore 或复制),然后切换。更安全,停机时间最短。
- 我想先做一次准备/兼容性检查
- 原地升级
- 迁移到新服务器(停机时间最短)
兼容性/就绪检查
升级前收集目标版本的警告:已移除(弃用)的功能、无效对象、兼容级别。
-- AutoUpgrade analyze mode: java -jar autoupgrade.jar -config cfg -mode analyze- 输出干净,继续
- 存在警告/不兼容项
先修复警告
在升级之前解决报告中的每一条警告;否则升级可能中途失败或应用可能出错。
原地大版本升级
在现有服务器上转换。速度快,但回退通常意味着从备份还原,因此快照必不可少。
迁移升级(停机时间最短)
在新版本上搭建全新服务器,迁移数据,然后通过短暂的切换完成转换。最安全的方法;旧系统保持完好。