您的位置:首页 > 其它

mmnl进程无故终止的一些事

2016-01-22 14:08 253 查看
看了一下V$SESSION好多的BLOCKING_SESSION不为空,但是没有交叉的互锁。alert_log日志如下

Fri Jan 22 05:13:44 CST 2016

MMNL absent for 1203 secs; Foregrounds taking over

Fri Jan 22 05:40:55 CST 2016

>>> WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK! pid=344

System State dumped to trace file /u01/app/oracle/admin/sid/udump/sid_ora_1938.trcumped to trace file /u01/app/oracle/admin/sid/udump/sid_ora_1938.trc

mmnl进程不存在了多少秒,前台接管了。mmnl进程是mmon进程一个分支,主要负责将sga的信息写入到表,该后台进程终止后,addm报告没有在产生,ADDM的数据依赖于awr报告以下时间点。具体罢工原因不明,年底了,没发奖金估计,哈哈

addm没有产生。

select *

from dba_advisor_log a

where a.task_name like '%ADDM%'

AND a.execution_start between

to_date('20160122 05:13:44', 'yyyymmdd hh24:mi:ss') and

to_date('20160122 08:13:44', 'yyyymmdd hh24:mi:ss');

这与下面的问题有没有直接联系?哈哈,看看这个wait too long,用脚想想有应该有关系的啦。到底是个什么关系嘞。好了,开始查资料吧,顺便抱怨一下,坑B的天朝,真正知天下事的GOOGLE用不了,哎,不说了,回头别被查水表了。

row cache enqueue lock,由于mmnl进程的终止,相关数据不能从内存写到磁盘,相关latch不能释放。latch锁是oracle3大锁类型的一种,一种内存保护的低级锁。

好了,由于进程终止,重启实例(有谁知道能不能不重启实例,直接重启相关进程的(后在20160128做一次实验是可以的,见文章结尾))好像事情进展总是不是那么的顺利,shutdown immediate条件反射型的敲完了回车之后,一想不对,重开了窗口准备执行abort。sys用户登陆报错

Connected. ERROR: ORA-01012: not logged on。

网络资料给的是杀掉数据库写进程,为什么不是lgwr或者其他进程嘞,反正都准备abort关实例了,想想杀个dbwr后台进程也就无所谓了(哎,慎用)

ps -ef |grep ora_dbw0_

kill -9 XXXX

startup。好了这才是问题的刚刚开始

ORA-01102: cannot mount database in EXCLUSIVE mode。

这个问题想都没有想 $ORACLE_HOME/dbs下的lksid文件,删了。

alter database mount;

alter database open;报错,abort是不会对数据有什么损坏的,最多也就是实例恢复,所以这应该是kill dbw进程时对文件造成的损坏。无法对数据文件加锁保护。看了ora_dbw0_XXX.trc,我靠,没看懂,没办法,手工恢复吧。

ORA-01157: cannot identify/lock data file 24 - see DBWR trace file

ORA-01110: data file 24: '/u01/app/oracle/oradata/sid_09.dbf'

alter database datafile 24 offline;

启动rman

restore datafile 24;报错继续, error in creating database file关注这点就行了。文件已存在。删除了该文件。

creating datafile fno=24 name=/u01/app/oracle/oradata/sid_09.dbf

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of restore command at 01/22/2016 09:53:41

ORA-01119: error in creating database file '/u01/app/oracle/oradata/sid_09.dbf'

ORA-27086: unable to lock file - already in use

Linux-x86_64 Error: 11: Resource temporarily unavailable

Additional information: 8

Additional information: 3604;

recover datafile 24;

alter database datafile 24 online; 将数据文件重新连机。

打开实例

alter database open;

-- 20160128

有时间的情况下做一次实验,对于mmnl这个非oracle5大核心进程的(诸如你杀了dbw进程,oracle不会自动给你重启的,实例直接关了都),杀了该进程,一段时间后,oracle会自动重启该进程,应该是pmon进程在管理该进程,那么前提就必须是pmon这个进程是正常的情况下才可以
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: