一个用来存储报表的数据库上,有一系列数据导入的进程,但在今天发现这些进程一直未执行结束,在数据导入端可以看到数据导入速度为零,查看数据库上的等待事件,发现它们的等待事件全部是enq: ST – contention(EXTENT分配或者回收的锁)。
SID MACHINE HASH Event Name P1 P2
------ -------------- ------------ -------------------------- -------- ---------
1069 gateway208063. 2384721791 enq: ST - contention 1398013958 0
775 gateway208063. 2384721791 enq: ST - contention 1398013958 0
通过查询v$lock这个视图,可以发现某个会话一直占用着ST锁,杀掉这个进程之后,其他的进程的数据导入速度恢复正常。至于这个会话为啥会长久地占用这个锁,没有进一步追查。
SQL> select * from gv$lock where type='ST';
SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK
---- -- ---------- ---------- ---------- ---------- ---------- ----------
661 ST 0 0 0 6 73 0
720 ST 0 0 0 6 73 0
685 ST 0 0 0 6 72 0
887 ST 0 0 0 6 72 0
922 ST 0 0 0 6 72 0
1054 ST 0 0 6 0 261 2
704 ST 0 0 0 6 75 0
849 ST 0 0 0 6 75 0
976 ST 0 0 0 6 75 0
978 ST 0 0 0 6 75 0
815 ST 0 0 0 6 75 0
以上是一个非常简单的使用v$lock解决enqueue的问题,但是在解决过程中却花费了我很长的时间,这应该是我没有按照最为直接的思维考虑这个问题导致的。对于这个问题,我们应该这么想:既然等待ST锁,那么ST锁肯定被某个会话占用着,通过V$LOCK查找到这个会话,并审查这个会话的这种行为是否正常。
分享到:
相关推荐
本文将详细介绍一个具体的案例——enq: IV - contention,这是一种常见的队列等待事件,在Oracle 12c版本中尤为突出。通过分析此案例,读者可以深入理解如何使用AWR来定位和解决问题。 #### 二、案例背景 在本案例...
并在数据块上产生一个TX锁,此时另外一个会话也需要向该数据块中插入新的索引条目,于是该事务不得不等待索引分裂完成。这时就会表现为enq: TX - index contention。本例中索引块分裂属于5-5 分裂,此分裂可以通过...
【故障处理】enq: PS - contention 是一个Oracle数据库中常见的等待事件,通常与并行服务器(Parallel Server)的资源竞争有关。这篇博客主要讲解如何解决这类问题,并提供了详细的故障分析和解决步骤。 1. **等待...
该事件指的是当两个或多个会话试图同时使用同一个序列时,由于序列的当前值被一个会话占用,其他会话就必须等待。如果cache值设置得过小,序列的值就会频繁请求数据库访问和更新,从而导致高竞争。竞争增加会导致enq...
例如,假设在一个高并发的应用场景中出现了大量的enq:DX-contention等待,此时我们可以: - 使用V$ENQUEUE视图来确定哪些数据对象导致了这种等待。 - 分析SQL语句,看是否可以优化查询逻辑,减少对这些对象的操作。...
1. **等待事件类型**:`EVENT`字段列出了具体的等待事件名称,如“db file sequential read”表示顺序读取数据库文件,“enq: TX - row lock contention”表示行级锁竞争。 2. **等待时长**:`TIME_WAITED`字段提供...
本篇博客主要聚焦于四种特定的序列等待事件:enq SQ - contention、row cache lock、DFS lock handle和enq SV - contention。 1. **enq SQ - contention**: 这个等待事件发生在多个会话尝试获取对序列(sequence...
当一个事务尝试修改一行数据但无法立即获得所需的**意向独占锁(ITL)**时,就会出现这种等待。 - **ITL (Intent To Lock)**: 在Oracle中用于支持行级锁定机制,允许并发读取操作但限制并发写入操作。 - **TX ...
### 故障处理:Oracle_lhr_队列等待之TX - row lock contention #### 一、概述 在Oracle数据库管理中,“enq:TX-rowlockcontention”是一种常见的队列等待事件,通常与行级别的锁定冲突有关。这种冲突可能会导致...
当系统activity增加或者降低的时候,oracle SMON进程会自动ONLINE或者OFFLINE rollback segments。这样导致某些与undo segments相关的latch或者enqueue被...导致系统很多活跃session都开始等待enq: US - contention。
使用`DBA_HIST_SYS等待视图`或`V$SESSION_WAIT`动态视图来检测和诊断死锁。一旦发现死锁,可以通过`ALTER SYSTEM KILL SESSION 'SID, SERIAL#'`命令强制结束导致死锁的会话。 ### ITL死锁模拟与Merge语句优化 ...
我们还发现Log file sync会话 -> Lgwr进程(enq: CF – contention)-> ARC6进程(control file sequential read),导致IO慢。 DTRACE是一个强大的工具,可以帮助我们快速定位系统瓶颈和问题根源。在本案例中,...
V$视图是Oracle数据库的一个重要特性,随着版本的更新而不断丰富和完善。 **新特性:** - **10g中新添加的视图:** 在Oracle 10g中新增加的视图会在名称后面加上"(10g)"标识。 - **修改过的视图:** 对于那些在...
- 使用`v$session_wait`视图查找等待类型的`ENQ: TX - row lock contention`或`ENQ: TX - deadlock`。 - 查询`v$deadlock`和`v$deadlock_monitor`视图获取死锁信息。 - 执行`DBMS_LOCK.MONITOR`过程来监控死锁...
例如,对于"enq:TX - row lock contention"这类等待事件,可能需要考虑事务的并发控制策略或锁的粒度。 总之,Oracle 10g的等待界面改进极大地增强了DBAs在性能监控和问题诊断方面的能力。结合ADDM的自动化分析和...
- 等待资源:比如enq: TM - contention和library cache lock。 - 用户进程等待:比如log file parallel write和log file sync。 ### OWI性能调优方法 针对Oracle等待事件进行调优,通常需要一系列的分析和诊断步骤...
以SID为269的会话为例,如果它正等待enq:TX — row lock contention事件,意味着它在等待另一个会话释放锁。在Oracle 10g之前,找出阻塞会话可能需要编写资源密集型查询,但在10g中,只需简单查询v$session就能找到...
在Oracle数据库运维过程中,实例管理是非常重要的一个环节。当遇到实例管理类的问题时,正确的应急处置措施能够有效地减少对业务的影响。 **1. 实例重启** - **原因分析**:由于各种原因(如内存泄漏、系统资源...