昨天晚上负责为一个客户的数据库系统做升级,整体上非常顺利,不过有个小插曲,记录一下,与各位分享。
该数据库是从10.2.0.4 升级到10.2.0.5,补丁的安装过程中,提示存在正在运行的文件,数据库进程已经完全关闭了,怎么还存在正在运行的进程呢?通过ps 命令看到了gg进程,于是将gg停掉,另外还kill了一个进程,如下:
oracle 827870 1 0 Mar 05 - 34:04 ./server -w 300 -p 7840 -k -l /oradata/gg/10.4/ggserr.log
P570[/home/oracle]$kill -9 827870
P570[/home/oracle]$
点击retry,继续进行,不了几分钟后再次报错,提示如下错误:
Error in writing to file
'/oracle/product/10.2.0/lib/libjox10.a'.
[/oracle/product/10.2.0/lib/libjox10.a
(Cannot open or remove a file containing a running program.)]。
还是报存在正在运行的程序。我想GG停掉了,系统中确实也没有会访问oracle的程序了,脑子了突然想起来,aix系统中存在/usr/slib/slibclean,于是执行了一下:
P570:/>#/usr/sbin/slibclean
再次点击retry,安装程序继续进行。呵呵,应该是我kill进程的原因,内存仍然存在锁相关的信息未释放。