近期,一金融客户oracle 11.2.0.4 rac集群delete不当导致等待事件enq: TM - contention严重引起大范围会话堆积,记录的相关分析工作如下。 1、登录集群任意节点,查看集群全局等待事件 SQL> select event,count(*) from gv$session where wait_class<>'Idle' group by event; EVENT COUNT(*) ---------------------------------------------------------------- ---------- enq: TM - contention 24 2、查看等待事件在两个节点的分布 节点1: EVENT COUNT(*) ---------------------------------------------------------------- ---------- SQL*Net message from client 79 rdbms ipc message 64 enq: TM - contention 22 gcs remote message 10 Space Manager: slave idle wait 5 wait for unread message on broadcast channel 4 DIAG idle wait 4 class slave wait 3 Streams AQ: waiting for time management or cleanup tasks 2 Streams AQ: qmn coordinator idle wait 2 PX Deq: Execution Msg 2 VKTM Logical Idle Wait 2 GCR sleep 2 Streams AQ: qmn slave idle wait 2 smon timer 2 pmon timer 2 ges remote message 2 ASM background timer 2 PING 2 PX Deq: Execute Reply 1 节点2: EVENT COUNT(*) ---------------------------------------------------------------- ---------- SQL*Net message from client 49 rdbms ipc message 32 gcs remote message 5 wait for unread message on broadcast channel 2 class slave wait 2 DIAG idle wait 2 Space Manager: slave idle wait 2 enq: TM - contention 2 smon timer 1 PING 1 Streams AQ: qmn slave idle wait 1 SQL*Net message to client 1 GCR sleep 1 ges remote message 1 VKTM Logical Idle Wait 1 Streams AQ: qmn coordinator idle wait 1 ASM background timer 1 pmon timer 1 Streams AQ: waiting for time management or cleanup tasks 1 19 rows selected. 3、查看引起enq: TM - contention等待事件的会话信息 SID USERNAME SQL_ID MODULE MACHINE PROGRAM ---------- ---------- ------------- ---------- ---------------------------------------------------------------- ------------------------------------------------ 363 MW_SYS 74j1zd36h4n96 localhost.localdomain 387 MW_SYS 74j1zd36h4n96 localhost.localdomain 602 MW_SYS 74j1zd36h4n96 localhost.localdomain 626 MW_SYS 74j1zd36h4n96 localhost.localdomain 674 MW_SYS 74j1zd36h4n96 localhost.localdomain 1106 MW_SYS 74j1zd36h4n96 localhost.localdomain 1441 MW_SYS 74j1zd36h4n96 localhost.localdomain 1730 MW_SYS 74j1zd36h4n96 localhost.localdomain 1946 MW_SYS 74j1zd36h4n96 localhost.localdomain 1969 MW_SYS 74j1zd36h4n96 localhost.localdomain 1993 MW_SYS 74j1zd36h4n96 localhost.localdomain 1994 MW_SYS 74j1zd36h4n96 localhost.localdomain 2041 MW_SYS 74j1zd36h4n96 localhost.localdomain 2042 MW_SYS 74j1zd36h4n96 localhost.localdomain 2066 MW_SYS 74j1zd36h4n96 localhost.localdomain 2067 MW_SYS 74j1zd36h4n96 localhost.localdomain 2091 MW_SYS 74j1zd36h4n96 localhost.localdomain 2114 MW_SYS 74j1zd36h4n96 localhost.localdomain 2137 MW_SYS 74j1zd36h4n96 localhost.localdomain 2138 MW_SYS 74j1zd36h4n96 localhost.localdomain 2161 MW_SYS 74j1zd36h4n96 localhost.localdomain 2162 MW_SYS 74j1zd36h4n96 localhost.localdomain 2209 MW_SYS 74j1zd36h4n96 localhost.localdomain 2233 MW_SYS 74j1zd36h4n96 localhost.localdomain 24 rows selected. 4、查看SQL语句74j1zd36h4n96文本信息 SQL_FULLTEXT -------------------------------------------------------------------------------- delete from mw_sys.mwt_is_user m where m.user_id not in('0D3C0ACD-C95B-42DA-A5DE -70F019DAB52B','8697D72E-C77B-4C70-A434-ED7D488ADC36'); 5、查看SQL语句74j1zd36h4n96的执行计划 PLAN_TABLE_OUTPUT -------------------------------------------------------------------------------------------------------------- SQL_ID 74j1zd36h4n96, child number 0 ------------------------------------- delete from mw_sys.mwt_is_user m where m.user_id not in('0D3C0ACD-C95B-42DA-A5DE-70F019DAB52B','8697D72E-C77B-4C70-A434-ED7D4 88ADC36') Plan hash value: 3271715000 ---------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------------------------------------------------- | 0 | DELETE STATEMENT | | | | 210 (100)| | | 1 | DELETE | MWT_IS_USER | | | | | |* 2 | TABLE ACCESS FULL| MWT_IS_USER | 18739 | 951K| 210 (1)| 00:00:03 | ---------------------------------------------------------------------------------- Query Block Name / Object Alias (identified by operation id): ------------------------------------------------------------- 1 - DEL$1 2 - DEL$1 / M@DEL$1 Outline Data ------------- /*+ BEGIN_OUTLINE_DATA IGNORE_OPTIM_EMBEDDED_HINTS OPTIMIZER_FEATURES_ENABLE('11.2.0.4') DB_VERSION('11.2.0.4') OPT_PARAM('_bloom_filter_enabled' 'false') OPT_PARAM('_optimizer_extended_cursor_sharing' 'none') OPT_PARAM('_bloom_pruning_enabled' 'false') OPT_PARAM('_optimizer_extended_cursor_sharing_rel' 'none') OPT_PARAM('_optimizer_adaptive_cursor_sharing' 'false') OPT_PARAM('_optimizer_use_feedback' 'false') ALL_ROWS OUTLINE_LEAF(@"DEL$1") FULL(@"DEL$1" "M"@"DEL$1") END_OUTLINE_DATA */ Predicate Information (identified by operation id): --------------------------------------------------- 2 - filter(("M"."USER_ID"<>'0D3C0ACD-C95B-42DA-A5DE-70F019DAB52B' AND "M"."USER_ID"<>'8697D72E-C77B-4C70-A434-ED7D488ADC36')) Column Projection Information (identified by operation id): ----------------------------------------------------------- 2 - (cmp=2; cpy=2,3) "M".ROWID[ROWID,10], "M"."USER_ID"[CHARACTER,36], "M"."USER_NAME"[VARCHAR2,64], "USER_ISSYSTEM"[CHARACTER,1], "USER_STATUS"[CHARACTER,1] 55 rows selected. 6、查询SQL语句74j1zd36h4n96要保留的数据量 SQL> select count(*) from mw_sys.mwt_is_user where user_id ='0D3C0ACD-C95B-42DA-A5DE-70F019DAB52B'; COUNT(*) ---------- 1 SQL> SQL> select count(*) from mw_sys.mwt_is_user where user_id ='8697D72E-C77B-4C70-A434-ED7D488ADC36'; COUNT(*) ---------- 1 7、查看SQL语句74j1zd36h4n96要删除的数据量 SQL> select count(*) from mw_sys.mwt_is_user m where m.user_id not in('0D3C0ACD-C95B-42DA-A5DE -70F019DAB52B','8697D72E-C77B-4C70-A434-ED7D488ADC36'); 2 COUNT(*) ---------- 18740 8、问题 由以上信息可知,24个会话分布在两个节点上通知对同一张表执行相同的delete操作,而且删除的数据量是大范围的,只保留2条记录, 因此导致严重的enq:TM锁。 9、建议 delete操作分批执行,且控制会话间执行的delete语句删除的数据没有交集。
oracle 11.2.0.4 rac集群等待事件enq: TM - contention
来源:这里教程网
时间:2026-03-03 12:01:56
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- APP_CALCULATE.RUNNING_TOTAL用法
APP_CALCULATE.RUNNING_TOTAL用法
26-03-03 - XML Publisher 技巧
XML Publisher 技巧
26-03-03 - Oracle EBS Form个性化开发
Oracle EBS Form个性化开发
26-03-03 - EBS 启用帮助-诊断
EBS 启用帮助-诊断
26-03-03 - EBS中将请求request变为功能function(菜单项)
EBS中将请求request变为功能function(菜单项)
26-03-03 - 数据泵expdp导出遇到ORA-01555和ORA-22924问题的分析和处理
- 学习的好地方 - 阿里数据库内核组月报站点
学习的好地方 - 阿里数据库内核组月报站点
26-03-03 - 我经常用的一些vi快捷键
我经常用的一些vi快捷键
26-03-03 - Oracle宕机案例汇总(一)
Oracle宕机案例汇总(一)
26-03-03 - Debian pkill命令详解(按模式终止进程的高效方法)
Debian pkill命令详解(按模式终止进程的高效方法)
26-03-03
