資料庫無法shutdown immediate的案例

shiyihai發表於2007-06-15

今日一哥們說資料庫無法shutdown,一直掛著不動。我問是正常關閉麼,答曰shutdown immediate。他問有無應急的辦法讓其關閉後重啟,我說你就等等吧,immediate方式關閉的話很快能正常shutdown的。(許久後)我問down下來了麼答曰沒。不對勁呀!

[@more@]

telnet上去一看發覺alert日誌中有如下資訊:
Fri Jun 15 13:48:26 2007
Shutting down instance: further logons disabled
Fri Jun 15 13:49:06 2007
Shutting down instance (immediate)
License high water mark = 990
Fri Jun 15 13:54:14 2007
Active call for process 16590 user 'oracle' program (TNS V1-V3)'
SHUTDOWN: waiting for active calls to complete.
Fri Jun 15 13:55:42 2007

用top檢視了一下系統程式,如下:
Memory: 926732K (87056K) real, 1710592K (197156K) virtual, 331688K free Page# 1/11

CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND
1 ? 2981 oracle 154 20 21268K 1896K sleep 487:45 4.52 4.51 tnslsnr
0 ? 16590 oracle 181 20 538M 2236K run 11:33 3.75 3.75 oracleora9i
0 ? 2987 oracle 148 20 551M 10440K sleep 65:21 1.62 1.61 ora_dbw0_ora9i
1 ? 35 root 152 20 8064K 8064K run 47:43 0.59 0.59 vxfsd

一看就覺得16590這個oracle使用者程式可疑。在發出shutdown命令後,這個程式對應的session事務一定在作回滾操作,導致資料庫無法正常關閉。這個事務回滾也太久了吧,有點不正常,無奈現已無法跟蹤到這個程式對應的session資訊了。立即執行kill -9命令後資料庫立馬關閉了。
最後,總結一下資料庫的正常關閉流程:
先停監聽,然後停業務系統。接著ps -ef§grep ora看看還有那些(LOCAL=NO)的oracle使用者程式,如果不能及時關閉的將其kill掉後發出shutdown immediate。
最多等待10分鐘左右,不行就直接abort方式shutdown了。(到這一步基本沒有問題,oracle還是比較安全的)

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

相關文章