温馨提示×

Ubuntu Oracle如何更新与升级

小樊
38
2025-12-18 18:24:33
栏目: 云计算

Ubuntu 上的 Oracle 更新与升级指南

一 适用范围与总体原则

  • 区分三类对象:
    1. Ubuntu 操作系统;2) Oracle 数据库软件(如 19c/21c/23ai);3) Oracle Java/JDK
  • 基本原则:
    • 备份(全库 RMAN、参数文件、监听与 TNS、应用配置),再变更。
    • 尽量在测试环境验证再上生产。
    • 明确是补丁/小版本升级(如 19.3 → 19.19)还是跨版本升级(如 12c → 19c),路径不同。
    • 升级前记录关键参数:COMPATIBLE、字符集、SGA/PGA、归档模式、监听端口、DB_UNIQUE_NAME 等。

二 操作系统层面的更新与升级

  • Ubuntu 常规更新(不影响数据库运行):
    • 更新索引与软件包:sudo apt update && sudo apt upgrade -y
    • 发行版升级:sudo do-release-upgrade(跨版本时执行,注意兼容性评估与回退方案)
  • 如需对内核进行零停机热补丁,Oracle 提供 Ksplice Uptrack(适用于 Oracle Linux;Ubuntu 上通常不直接使用):
    • 常用命令:uptrack-upgradeuptrack-showuptrack-removeuptrack-uname
    • 建议同时用包管理器维护磁盘上的内核,重启时可引导到新内核。以上工具与流程以 Oracle Linux 为主,Ubuntu 场景请优先采用标准的 apt/do-release-upgrade 机制。

三 Oracle 数据库软件与补丁更新

  • 小版本/补丁(推荐):使用 OPatch 应用 Interim Patch/One-off Patch
    1. 准备:确认 $ORACLE_HOME、关闭监听与数据库(或确保无业务影响),备份 $ORACLE_HOME
    2. 获取补丁并解压,校验权限:unzip p<BUGID>_Linux-x86-64.zipchown -R oracle:oinstall <patch_dir>
    3. 进入补丁目录:cd $ORACLE_HOME/OPatch
    4. 预检:./opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <patch_dir>
    5. 应用:./opatch apply(按提示执行)
    6. 启动监听与数据库,执行 utlrp.sql 重编译无效对象:sqlplus / as sysdba @?/rdbms/admin/utlrp.sql
    7. 验证:./opatch lsinventory 查看已安装补丁。
  • 跨版本升级(示例:12c → 19c):
    1. 规划与备份:RMAN 全备、参数与目录、监听、TNS、应用连接串。
    2. 安装 19c 软件到新 ORACLE_HOME(不要覆盖旧版本)。
    3. 使用 DBUA(图形或静默)执行升级,或手工升级(升级数据字典/组件)。
    4. 升级后:运行 utlrp.sql,检查 v$version、无效对象、告警日志与监听器。
    5. 回归测试与性能回归,必要时回滚预案(基于备份与快照/Data Guard)。
  • 说明:OPatch 是 Oracle 官方补丁工具,适用于 Linux x86-64 环境的数据库补丁管理;DBUA 为图形化升级向导,可简化跨版本升级流程。

四 Oracle Java JDK 的更新与切换

  • 优先方案:使用 OpenJDK(Ubuntu 官方仓库维护,更新及时):
    • 安装:sudo apt install openjdk-11-jdk(或 openjdk-17-jdk/openjdk-21-jdk
    • 切换版本:sudo update-alternatives --config java--config javac
  • 如需 Oracle JDK
    • 可使用 WebUpd8Team PPA(历史方案,注意版本可用性):
      • sudo add-apt-repository ppa:webupd8team/java
      • sudo apt update
      • 安装:sudo apt install oracle-java8-installer(或 oracle-java11-installer
      • 设为默认:sudo update-java-alternatives -s java-8-oracle
    • 验证:java -versionjavac -version
  • 建议:生产环境优先 OpenJDK LTS,如需 Oracle JDK,请遵循其许可并关注仓库可用性与生命周期。

五 回滚与常见问题处理

  • 回滚策略:
    • 补丁回滚:使用 OPatch 回退(./opatch rollback -id <BUGID>),再重启实例与监听。
    • 跨版本回滚:基于 RMAN 备份恢复至旧库(时间点或 SCN),或启用 Data Guard 快速切换。
  • 常见问题与要点:
    • 升级前确保 COMPATIBLE 参数设置合理,避免升级后无法降级。
    • 升级后执行 utlrp.sql 重编译,检查 v$invalid_object
    • 客户端/应用连接串、JDBC URL、字符集与 NLS 设置需与数据库一致。
    • 监听与服务注册状态检查:lsnrctl statustnspingsqlplus 连通性。
    • 变更窗口、回滚预案与演练需提前完成并留档。

0