昨天晚上負責爲一個客戶的數據庫系統做升級,整體上非常順利,不過有個小插曲,記錄一下,與各位分享。
該數據庫是從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進程的原因,內存仍然存在鎖相關的信息未釋放。