Linux Oracle如何升级与补丁管理
导读:Linux 上 Oracle 升级与补丁管理实战指南 一 规划与准备 明确目标与路径:是进行数据库版本升级(如 11.2.0.4 → 19c)还是补丁更新(如 PSU/CPU/BP),并制定回退预案。 完整备份:至少完成RMAN 全备与O...
Linux 上 Oracle 升级与补丁管理实战指南
一 规划与准备
- 明确目标与路径:是进行数据库版本升级(如 11.2.0.4 → 19c)还是补丁更新(如 PSU/CPU/BP),并制定回退预案。
- 完整备份:至少完成RMAN 全备与ORACLE_HOME 备份,同时备份 oraInventory;有条件时对应用与配置一并备份。
- 工具与版本前置:提前下载并升级 OPatch(补丁包 README 会注明最低 OPatch 版本要求),并校验 $ORACLE_HOME 与 $PATH。
- 系统与健康检查:确认 OS 补丁、磁盘空间、内存、内核参数满足要求;对 RAC 检查 集群状态与共享存储可用性。
- 变更窗口与回退:在维护窗口执行,准备回退脚本与回滚 OPatch方案,确保可快速恢复业务。
- 参考要点:OPatch 升级与 lsinventory 检查、PSU/CPU 差异与执行脚本、备份 ORACLE_HOME 与 oraInventory 等均为必要步骤。
二 补丁管理流程(OPatch)
- 步骤概览
- 检查当前补丁与 OPatch 版本:
$ORACLE_HOME/OPatch/opatch lsinventory、opatch version。 - 若低于补丁要求,先升级 OPatch(如补丁号 6880880),覆盖
$ORACLE_HOME/OPatch。 - 按补丁 README 准备环境,必要时停库停监听:
lsnrctl stop、sqlplus / as sysdba→shutdown immediate。 - 软件层打补丁:
$ORACLE_HOME/OPatch/opatch apply(GI/集群按节点串行执行,是否可滚动以 README 为准)。 - 数据库层(仅对 PSU/BP 等需要的情况):
startup migrate→ 执行@$ORACLE_HOME/rdbms/admin/catbundle.sql psu apply→shutdown immediate→startup。 - 编译无效对象:
@$ORACLE_HOME/rdbms/admin/utlrp.sql。 - 验证:
opatch lsinventory、select * from v$version;、检查alert.log。 - 回滚:
opatch rollback -id < 补丁号>;若涉及数据库层脚本,按 README 执行回滚 SQL。
- 检查当前补丁与 OPatch 版本:
- 关键注意
- 严格以补丁包 README/Readme.html 为准,关注前置补丁、互斥关系、OPatch 最低版本。
- RAC 多为逐节点执行;若补丁不支持滚动,需全停后统一打补丁。
- 打补丁前后建议记录 失效对象数量 与 dba_registry_history,便于比对与审计。
三 数据库版本升级流程(示例 19c)
- 升级前
- 备份:RMAN 全备、备份 ORACLE_HOME 与 oraInventory,记录
v$version与dba_registry_history。 - 升级 OPatch(19c 常见要求为 12.2.0.1.19+),并完成 lsinventory 一致性检查。
- 备份:RMAN 全备、备份 ORACLE_HOME 与 oraInventory,记录
- 软件升级
- 解压 19c 软件,运行
runInstaller升级 ORACLE_HOME(或使用静默安装);安装结束按提示执行root.sh。
- 解压 19c 软件,运行
- 实例升级
- 使用 DBUA(Database Upgrade Assistant) 执行升级,或手工升级:
startup upgrade→@?/rdbms/admin/catupgrd.sql→shutdown immediate→startup→@?/rdbms/admin/utlrp.sql。
- 使用 DBUA(Database Upgrade Assistant) 执行升级,或手工升级:
- 升级后
- 校验:
select * from v$version;、utlrp.sql编译结果、组件状态与alert.log无异常。
- 校验:
- 参考要点:19c 升级前需满足 OPatch 版本门槛;DBUA 为图形/静默一体化工具,适合标准化升级。
四 操作系统与 GI 层补丁
- Oracle Linux 主机补丁
- 使用 OS Management Hub 集中管理 Oracle Linux 实例的安全与功能更新,可与 Ksplice 联动实现内核与用户态(glibc、OpenSSL)零停机更新,并支持调度与报表。
- OS 就地升级(示例 OL6 → OL7)
- 先升级至 OL6.10,安装
preupgrade-assistant并执行预检,随后通过redhat-upgrade-tool执行就地升级到 OL7.x,按向导完成并验证。
- 先升级至 OL6.10,安装
- GI(Grid Infrastructure)与集群
- GI 补丁同样使用 OPatch 在 GI_HOME 执行;遵循 滚动/非滚动 要求,逐节点停启资源,确保 CRS 与 ASM 健康后再继续下一节点。
五 验证与回退清单
- 补丁/升级后验证
- 软件层:
$ORACLE_HOME/OPatch/opatch lsinventory确认补丁号与版本;select * from v$version;。 - 数据库层:
@?/rdbms/admin/utlrp.sql编译无效对象;检查dba_registry_history与组件状态;巡检 alert.log 与监听状态。
- 软件层:
- 回退策略
- OPatch 回滚:
opatch rollback -id < 补丁号>;PSU/CPU 回滚按 README 执行数据库层脚本;版本升级回退采用 RMAN 恢复或还原 ORACLE_HOME 的方式,确保应用与数据一致。
- OPatch 回滚:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Oracle如何升级与补丁管理
本文地址: https://pptw.com/jishu/753415.html
