1. 程式人生 > >關閉數據庫時SHUTDOWN: waiting for active calls to complete.處理

關閉數據庫時SHUTDOWN: waiting for active calls to complete.處理

abort check process license 關閉數據庫 media edi 4.0 rtu


有時候在關閉數據庫時,發出shutdown immediate;命令後一直未關閉。查看ALERT日誌。在等待一段時間後日誌中有提示:
SHUTDOWN: waiting for active calls to complete.
原因是有些進程無法被PMON進程清理。導致SHUTDOWN時無法關閉而HANG住。



==》依據觀察,在ORACLE10G及以上版本號。會是例如以下提示:(2015/11/24最新驗證ORACLE9206中也會提示進程號)
Active call for process 12345 user ‘oracle‘ program [email protected]

/* */
SHUTDOWN: waiting for active calls to complete.
也就是指出哪個進程引起的等待。此時kill -9 12345 進程就可以。


==》可是在ORACLE 8I版本號中,是不會提示哪個進程ACTIVE引起關閉進程HANG的。提演示樣例如以下:

Sun Jul 26 21:42:38 2015
ARC0: Beginning to archive log# 6 seq# 393635
ARC0: Completed archiving log# 6 seq# 393635
Sun Jul 26 21:42:54 2015
Shutting down instance (immediate)
License high water mark = 235
Sun Jul 26 21:48:02 2015
SHUTDOWN: waiting for active calls to complete.
這樣的情況下。僅僅好查找 ps -ef|grep LOCAL=NO 相關進程都kill掉等處理思路。



==》假設是WINDOWS平臺,沒有進程能夠來KILL,最好方法就是停止ORACLE數據庫的服務了。


這方面資料能夠參考MOS的文檔:
Alert Log: Shutdown Waiting for Active Calls to Complete (文檔 ID 1039389.6)
怎樣以最快方式幹凈的關閉數據庫? (文檔 ID 1577321.1)



近期遇到一次ORACLE 8.1.7.4.0數據庫的關閉操作時,在關閉前。依照正常關閉數據庫流程進行檢查和處理:
關閉監聽,查看有無ps -ef|grep ora_j,查看是否有事務在執行、是否有大事務須要在又一次啟動時進程回滾、多次切換歸檔、多次執行CHECKPOINT完畢後再關庫。
在以上檢查中,LOCAL=NO的會話均進行了處理,也確認了無事務執行;
可是在SHUTDOWN IMMEDIATE命令運行時。仍然HANG住並報SHUTDOWN: waiting for active calls to complete.。
等待多時後,進行查看僅僅有例如以下進程,嘗試kill arc0進程。PMON進程終止實例(相當於SHUTDOWN ABORT),萬幸是關機之前確認事務完畢、切換REDO/檢查點 等操作均有進行,STARTUP時一切正常。


==》這樣的情況下,建議在SHUTDOWN IMMEDIATE前多次切換LOGFILE,並執行檢查點,同一時候確保應用已經關閉;此時無事務執行同一時候數據已經寫入磁盤。假設無奈之下僅僅能SHUTDOWN ABORT或者是其他KILL進程導致SHUTDOWN ABORT,也非常少會造成數據損壞(如數據文件、REDO LOG損壞)導致的實例啟動異常。



日誌例如以下:
Sun Jul 11 21:50:57 2015
Errors in file /oracle/8.1.7/admin/AAA/bdump/pmon_26680_aaa.trc:
ORA-00473: ARCH process terminated with error
Sun Jul 11 21:50:57 2015
PMON: terminating instance due to error 473
Instance terminated by PMON, pid = 26680
進程例如以下
oracle 17016 1 0 Feb 11 - 60:13 ora_arc0_aaa
oracle 18346 1 0 Feb 11 - 1568:00 ora_lgwr_aaa
oracle 18858 1 0 Feb 11 - 0:02 ora_reco_aaa
oracle 22528 1 0 Feb 11 - 122:02 ora_dbw0_aaa
oracle 26680 1 0 Feb 11 - 55:24 ora_pmon_aaa
oracle 28856 1 0 Feb 11 - 6:02 ora_smon_aaa
oracle 29776 1 0 Feb 11 - 67:07 ora_ckpt_aaa
oracle 80566 67462 0 21:50:44 pts/0 0:00 grep ora_
oracle 110824 1 0 May 28 - 18:18 ora_arc1_aaa

關閉數據庫時SHUTDOWN: waiting for active calls to complete.處理