温馨提示×

Oracle数据库Ubuntu版如何升级

小樊
32
2026-01-01 10:26:05
栏目: 云计算

Ubuntu上Oracle数据库升级指南

一 升级策略与前置准备

  • 采用跨版本新建 Oracle Home 的“异地升级”(out-of-place),避免就地升级带来的回退复杂与停机不可控;在新家完成安装与补丁后,再升级数据库。Oracle 官方推荐此方式,并建议在升级前为数据库应用最新 Release Update(RU)月度推荐补丁(MRP)。同时,注意 Oracle Database 19c 是非 CDB 架构的终端版本,如仍在使用非 CDB,建议规划迁移至 CDB/PDB 架构。升级前务必完成对数据库与应用的兼容性验证(特性变更、弃用/不再支持项、第三方应用适配)。备份方面,使用 RMAN 执行包含归档日志的全库备份,确保可回滚。上述要点与流程要求见 Oracle 升级快速指南与官方文档。

二 具体升级路径

  • 路径A(推荐)AutoUpgrade 全自动升级
    1. 在新目录安装新版本 Oracle 软件,并先打齐 RU/MRP
    2. 从 My Oracle Support 获取并解压最新的 preupgrade.jar 到新 Oracle Home 的 $ORACLE_HOME/rdbms/admin
    3. 以源库 SYS 运行预检查:java -jar $ORACLE_HOME/rdbms/admin/preupgrade.jar;按报告修复问题;
    4. 启动升级:java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config <your_config_file>;
    5. 升级完成后,使用 utlrp.sql 重编译无效对象,并核查日志与组件状态。AutoUpgrade 可显著简化流程,适合生产环境的标准化升级。
  • 路径B DBUA 图形化升级
    1. 在新 Oracle Home 中启动 DBUA(可在安装器里启动,或事后手动启动);
    2. DBUA 会自动执行升级脚本、最小化停机;
    3. 要求与限制:DBUA 升级前需准备最新的 preupgrade.jar;若源/目标 Oracle Home 所有者不同,会报 PRKH-1014,需保证属主一致或改用手动升级;19c 为 non-CDB 终端版本;如启用 Oracle Database Vault,需满足相应前置要求。
  • 路径C 手工升级脚本(适合无法使用 GUI 的场景)
    1. 关闭应用,仅保留监听:lsnrctl stop;
    2. SYS 登录:sqlplus / as sysdba,执行:shutdown immediate;
    3. 启动到升级模式:startup upgrade;
    4. 执行升级脚本:@?/rdbms/admin/catupgrd.sql(或对应版本脚本);
    5. 重启:shutdown immediate;startup;
    6. 重编译无效对象:@?/rdbms/admin/utlrp.sql;
    7. 核查:select * from v$version; 与 utl_recomp_errors 视图。上述手工流程与命令为常用标准做法。

三 Ubuntu 环境要点

  • 安装基础依赖(以 root 执行):sudo apt update && sudo apt install -y alien libaio1 unixodbc
  • 若拿到的是 RPM 包,可用 alien 转换:sudo alien -dv oracle-package.rpm,再用 dpkg 安装;
  • 为兼容部分 Oracle 安装/脚本对 RHEL 兼容层的假设,必要时建立符号链接:
    sudo ln -s /usr/bin/awk /bin/awk;sudo ln -s /usr/bin/rpm /bin/rpm;sudo ln -s /usr/bin/basename /bin/basename;sudo ln -sf /bin/bash /bin/sh;
    创建 rc.d 链接:for i in 0 1 2 3 4 5 6 S; do sudo ln -s /etc/rc$i.d /etc/rc.d/rc$i.d; done;sudo ln -s /etc/init.d /etc/rc.d/init.d;
    模拟发行版信息:echo “Red Hat Linux release 4” > /etc/redhat-release;
  • 创建 oracle 用户与目录、内核与资源限制、环境变量(ORACLE_BASE、ORACLE_HOME、PATH 等)按 Oracle 安装指南配置。上述为 Ubuntu 上常见的兼容性与环境准备工作。

四 升级后验证与回退

  • 版本与组件:select * from v$version; 检查组件状态与无效对象数量(utl_recomp_errors 应为空);
  • 监听器与连接:lsnrctl status;用应用或 sqlplus 进行连接与基本业务回归测试;
  • 回退预案:由于采用异地升级,回退只需切回旧的 Oracle Home 启动原库即可;如升级前创建了保证还原点(Guaranteed Restore Point)且启用了 ARCHIVELOG/FLASHBACK,可按需闪回。务必在升级前完成 RMAN 全备与验证。

0