🔧 一、准备阶段
1. 备份关键数据
- 数据库备份:
使用RMAN执行全库备份:
rman target /
RMAN> backup database plus archivelog;
- 软件目录备份:
复制ORACLE_HOME
(默认如C:\app\product\11.2.0\dbhome_1
)到安全位置。
- OPatch备份:
重命名原OPatch目录(如OPatch
→ OPatch_bak
)
2. 关闭所有Oracle服务
- 停止数据库实例:
sqlplus / as sysdba
SQL> shutdown immediate;
- 停止监听服务:
lsnrctl stop
- 在Windows服务管理器中关闭所有Oracle相关服务
(如OracleService<SID>
、OracleOraDb11g_home1TNSListener
)
3. 更新OPatch工具
解压p6880880_112000_MSWIN-x86-64.zip
,将内容覆盖到$ORACLE_HOME\OPatch
目录(替换旧文件)
- 验证OPatch版本:
cd %ORACLE_HOME%\OPatch
opatch version #应显示11.2.0.3.x或更高[3](@ref)
⚙️ 二、补丁安装步骤
1. 安装DB PSU补丁(db-p34474433)
- 解压
db-p34474433_112040_MSWIN-x86-64-202210.zip
到临时目录(如C:\temp\34474433
)。 - 执行补丁安装:
cd C:\temp\34474433
%ORACLE_HOME%\OPatch\opatch apply
提示确认时输入Y
,邮箱提示直接回车跳过。
- 启动数据库并更新数据字典:
sqlplus / as sysdba
SQL> startup;
SQL> @?/rdbms/admin/catbundle.sql psu apply -- 执行约30~60分钟,勿中断[1,5](@ref)
SQL> quit;
2. 安装OJVM PSU补丁(ojvm-p34513867)
- 再次关闭数据库服务(重复准备阶段步骤2)。
- 解压
ojvm-p34513867_112040_MSWIN-x86-64-202210.zip
到临时目录(如C:\temp\34513867
)。 - 执行安装:
cd C:\temp\34513867
%ORACLE_HOME%\OPatch\opatch apply
输入Y
确认操作。
- 执行OJVM后处理脚本:
sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup upgrade;
SQL> @?/rdbms/admin/postinstall.sql -- 路径可能不同,以补丁内README为准,找不到就在dbname下搜一下
SQL> shutdown;
SQL> startup;
SQL> @?/rdbms/admin/utlrp.sql -- 重新编译无效对象[2](@ref)
✅ 三、验证与收尾
1. 检查补丁状态
%ORACLE_HOME%\OPatch\opatch lsinventory #确认34474433和34513867在列表中
sqlplus / as sysdba
SQL> SELECT * FROM dba_registry_history; -- 检查PSU应用记录
2. 启动所有服务
重启数据库实例、监听器及Windows服务。
3. 关键注意事项
- 补丁冲突:
若安装时报冲突(如Conflict found
),用opatch rollback -id <冲突补丁号>
卸载旧补丁后重试。
- 环境变量:
若执行脚本报错(如“适配器错误”),检查PATH
是否包含其他Oracle客户端路径并清理。
- 长时间操作:
catbundle.sql
和postinstall.sql
可能耗时较长,避免中断进程