今天做Oracle10.2.0.1升级至10.2.0.4时,在安装过程中总是遇到如下提示:
Coping libocr10.so to /opt/app/oracle/product/10.2.0/libocr10.so(Cannotopen or remove a file containing a running program.)
但是我使用ps命令却没有看到任何oracle用户进程在运行,并且使用lsof命令也没有查看到那个进程在打开这个文件。于是使用最原始的做法:
1、 复制原文件:cp /opt/app/oracle/product/10.2.0/libocr10.so /opt/app/oracle/product/10.2.0/libocr10.so.bak
2、 删除原文件:rm /opt/app/oracle/product/10.2.0/libocr10.so,不要尝试cp /opt/app/oracle/product/10.2.0/libocr10.so.bak /opt/app/oracle/product/10.2.0/libocr10.so来覆盖,否则一样会报错:
[fxqdbcs@oracle]$cp ../../libocr10.so .
overwrite./libocr10.so? y
cp:./libocr10.so: Cannot open or remove a file containing a running program.
还是老老实实的删除吧!!!!!!!
3、 恢复原文件:mv /opt/app/oracle/product/10.2.0/libocr10.so.bak /opt/app/oracle/product/10.2.0/libocr10.so
4、 然后再点击安装界面中的Retry,发现可行!
这种笨拙的方法对付一个两个Retry也就算了,但是安装进程却不断的出现此错误libclsra10.so、libhasgen10.so、libocr10.so 。。。。。,看来不能这样处理了。
一看这些文件都是.so文件,且没有Oracle用户的进程,那说明是系统引用了这些动态链接库,于是用"slibclean”命令清一下系统的动态库,再Retry一次,搞定,后面就顺畅了!看来升级时执行runInstaller第一步提示是否已执行slibclean是很有道理的,是我自己偷懒没有一步一步来!