DBAtlas · 数据库运维图谱

版本升级向导

补丁还是大版本,原地升级还是迁移?逐步规划升级;每个分支涵盖预检查、方法和升级后工作。在动生产环境之前先在这里演练。

您要进行哪种升级?

补丁/次版本升级(在同一主版本内,例如 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
  • 输出干净,继续
  • 存在警告/不兼容项

先修复警告

在升级之前解决报告中的每一条警告;否则升级可能中途失败或应用可能出错。

原地大版本升级

在现有服务器上转换。速度快,但回退通常意味着从备份还原,因此快照必不可少。

迁移升级(停机时间最短)

在新版本上搭建全新服务器,迁移数据,然后通过短暂的切换完成转换。最安全的方法;旧系统保持完好。

在 DBAtlas 中打开 →