温馨提示×

怎样在centos上升级oracle版本

小樊
37
2025-12-17 11:41:06
栏目: 云计算

在 CentOS 上升级 Oracle 版本的可执行方案


一、升级路径与总体策略

  • 明确目标版本与路径:先确认当前数据库版本与目标版本,再选择官方支持的升级路径(如跨大版本升级、同版本补丁集/Release Update 升级)。优先选择Out-of-place(异址)升级:在新目录安装新 Oracle Home,保留旧环境以便快速回退。升级前务必完成兼容性/认证检查升级方法选择完整备份
  • 小版本/补丁集升级:若只是从 19.3 → 19.9 → 19.14 这类 PSU/RU 升级,流程通常为:升级 OPatch → 冲突检查 → 停库/停监听 → 应用补丁 → 启动到升级模式执行 SQL → 编译无效对象 → 验证。
  • 大版本升级:如 11g/12c → 19c,建议使用 AutoUpgradeDBUA 完成,并在升级前完成统计信息收集、回收站清理、分布式事务处理等预检。

二、升级前准备清单(强烈建议逐项完成)

  • 认证与规划:在 My Oracle Support 使用“Certifications”页确认操作系统、数据库版本与第三方应用的兼容性;阅读新版本的行为变更/弃用/不推荐特性;制定回退方案测试计划
  • 备份与恢复:实施可恢复的全量备份(含数据库与必要的配置文件),确保可降级/恢复;必要时保留旧 Oracle Home 与参数文件。
  • 新 Oracle Home 准备:在新目录安装目标版本的最新软件,并先行应用最新 RU/MRP/关键 one-off 补丁,再执行升级。
  • 数据库预检:执行 AutoUpgrade analyze 生成待办清单;收集优化器统计信息;确认物化视图刷新已完成无文件处于备份模式无文件需要介质恢复无未完成分布式事务回收站已清空;如有 Data Guard,先同步备库;如使用 TDE,按指引拷贝 sqlnet.ora 与钱包;检查 listener.ora/tnsnames.ora 等网络配置。

三、标准升级步骤(适用于 19c 及相近版本,可按需裁剪)

  1. 环境校验与预检
    • 查看当前版本:sqlplus / as sysdbaSELECT * FROM v$version;
    • 运行 AutoUpgrade:java -jar autoupgrade.jar -config <config_file> -mode analyze,按输出修复问题。
  2. 升级 OPatch(示例为 19c)
    • 备份旧 OPatch:mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch.bak
    • 解压新 OPatch:unzip p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
    • 验证:$ORACLE_HOME/OPatch/opatch version(19c 常见要求为 12.2.0.1.34+)。
  3. 冲突检查与补丁应用
    • 冲突检查:$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <patch_dir>
    • 停库与监听:sqlplus / as sysdbaSHUTDOWN IMMEDIATE;lsnrctl stop
    • 应用补丁(GI/DB 分别在各 Home 执行):$ORACLE_HOME/OPatch/opatch apply
  4. 升级数据库(两条常用路径,二选一或组合)
    • AutoUpgrade(推荐):java -jar autoupgrade.jar -config <config_file> -mode deploy
    • DBUA:图形或静默方式启动升级向导,按提示完成升级。
  5. 升级后处理
    • 编译无效对象:@?/rdbms/admin/utlrp.sql
    • 查询组件状态:SELECT comp_name, version, status FROM dba_registry;
    • 验证版本:SELECT * FROM v$version;
  6. 回退与应急
    • 若使用 Out-of-place 升级,直接切回旧 Oracle Home 并启动实例;如升级失败,利用备份执行时间点恢复/不完全恢复

四、常见场景与注意事项

  • 仅做小版本/补丁升级(如 19.3 → 19.18):重点在于OPatch 版本满足 README 要求冲突检查停库/监听补丁应用SQL 加载/无效对象编译;升级后核对 opatch lsinventoryv$version
  • 大版本升级(如 11g/12c → 19c):优先选择 AutoUpgrade/DBUA;严格完成统计信息收集、回收站清理、分布式事务处理、备份等预检;升级后复核弃用/不推荐特性行为变更
  • 旧版本 10g 升级到 10.2.0.4(历史场景):先冷备,在现有 ORACLE_HOME 上运行 10.2.0.4 patchset runInstaller,然后 startup upgrade → 执行 @rdbms/admin/catupgrd.sqlshutdown immediatestartup → 执行 @rdbms/admin/utlrp.sql;如遇安装器系统版本校验问题,可在测试环境使用 -ignoreSysPrereqs(生产慎用)。

五、升级后验证与回退要点

  • 功能与版本验证:
    • SELECT * FROM v$version;
    • SELECT comp_name, version, status FROM dba_registry;
    • 关键业务回归与性能回归测试(按测试计划执行)。
  • 监听与连接:
    • lsnrctl status 确认服务注册正常;tnsping/应用连接测试。
  • 日志检查:
    • 升级日志(AutoUpgrade/DBUA)、alert_<SID>.loginstall*.logopatch 日志。
  • 回退策略:
    • Out-of-place:切回旧 ORACLE_HOME 启动实例;
    • 备份恢复:使用升级前备份执行恢复
    • 补丁回退:使用 OPatch 的回退命令(如 opatch rollback -id <patch_id>),按 README 执行。

重要提示

  • 生产环境操作务必在维护窗口进行,并提前在测试环境演练全流程。
  • 涉及具体补丁编号、OPatch 版本与 one-off 补丁,请以 My Oracle Support 对应文档与 README 为准;任何操作前请完整备份并确认回退路径

0