Ubuntu 上的 Oracle 升级方法概览
在 Ubuntu 环境中,“升级 Oracle”通常包含两类目标:一是升级 Oracle 数据库 版本(如从 12.2 到 19c/23),二是升级 Oracle Java(JDK/JRE)。下面按场景给出可行方法与关键注意事项。
一、Oracle 数据库升级方法
- AutoUpgrade(推荐)
- 适用:跨版本升级(如 12.2/18c/19c/21c → 23c 或 19c),支持 CDB/PDB 架构与多实例并行。
- 要点:在新 Oracle Home 安装最新软件与补丁(RU/MRP),创建升级配置文件,先执行分析(analyze)再部署(deploy);默认启用 Flashback Database 自动回退(Enterprise Edition)。从 23c 起仅支持多租户,非 CDB 需先转为 PDB 再升级。升级前准备可用回退方案(备份/还原点)。
- DBUA(图形化)
- 适用:希望有向导式流程、交互式检查与较少手工命令的场景。
- 要点:作为新版本软件的一部分运行,执行升级前检查、预升级处理与升级后任务;可与新 Oracle Home 的 out-of-place 安装配合,降低风险。
- 手动升级(Manual Upgrade)
- 适用:需要完全可控步骤、深度定制或特殊兼容性处理的环境。
- 要点:按官方步骤执行升级前准备(参数、兼容性、统计信息、无效对象编译等)、数据字典升级与升级后任务(统计信息、回退验证、注册组件等)。
- 迁移式升级(跨平台/跨字符集/大版本跃迁)
- 适用:需要重构或大幅变更环境的场景。
- 方法:使用 可传输表空间(TTS)、数据泵(Data Pump Export/Import) 等迁移数据;如需近零停机,可结合 GoldenGate/Streams 做逻辑复制与切换。
二、Oracle Java(JDK/JRE)在 Ubuntu 的升级方法
- PPA 方式(WebUpd8 团队)
- 适用:快速安装/切换到指定 Oracle Java 版本(如 8/9 等旧版本)。
- 命令示例:
- 添加源:
sudo add-apt-repository ppa:webupd8team/java
- 安装:
sudo apt-get update && sudo apt-get install oracle-java8-installer
- 切换版本:
sudo update-java-alternatives -s java-8-oracle
- 交互选择:
sudo update-alternatives --config java
- 注意:该源主要覆盖旧版本 Java,请确认与你的应用兼容性及仓库可用性。
- Oracle 官方归档安装包
- 适用:需要特定 JDK 版本或最新可用版本的场景。
- 要点:从 Oracle 官方下载 .tar.gz 包,解压至目标目录(如 /usr/lib/jvm),使用
update-alternatives 配置默认 java/cjavac 并调整 JAVA_HOME 与应用配置。
三、升级前关键准备与最佳实践
- 认证与兼容性:在新版本安装指南与 My Oracle Support 核对操作系统、硬件、补丁与第三方应用对目标数据库版本的认证与行为变更(含弃用/不推荐特性)。优先选择 LTS 版本(如 19c/23c)以获得更长支持周期。
- 新 Oracle Home 与补丁:在新目录进行 out-of-place 安装,先应用最新 Release Update(RU) 与 Monthly Recommended Patches(MRP) 再执行升级,降低风险并简化回退。
- 回退与保护:确保有可靠回退方案(如 RMAN 备份、还原点、Flashback Database),并在升级前完成演练与容量评估。
- 测试与性能:在可比测试环境进行升级演练,保留至少 31 天 AWR 基线,使用 SQL Performance Analyzer 与 SQL Plan Management 控制回归,必要时用 Database Replay 验证业务负载。
四、方法选择建议
- 追求稳定与效率:优先使用 AutoUpgrade 配合 out-of-place 新 Oracle Home 与完整备份/回退方案。
- 需要图形化与交互检查:选择 DBUA,适合中小规模或首次升级。
- 复杂迁移/重构:采用 TTS/Data Pump 或 GoldenGate/Streams 实现跨平台、跨字符集或近零停机迁移。
- 仅升级 Java:优先 PPA 或 官方归档包 安装,并用
update-alternatives 管理多版本共存与切换。