解決升級資料庫時遇到的Text file busy錯誤

guyuanli發表於2009-08-04
今天在將一個資料庫從9204升級到9206時候(p3948480_9206_HP64),遇到一個報錯:

Exception String: Error in writing to file '/oracle/app/oracle/product/9.2.0/lib32/libwtc9.sl'. [/oracle/app/oracle/product/9.2.0/lib32/libwtc9.sl (Text file busy)]

Exception Severity: 2

Exception handling set to prompt user with options to Retry Ignore

[@more@]

User Choice: Retry

Exception thrown from action: copyGroupFromJar

Exception Name: IOException2

Exception String: Error in writing to file '/oracle/app/oracle/product/9.2.0/lib32/libwtc9.sl'. [/oracle/app/oracle/product/9.2.0/lib32/libwtc9.sl (Text file busy)]

Exception Severity: 2

Exception handling set to prompt user with options to Retry Ignore

奇怪,按理說資料庫的偵聽已經停了,且資料庫已經重啟過,應該不會還有應用會使用資料庫中的檔案了吧?在圖形介面點選retry,可以繼續安裝,但是不一會又再次彈出視窗說這個檔案還是在被使用。

此時,我們可以用fuser這個命令來檢視是哪個程式在使用這個檔案。

sn_rdb01#[/]fuser /oracle/app/oracle/product/9.2.0/lib32/libwtc9.sl

/oracle/app/oracle/product/9.2.0/lib32/libwtc9.sl: 5757m 5759m 5758m 6585m 6605m 5756m 5755m 6607m 5760m 6632m 6565m 6560m 18407m 6633m

繼續檢查這些是什麼程式:

sn_rdb01#[/]ps -ef |grep 5757

report16 5757 1 0 Feb 13 ? 56:19 datastat_mms

root 27653 24491 0 23:12:57 pts/3 0:00 grep 5757

sn_rdb01#[/]

sn_rdb01#[/]

sn_rdb01#[/]ps -ef |grep 5759

report16 5759 1 0 Feb 13 ? 5:20 dataload_sms

root 27714 24491 0 23:14:31 pts/3 0:00 grep 5759

經過仔細檢視,這些程式是報表應用的程式,可以用kill的方式殺掉這些程式,我們在這裡採用了更為安全的方式:通知報表的維護人員停了報表應用。停完後,即可順利升級!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7490392/viewspace-1024878/,如需轉載,請註明出處,否則將追究法律責任。

相關文章