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

xixuefeng ERR, Oracle 2018-01-03 14:10:41 27 次浏览 【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文件重命名(假设,这个文件缺失在被使用,那么是无法重命名的,但是事实是,可以重命名),重命名后(随便改个名字),执行 opatch apply,就开始正常打patch了,这个重命名的oci.dll也无需理会,因为在打patch的时候,就包含这个文件,所以就不用管它了。

 

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

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

 

回顶部