序号 | 文件名称 | 文件说明 |
1 | p6880880_112000_MSWIN-x86-64_OPatch 11.2.0.3.33 for DB 11.2.0.0.0 (Feb 2022) | 用于升级 OPatch |
2 | DB_PSU_11.2.0.4.220118 (Jan 2022)_p33488457_112040_MSWIN-x86-64 | 主要补丁文件 |
注意:请用管理员权限运行文件内命令,否则可能报错。ORACLE_HOME指的是数据库软件安装目录。例如笔者的安装路径D:\app\jw5493\product\11.2.0\dbhome_1 |
补丁和数据库软件:链接:https://pan.baidu.com/s/1vqh5XXUjd8yB-pa2u4iV_Q?pwd=wtbo
提取码:wtbo
1、环境检查
检查oracle数据库版本,安装前检查:确保Oracle数据库安装与您正在应用此修补程序的版本相同。
C:\WINDOWS\system32>sqlplus -v
SQL*Plus: Release 11.2.0.4.0 Production
2、Opatch工具检查和环境准备
OPatch工具包,在安装目录$ORACLE_HOME下,PSU安装升级,都是通过OPatch来完成的。PSU的升级安装对OPatch的版本有一定的要求,关于这一点,可以查看PSU的Readme文档。例如,You must use the OPatch utility version 11.2.0.3.5 or later to apply this patch. Oracle recommends that you use the latest released OPatch version for 11.2, which is available for download from My Oracle Support patch 6880880 by selecting the 11.2.0.0.0 release。确定当前系统的OPatch版本。
2.1、查看当前ORACLE的OPatch版本。
C:\Users\jw5493>D:\app\jw5493\product\11.2.0\dbhome_1\OPatch\opatch version
如果不满足升级需求,升级OPatch。
备份:将 D:\app\jw5493\product\11.2.0\dbhome_1下的OPatch文件夹重命名为 OPatch_old,覆盖:解压 p6880880_112000_MSWIN-x86-64.zip 将 OPatch 解压至 D:\app\jw5493\product\11.2.0\dbhome_1。
重新检查版本:
C:\Users\jw5493>D:\app\jw5493\product\11.2.0\dbhome_1\OPatch\opatch version
查看补丁:
C:\Users\jw5493>D:\app\jw5493\product\11.2.0\dbhome_1\OPatch\opatch lsinventory
2.2、修改ORACLE的环境变量
右键→“此电脑”→“属性”→“高级系统设置”→打开“环境变量”。编辑系统变量 变量名:ORACLE_HOME 变量值:ORACLE路径(D:\app\jw5493\product\11.2.0\dbhome_1)。
2.3、关闭数据库相关的所有服务(已Oracle开头的)
3、补丁升级
将下载的补丁DB_PSU_11.2.0.4.220118 (Jan 2022)_p33488457_112040_MSWIN-x86-64进行解压,并在补丁根目录下执行 opatch apply命令进行补丁安装。
用管理员权限打开CMD窗口,进入D盘根目录。执行以下命令
C:\Users\jw5493>D:
D:\>cd D:\33488457
D:\33488457>set ORACLE_HOME=D:\app\jw5493\product\11.2.0\dbhome_1
D:\33488457>%ORACLE_HOME%\OPatch\opatch apply
输入两遍 Y Y确认。
安装过程
安装完成
查看补丁安装结果:
C:\Users\jw5493>D:\app\jw5493\product\11.2.0\dbhome_1\OPatch\opatch lsinventory
4、数据库补丁应用(这一步很重要,差点漏了)
升级数据库数据字典、编译无效对象,数据库启动,并加载修改SQL Files到数据库。
安装DB PSU 补丁集
cd D:\app\jw5493\product\11.2.0\dbhome_1\RDBMS\ADMIN
--打开监听
lnsnrctl start
--打开数据库实例
NetstartOracleServiceORAL
--登录数据库
sqlplus /nolog
conn /as sysdba
@catbundle.sql PSU apply
@?/rdbms/admin/utlrp.sql
--查看 PSU 更新信息
select * from dba_registry_history;
--查看无效对象:
select count(*) from dba_objects where status<>'VALID';
查看补丁安装情况:
OPatch lspatches
5、报错提示
打补丁的步骤就这些。运气好就一气呵成,运气不咋地就要开始漫长的调试。
问题1:出现‘%ORACLE_HOME%不是内部或外部命令,也不是可运行的程序或批处理文件’
解决办法:
命令行中添加命令"set ORACLE_HOME=D:\app\Oracle\product\11.2.0\dbhome_1"可以解决,
问题2:出现"ZOP-51: The patch location is not valid for apply, because it doesn’t have correct metadata, or it points to a patch directory.Please check the arguments and try again OPatch failed with error code = 135.
解决办法:
这种情况说明补丁解压后的文件夹跟OPatch文件夹重了,把解压后的数字代码文件夹放在OPatch目录下了这是肯定不行的,解决的办法只有一个,就是将补丁文件放到其他文件夹,比如我放在D盘根目录下。
问题3:
解决办法:
请用管理员权限运行文件内命令,否则可能报错。ORACLE_HOME指的是数据库软件安装目录。例如笔者的安装路径D:\app\jw5493\product\11.2.0\dbhome_1