【Oracle】windows平台Oracle11g打patch,OPatch failed with error code = 74

xixuefeng ERR, Oracle 2018-01-03 14:10:41 1,811 次浏览 【Oracle】windows平台Oracle11g打patch,OPatch failed with error code = 74已关闭评论

windows平台Oracle11g打patch,一个朋友的事儿,帮忙弄一下。首先作者本人从来未在Windows平台为Oralce 11.2.0.1打patch。不过,无论打什么patch,都要严格的按照readme中所提示的整。本人也不例外,但是在打补丁的时候还是出现点儿小问题。

readme中步骤如下:

看着readme中的提示做,大致步骤如下:

1:shutdown数据库,并设置环境变量

2:在windows,cmd命令行切换到解压缩后补丁的目录

3:执行opatch lsinventory

此时我会看到OPatch 版本 : 11.1.0.6.6,与readme中要求的不一致,readme中要求11.2.0.1.2 or later,最好是更新opatch为指定版本,当然了,本次打patch未升级opatch,也是可以正常打patch。

4:执行opatch 打patch

5:问题,在执行第四步时,报如下错误:

从错误中我们可以看到oci.dll这个文件的状态是active,显然oci.dll这个文件影响了打patch,我甚至操作系统重启了,还是不行(有可能是我观察不细致造成的)

可以通过C:\p10432044_112010_WINNT\10432044>tasklist /m oci.dll  这个命令查看是哪个进程占用着这个程序,但据说就算找到,kill掉进程,还是会被守护进程拉起来。

最后实在没办法了,看见一个网友的解决方案是将oci.dll文件重命名(假设,这个文件确实是在使用中,那么该文件是无法重命名的。但是事实是,oci.dll这个文件在被占用的情况下也是可以重命名的),重命名后(随便改个名字),执行 opatch apply,就开始正常打patch了,这个重命名的oci.dll也无需理会,因为在打patch的时候,就包含这个文件,所以就不用管它了。

 

最后,我在回来的路上想这个问题,有可能是因为打patch的数据库是两个实例造成的。我在shutdown的时候,可能是没关彻底或是其他某个进程在用着什么。

总之,以后再在windows打patch,还是检查仔细且做好充分的测试为好。

 

回顶部