今天在drop一个用户的是时候hang住了,开始没有在意,结果过了1个小时还没有删除完,这个用户中的对象并不是很多而且也不大,于是去看了下alert日志,结果发现如下的信息:
ORA-00060: Deadlock detected. More info in file /u01/app/Oracle/diag/rdbms/tlgdb/tlgdb/trace/tlgdb_ora_14577.trc.
ORA-00060: Deadlock detected. More info in file /u01/app/oracle/diag/rdbms/tlgdb/tlgdb/trace/tlgdb_ora_14577.trc.
ORA-00060: Deadlock detected. More info in file /u01/app/oracle/diag/rdbms/tlgdb/tlgdb/trace/tlgdb_ora_14577.trc.
ORA-00060: Deadlock detected. More info in file /u01/app/oracle/diag/rdbms/tlgdb/tlgdb/trace/tlgdb_ora_14577.trc.
这样信息不断的出现,“死锁”,trc中的信息特别的多如下是其中的一部分:
[10:37:46]DEADLOCK DETECTED ( ORA-00060 )
[10:37:46]
[10:37:46][Transaction Deadlock]
[10:37:46]
[10:37:46]The following deadlock is not an ORACLE error. It is a
[10:37:46]deadlock due to user error in the design of an application
[10:37:46]or from issuing incorrect ad-hoc SQL. The following
[10:37:46]information may aid in determining the deadlock:
[10:37:46]
[10:37:47]Deadlock graph:
[10:37:47] ---------Blocker(s)-------- ---------Waiter(s)---------
[10:37:47]Resource Name process session holds waits process session holds waits
[10:37:47]TX-000a000a-00002c81 36 16 X 36 16 S
[10:37:47]
[10:37:47]session 16: DID 0001-0024-00003E8F session 16: DID 0001-0024-00003E8F
[10:37:47]
[10:37:47]Rows waited on:
[10:37:47] Session 16: no row
[10:37:47]
[10:37:47]----- Information for the OTHER waiting sessions -----
[10:37:47]----- End of information for the OTHER waiting sessions -----
[10:37:47]
[10:37:47]Information for THIS session:
[10:37:47]
[10:37:47]----- Current SQL Statement for this session (sql_id=510jn7rgn8wyk) -----
[10:37:47]INSERT INTO "OGG01" . "GGS_STICK" (PROPERTY, VALUE) VALUES ('lv_version', :B1 )
一个insert也能死锁吗?这里不是太清楚,知道的朋友可以指点一下,因为drop的时候hang住了,所以这里想到了做hanganalyze分析一下,这里采用是的3级的hanganalyze分析,当是也是roger老师提示的,具体的分析hanganalyze的知识点和分析过程可以参考http://www.killdb.com/2014/01/23/about-oracle-hanganalyze.html当然我的这个案例也被他引入了,但是MMON 是可管理性监视器(Manageability Monitor),MMON主要用于AWR,ADDM,MMON会从SGA将统计结果写到系统表中。这是这个进程的作用,但是为什么跟删除一个用户有关系,原因还是不清楚希望知道的朋友指点下。