问题现象
今天在生成一套rac的awr报告时,发现只有一号节点的数据,这是一套11.2.0.4的rac。
1 2 3
| sys@TFDW1> select * from Dba_Hist_Snapshot where instance_number=2;
未选定行
|
查看mmon进程信息,发现二号节点并没有这个进程
1 2 3
| [root@tfdw2 ~]# ps -ef|grep mmon grid 38361 1 0 Feb24 ? 01:30:51 asm_mmon_+ASM2 root 126466 126429 0 16:04 pts/1 00:00:00 grep mmon
|
而一号节点是正常的
1 2 3 4
| [root@tfdw1 ~]# ps -ef|grep mmon grid 37050 1 0 Dec10 ? 00:03:04 asm_mmon_+ASM1 oracle 53834 1 0 Dec10 ? 00:12:44 ora_mmon_tfdw1 root 79038 42730 0 16:04 pts/0 00:00:00 grep mmon
|
要知道mmon进程属于可以被pmon respawned的进程之一,也就是pmon会监控这些进程的运行状况,发现异常则会进行重启,而现在的现象确实进程不存在。
查看alert日志:
1 2 3
| Receiver: inst 1 binc 429508292 ospid 52558 IPC Send timeout to 1.4 inc 4 for msg type 65518 from opid 16 IPC Send timeout detected. Sender: ospid 51409 [oracle@tfdw2 (MMON)]
|
想起来了是之前单独重启过一号实例,二号实例给一号实例发送通信信息时,返回超时(默认300s)。
查看MMON日志
1 2 3 4 5 6 7 8 9 10 11 12
| DDE rules only execution for: ORA 12751 ----- START Event Driven Actions Dump ---- ---- END Event Driven Actions Dump ---- ----- START DDE Actions Dump ----- Executing SYNC actions Executing ASYNC actions ----- START DDE Action: 'ORA_12751_DUMP' (Sync) ----- Runtime exceeded 300 seconds Time limit violation detected at: ksedsts()+465>-kspol_12751_dump()+145>-dbgdaExecuteAction()+1065>-dbgerRunAction()+109>-dbgerRunActions()+4134>-dbgexPhaseII()+1873>-dbgexProcessError()+2680>-dbgeExecuteForError()+88>-dbgePostErrorKGE()+2136>- dbkePostKGE_kgsf()+71>-kgeselv()+276>-ksesecl0()+162>-ksucin()+147>-kjuinq()+2316>-ksiinqi()+245>-ksqinq()+448>-kclriprog()+45>-ktucloRacMasterAction()+479>-ktucloRacAction()+861>-ksb_run_managed_action()+384>-ksbcti()+852>-ksbabs()+1735>-kebm_mmon_main()+209>-k sbrdp()+1045>-opirip()+623>-opidrv()+603>-sou2o()+103>-opimai_real()+250>-ssthrdmain()+265>-main()+201>-__libc_start_main()+253Current Wait Stack:
|
看起来就是通信异常,导致在reconfig的时候进程异常被pmon终止了。
现在问题时在通信恢复以后为什么进程没有重新启动。
MOS上可以查到是个bug
Bug 19565533 – MMON/MMNL CAN NOT BE AUTOMATICALLY RESTARTED AFTER KILLED
The issue only occurs on 11.2.0.4 and is a regression of the fix for Bug 14213856
解决办法
Tips:启用restricted模式后,应用新连接数据库的会话将直接报错ORA-12526无法连接