匪夷所思:罕见的 Oracle 全局事务锁等待事件分析

这是在某客户现场的一次即时分析,这个问题困扰了用户一段时间,数据库体现为严重的性能问题,导致应用出现大范围超时以及会话激增等问题,多次尝试 kill session 都无法彻底解决问题,重启后系统恢复正常。

拿到故障时刻的 AWR 报告,可以发现问题时刻,数据库的主要等待为:

Global transaction acquire instance locks 和 enq: TX - row lock contention。

Event

Waits

Time(s)

Avg wait (ms)

% DB time

Wait Class

Global transaction acquire instance locks

5,342

5,343

1000

74.09

Configuration

enq: TX - row lock contention

5

1,437

287308

19.92

Application

DB CPU

 

331

 

4.59

 

direct path read

37,708

72

2

0.99

User I/O

log file sync

7,817

12

2

0.16

Commit

其中 TX – row lock contention 等待十分常见,这个等待事件造成应用的阻塞也很容易理解,但是Global transaction acquire instance locks并不是常见等待,从字面上理解,是全局事务在尝试获取实例锁。这个等待在等待时间占比上,消耗了将近75%的DB TIME。

当然数据库中TOP 5中最严重的等待不一定是问题的根源,分析问题时刻的 ASH 信息,在问题时刻,最先出现的是全局事务获取锁的等待,随后开始出现行锁等待:

原文链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值