Oracle补丁一共分为如下几步
1、配置环境变量
2、更新Opath
3、停用Oracle服务
4、打补丁
1、配置环境变量 (这里可以不用设置环境变量,运行脚本时采用绝对路径)
设置ORACLE_HOME环境变量为Oracle的目录,如果安装到C盘,我的目录是C:\app\Administrator\product\11.2.0\dbhome_12、更新OPath
OPatch是Oracle的一个更新补丁的程序,我们先把它更新到最新版本(我拿到的补丁文件中有OPatch的更新文件,所以我更新了OPatch,据说有些补丁要求的OPatch比较新,如果用老版OPatch打补丁可能会失败)
OPatch就在Oracle的目录中,有个OPatch目录
我的是
C:\app\Administrator\product\11.2.0\dbhome_1\OPatch
可以先查看下OPatch版本
cmd窗口进入目录然后执行opatch version
将最新版的OPatch文件拷贝到上面的目录,替换文件,然后可以在执行版本看下
这样就完成了OPatch的更新,其实就是替换文件
停用Oracle服务
打补丁之前需要先停用Oracle服务,可以在Windows服务窗口将所有Oracle开头的服务都停止掉(我当时停完了执行更新报了一个错误“”CheckActiveFilesAndExecutables” failed.”,这个错误是由于有正在使用的文件阻止了更新,这是因为我在本机运行了SQLDeveloper,它会使用Oracel一个文件,先重启下服务器,再停止Oracle服务就好了)打补丁
我把补丁文件夹放到了桌面上,路径是C:\Users\Administrator\Desktop\21104036
先使用cmd窗口进入这个目录,然后执行命令
%ORACLE_HOME%/OPatch/opatch apply
这里执行了OPatch里面的命令,用了环境变量,估计如果不配置环境变量这里写绝对目录应该也可以,不过我当时配置了,就这样运行了 (或者运行命令C:/app/Administrator/product/11.2.0/dbhome_1/OPatch/opatch apply)
按照向导一路按Y,回车就行了
最后这样就完成了
我们可以在用cmd进入OPatch目录,执行 opatch lsinventory,查看下打的补丁号,验证下
可以看到第一个补丁号就是我们刚打的
这样打补丁操作就完成了
最后一步启动数据库相关服务,如果有多个实例在每个实例下运行下面的脚本
sqlplus / AS SYSDBA
@C:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\catbundle.sql psu apply
Quit
参考文档:http://blog.csdn.net/willjgl/article/details/53007188