CentOS 上升级 Oracle 版本的可执行方案
一 升级路径与总体原则
- 明确目标版本与路径:例如从 11.2.0.4 → 12.2/19c/21c,或 19.3 → 19.14/19.21 等。跨大版本建议采用 新目录 Out-of-Place 安装 + 升级;同版本内的 19.x → 19.y 优先用 OPatch 补丁集 滚动升级。
- 选择升级方式:
- 图形化:Database Upgrade Assistant(DBUA);
- 自动化:AutoUpgrade(autoupgrade.jar);
- 手工脚本:如 catctl.pl/catupgrd.sql(更灵活,要求经验)。
- 核心原则:新软件装在新 ORACLE_HOME,保持旧库与旧 ORACLE_HOME 完整可用,便于回退与恢复。
- 前置要求:升级前将新 ORACLE_HOME 更新到该版本的最新 Release Update(RU);如启用 TDE,需准备密钥;确保 监听在新 ORACLE_HOME 中运行;如用到 Oracle Database Vault,可能需要临时禁用。
二 标准升级流程(适用于 12c/19c/21c 跨版本)
- 规划与评估
- 研读新版本特性与变更,确定升级路径与方法;制定回退与备份策略;在测试环境演练。
- 备份与停库
- 全量备份数据库与控制文件、参数文件、监听配置、ORACLE_HOME 与 ORACLE_BASE 关键目录;确保可恢复到升级前状态。
- 安装新版本软件(Out-of-Place)
- 仅安装软件到新 ORACLE_HOME,暂不覆盖旧库;完成后将新 ORACLE_HOME 更新到最新 RU。
- 预升级检查与准备
- 使用 **AutoUpgrade(analyze 模式)**生成待办清单与修复建议;必要时运行 Pre-Upgrade Information Tool(preupgrade.jar);检查 TDE/密码文件/监听/Profile 脚本等前置项。
- 执行升级
- 方式一:DBUA 图形化向导;方式二:**AutoUpgrade(deploy 模式)**一键升级;方式三:手工执行升级脚本(如 catctl.pl/catupgrd.sql)。
- 升级后收尾
- 执行必要的 utlrp.sql 重编译无效对象;检查 alert.log 与升级日志;按需调整 listener.ora/tnsnames.ora 指向新 ORACLE_HOME;验证应用连接与关键业务。
- 回退与应急
- 若出现问题,按既定策略恢复备份或切换到旧 ORACLE_HOME 启动,确保业务连续性。
三 同版本补丁升级示例 19.3 → 19.14(OPatch 滚动升级)
- 准备与检查
- 升级前将 19c 新 ORACLE_HOME 更新到最新 RU;检查磁盘空间与系统资源;确认 OPatch 版本满足补丁要求(如升级到 19.9 需 OPatch ≥ 12.2.0.1.19)。
- 获取并校验补丁
- 从 My Oracle Support 下载目标 **RU(如 19.14)**与最新 OPatch(p6880880);在 ORACLE_HOME 备份原 OPatch;解压覆盖更新 OPatch。
- 冲突与清单检查
- 使用 opatch lsinventory -detail -oh $ORACLE_HOME 记录当前补丁状态;对目标补丁执行 opatch prereq/冲突检查。
- 停库与打补丁
- 以 oracle 用户:
sqlplus / as sysdba → SHUTDOWN IMMEDIATE;lsnrctl stop;在 $ORACLE_HOME 下执行补丁脚本(通常 ./runInstaller 或 opatch apply),按提示完成。
- 启动与收尾
lsnrctl start;sqlplus / as sysdba 启动实例;执行升级后 SQL(如 catctl.pl/catupgrd.sql 或随补丁提供的 SQL 脚本);运行 utlrp.sql 重编译;核查 alert.log 与 OPatch lsinventory 输出,确认补丁与应用生效。
四 常见注意事项与排错要点
- 备份与回退:升级前必须完成可恢复的备份,并保留旧 ORACLE_HOME 与旧库,明确回退步骤与触发条件。
- 监听与连接:升级期间确保 监听在新 ORACLE_HOME 运行;升级后核对 listener.ora/tnsnames.ora 与服务注册。
- 安全与认证:如启用 TDE,通过 AutoUpgrade –load_password 或外部密码存储提供密钥;检查是否存在大小写不敏感密码版本的账户并规划处理。
- 组件与特性:使用 Database Vault 的环境可能需要临时禁用;升级后按需启用并复核策略。
- 日志与验证:全程关注 alert.log、install.log、AutoUpgrade 日志;升级后用
SELECT * FROM v$version; 与业务回归测试核验结果。