Oracle 11g opiodr aborting process unknown ospid (***) as a result of ORA-28

聽海★藍心夢發表於2014-03-24

一.Alert log 說明

 

在Oracle 11.2.0.2 的資料庫中alert log發現大量如下log:

 

Fatal NI connect error 12537, connectingto:

 (LOCAL=NO)

 

VERSION INFORMATION:

       TNS for HPUX: Version 11.2.0.2.0 - Production

       Oracle Bequeath NT Protocol Adapter for HPUX: Version 11.2.0.2.0 -Production

       TCP/IP NT Protocol Adapter for HPUX: Version 11.2.0.2.0 - Production

 Time: 11-SEP-2011 17:03:56

 Tracing not turned on.

  Tnserror struct:

  nsmain err code: 12537

   

TNS-12537: TNS:connection closed

   ns secondary err code: 12560

   nt main err code: 0

   nt secondary err code: 0

   nt OS err code: 0

opiodr aborting process unknown ospid (29942) as a result of ORA-609

Sun Sep 11 17:05:23 2011

 

 

Tue Sep 13 17:56:37 2011

opiodr aborting processunknown ospid (924) as a result of ORA-28

Tue Sep 13 17:56:38 2011

opiodr aborting process unknownospid (1951) as a result of ORA-28

Tue Sep 13 17:56:40 2011

opiodr aborting process unknown ospid(1983) as a result of ORA-28

Tue Sep 13 17:56:42 2011

opiodr aborting process unknown ospid(11149) as a result of ORA-28

Tue Sep 13 17:56:43 2011

opiodr aborting process unknown ospid(17662) as a result of ORA-28

Tue Sep 13 17:58:06 2011

 

 

opidcl aborting process unknown ospid(9702) as a result of ORA-604

 

二.問題分析:

 

2.1 opiodr aborting process unknown ospid (924) as a resultof ORA-28

 

在Oracle 11.1.0.6 和 11.1.0.7 的版本中,存在一個bug:6377339。 其會在alert log 顯示如下資訊:

 

 ORA-28 : opiodr aborting process unknown ospid (21016_3086862016)

 

       這樣的提示資訊會讓我們產生疑惑. 所以在Oracle 11.2 版本中對這個bug進行修復,修復之後的提示資訊變成了:

opidcl abortingprocess unknown ospid (32110) as a result of ORA-28

 

opiodr aborting process資訊僅僅是一個訊息,它是Oracle 11g裡新新增的一個訊息,用來記錄程式的異常退出。

該訊息一般用來記錄有許可權的使用者kill 的session資訊。

 

 

示例:

"opiodr aborting process unknown ospid(28342) as a result of ORA-28"

解釋:

"unknown" => means it is not abackground or shadow process that is killed
"ospid (28342)" => this is the OS pid of the process which opiodris aborting
"as a result of" => this precedes the error message which is thereason for opiodr to kill the process
"ORA-28" => this is the reason that opiodr killed the process. Inthis case, it is ora-28.

 

 

參考:

"opiodr abortingprocess" Messages in Alert.Log [ID 1230858.1]

Bug 6377339 - Misleading alertlog message for "opiodr aborting" [ID 6377339.8]

 

 

2.2 opiodr aborting process unknown ospid (29942) as a resultof ORA-609

 

這裡表示程式ospid (29942) 因為ORA-609的錯誤而被kill。導致這個錯誤的原因有2種:

(1)  - "audit network by access does not audit ora-12650"

       該bug 存在Oracle 11.1 到 11.2 的版本中,官網對這個bug的說明如下:

The  is going to be fix bythe Oracle RDBMS Development team, it is currently in Work in Progress Status.

 

(2)在啟動 EM Console後報該錯誤,該問題存在Oracle 10.1到11.2.可能是nscd 程式引起。解決方法是重啟這個程式。

 

用超級使用者(root)使用者執行以下步驟進行重啟:

1. Stop nscd daemon:
# service nscd stop 


2. Verify if any rogue processes is still running:

# ps -ef|grep nscd 

If any process is found, kill the roguenscd process

# kill -9  

3. Start nscd daemon:

# service nscd start 

 

4. As the OS user who has installed theAgent, start the Agent:
cd /bin
emctl start agent 

 

 

參考:

Audit Network Does Not Work When notSuccessful in Oracle 11gR2 [ID 1241325.1]

Grid Control Agent 10.2 Crashes with CoreDump if 'nscd' daemon is Hung on Linux OS [ID 430200.1]

Lsnrctl Status is Failing and Alert.logShows TNS-12537 and ORA-609 [ID 950135.1]

 

 


2.3 opidcl aborting process unknown ospid (9702) asa result of ORA-604


 

根據2.1 中的說明,這裡的資訊時記錄了ospid(9702) 程式因為ORA-604的錯誤而被中斷了。 該訊息僅用來記錄程式異常退出的資訊,是Oracle 11g中新增加的訊息。

 

 

 

 

三.小結:

       在Oracle 11g中,新增了一個新的訊息機制,會在alert log中記錄異常退出的程式。

 

其訊息格式示例如下:

"opiodr aborting process unknown ospid(28342) as a result of ORA-28"

解釋:

"unknown" => means it is not abackground or shadow process that is killed
"ospid (28342)" => this is the OS pid of the process which opiodris aborting
"as a result of" => this precedes the error message which is thereason for opiodr to kill the process
"ORA-28" => this is the reason that opiodr killed the process. Inthis case, it is ora-28.

 

這個是Oracle 11.2 以後的格式,在11.2 之前的格式:

ORA-28 : opiodr aborting process unknownospid (21016_3086862016)

 

這種格式因為會讓人迷惑,因此該格式被稱為Bug 6377339,並在11.2中修改了這個格式。

 

Alert log中的"opiodr aborting processunknown ospid (28342) as a result of ORA-28"訊息僅僅是一個記錄資訊。最後的ORA-XX的資訊代表導致程式異常退出的原因。

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

相關文章