暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle 11.2.0.4 升级 oracle 23c

原创 张超 2026-03-30
82

Oracle 11.2.0.4 不能直接升级到 23c,需分两步走:先升至 19c(中间版),再升至 23c;且 23c 仅支持多租户(CDB/PDB)架构,非 CDB 需同步转换。以下为核心路径与实操步骤。




⚠️ 核心约束与路径


表格

项目要求
直接升级不支持,仅 19.3+/21.3+ 可直升 23c
必走路径11.2.0.4 → 19c → 23c
23c 架构仅 CDB/PDB,非 CDB 须转 PDB
兼容参数23c 最低 COMPATIBLE=12.2.0,默认 23.0.0Oracle
推荐工具AutoUpgrade(官方首选,支持断点续跑与回退)




🛠️ 完整升级方案(两步走)


第一步:11.2.0.4 → 19c(中间升级)


  1. 环境准备

    • 安装 19c 新 ORACLE_HOME,务必应用最新 RU(如 19.21)Oracle。
    • 配置资源:内存≥32GB、磁盘≥200GB、临时表空间≥20GB。
    • 关闭应用与监听,确保无业务连接。
  2. 预检查与修复

    • 运行 19c preupgrade.jar

      bash

      运行

      java -jar $ORACLE_HOME_19/rdbms/admin/preupgrade.jar file /tmp/preupgrade_11to19
      



    • 按报告修复:统计信息收集、无效对象编译、参数调整(如 COMPATIBLE=12.2.0)、废弃组件清理。
    • 备份全库(RMAN),创建保证还原点。
  3. 升级执行(AutoUpgrade)

    • 编写配置文件 config_11to19.properties

      properties

      global.autoupg_log_dir=/u01/app/oracle/autoupg/logs
      upg1.sid=ORCL11
      upg1.source_home=/u01/app/oracle/product/11.2.0.4
      upg1.target_home=/u01/app/oracle/product/19.0.0
      upg1.upgrade_type=SID
      



    • 分析模式(预检查):

      bash

      运行

      java -jar autoupgrade.jar -config config_11to19.properties -mode analyze
      



    • 升级模式(执行):

      bash

      运行

      java -jar autoupgrade.jar -config config_11to19.properties -mode deploy
      



    • 验证:sqlplus / as sysdbaSELECT banner FROM v$version; 确认 19c 正常,检查组件状态 $ORACLE_HOME_19/rdbms/admin/utlrp.sql 编译无效对象。


第二步:19c → 23c(最终升级)


  1. 环境准备

    • 安装 23c 新 ORACLE_HOME,应用最新 RUOracle。
    • 19c 数据库需为 CDB 架构(若为非 CDB,AutoUpgrade 可自动转 PDB)。
  2. 预检查与修复

    • 运行 23c preupgrade.jar,重点检查:
      • 字符集(建议 CDB 为 AL32UTF8)
      • 兼容参数 COMPATIBLE=23.0.0
      • 废弃特性(如传统审计、部分隐含参数)Oracle
    • 收集全库统计信息,备份全库。
  3. 升级执行(AutoUpgrade)

    • 编写配置文件 config_19to23.properties

      properties

      global.autoupg_log_dir=/u01/app/oracle/autoupg/logs_23
      upg1.cdb_name=CDB19
      upg1.source_home=/u01/app/oracle/product/19.0.0
      upg1.target_home=/u01/app/oracle/product/23.0.0
      upg1.target_cdb=CDB23
      upg1.noncdb_to_pdb=true  # 若 19c 为非 CDB,自动转 PDB
      



    • 分析模式:

      bash

      运行

      java -jar autoupgrade.jar -config config_19to23.properties -mode analyze
      



    • 升级模式:

      bash

      运行

      java -jar autoupgrade.jar -config config_19to23.properties -mode deploy
      



    • 验证:
      • 查看 CDB/PDB 状态:show con_name; SELECT name, open_mode FROM v$pdbs;
      • 运行 post-upgrade 检查:@$ORACLE_HOME_23/rdbms/admin/utlrp.sql
      • 检查组件版本:SELECT comp_name, version FROM dba_registry;Oracle




🚀 替代方案(数据迁移)


若跨平台或需更灵活,可采用 全传输导出导入(Full Transportable Export/Import),适合 11.2.0.4 迁 23c:


  1. 11.2.0.4 端(源)

    • 创建目录:CREATE DIRECTORY dp_dir AS '/u01/dump';
    • 全传输导出(需指定 VERSION=12):

      bash

      运行

      expdp \'/ as sysdba\' DIRECTORY=dp_dir DUMPFILE=full_11to23.dmp FULL=Y TRANSPORTABLE=ALWAYS VERSION=12 LOGFILE=exp_full.log
      



    • 复制数据文件与 dump 文件至 23c 服务器。
  2. 23c 端(目标)

    • 创建 CDB 与 PDB:CREATE PLUGGABLE DATABASE tgt_pdb ADMIN USER pdbadmin IDENTIFIED BY password;
    • 创建目录:CREATE DIRECTORY dp_dir AS '/u01/dump';
    • 导入:

      bash

      运行

      impdp pdbadmin/password@tgtpdb DIRECTORY=dp_dir DUMPFILE=full_11to23.dmp FULL=Y TRANSPORT_DATAFILES=('/u02/data/file1.dbf', '/u02/data/file2.dbf') LOGFILE=imp_full.log
      






⚙️ 关键参数与回退


  1. 关键参数

    • COMPATIBLE:19c 设 12.2.0,23c 设 23.0.0Oracle
    • CONTROL_FILES:23c 需至少 2 个控制文件
    • UNDO_TABLESPACE:23c 建议使用大回滚段
  2. 回退方案

    • 11→19:使用 RMAN 还原备份或保证还原点
    • 19→23:AutoUpgrade 支持自动回退(需 Enterprise Edition 与 Flashback)




📋 最佳实践


  1. 先测后产:在测试环境完整演练两步升级,验证应用兼容性。
  2. 并行升级:AutoUpgrade 支持多库并行处理,提升效率。
  3. 监控日志:关注 autoupgrade_*.log,及时处理错误。
  4. 统计信息:升级后收集全库统计,避免性能问题。
  5. 字符集统一:23c CDB 推荐使用 AL32UTF8,减少迁移问题。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论