返回顶部
首页 > 资讯 > 数据库 >enq: SQ – contention、cursor: p
  • 901
分享到

enq: SQ – contention、cursor: p

2024-04-02 19:04:59 901人浏览 安东尼
摘要

事情已经过去一年,发生在15年1月份,某全国业务系统,实时的号码办理系统,收到短信告警,该系统断开连接。数据库出现大量enq: SQ – contention、cursor: pin S wait

事情已经过去一年,发生在15年1月份,某全国业务系统,实时的号码办理系统,收到短信告警,该系统断开连接。数据库出现大量enq: SQ – contention、cursor: pin S wait on X等事件,alert日志中出现大量的ORA-04031报错。进行flush share pool后进行了相关查询操作。

9点前后,活动会话数突然攀升,与alert日志在1月31号首次出现ORA-04031错误时间吻合

TO_CHAR(TRUNC(SA   COUNT(*)

---------------- ----------

2015-01-31 08:44         23

2015-01-31 08:45         28

2015-01-31 08:46         25

2015-01-31 08:47         27

2015-01-31 08:48         33

2015-01-31 08:49         37

2015-01-31 08:50         27

2015-01-31 08:51         23

2015-01-31 08:52         38

2015-01-31 08:53         30

2015-01-31 08:54         32

2015-01-31 08:55         35

2015-01-31 08:56         28

2015-01-31 08:57         27

2015-01-31 08:58         27

2015-01-31 08:59         41

2015-01-31 09:00        556

2015-01-31 09:01        754

2015-01-31 09:02        673

2015-01-31 09:03         45

2015-01-31 09:04        111

2015-01-31 09:05         36

Alert日志内容:

Sat Jan 31 08:47:36 2015

Thread 1 advanced to log sequence 36910 (LGWR switch)

  Current log# 2 seq# 36910 mem# 0: /dev/essdb3vg2/rdb3vg2_1_redo21

  Current log# 2 seq# 36910 mem# 1: /dev/essdb3vg3/rdb3vg3_1_redo22

Sat Jan 31 09:00:50 2015

Errors in file /oraclelog/admin/essdb3/bdump/essdb31_j008_15925.trc:

ORA-12012: error on auto execute of job 1

ORA-04031: unable to allocate 32 bytes of shared memory ("shared pool","select sysdate + 1 / (24 * 6...","sql area","tmp")

Sat Jan 31 09:00:51 2015

Errors in file /oraclelog/admin/essdb3/bdump/essdb31_j003_24229.trc:

ORA-12012: 自动执行作业 1644 出错

ORA-04031: 无法分配 32 字节的共享内存 ("shared pool","update seq$ set increment$=:...","sql area","tmp")

Sat Jan 31 09:01:31 2015

Errors in file /oraclelog/admin/essdb3/bdump/essdb31_j005_24233.trc:

ORA-12012: 自动执行作业 1624 出错

ORA-04031: 无法分配 32 字节的共享内存 ("shared pool","update seq$ set increment$=:...","sql area","tmp")

Sat Jan 31 09:01:31 2015

Errors in file /oraclelog/admin/essdb3/bdump/essdb31_j008_15925.trc:

ORA-12012: 自动执行作业 927 出错

ORA-04031: 无法分配 32 字节的共享内存 ("shared pool","update seq$ set increment$=:...","sql area","tmp")

Sat Jan 31 09:01:43 2015

Errors in file /oraclelog/admin/essdb3/bdump/essdb31_smon_6599.trc:

ORA-04031: unable to allocate 32 bytes of shared memory ("shared pool","insert into sys.col_usage$ (...","sql area","tmp")


分析:

1,由于share pool无法更新字典表SEQ$,因此出现大量的sequence类等待事件是必然的,这也解释了为什么在top5里为什么enq: SQ – contention等待时间较长。

2,通过查询V$DBA_HIST_SQLTEXT可以发现以”SELECT ROW_.*”开头的sql文本共592个,且每个SQL_ID对应sql文本的行数较多,所有的SQL文本分别对应不同的SQL_ID,说明sql的绑定变量存在问题,每次执行SELECT ROW_.*都需要硬解析,会占用大量的share pool。

3,在后台的alert日志中,可以发现大量的ora-4031告警,而且大部分都为同一条语句,这种日志情况的输出都是发生在申请free chunk的过程中,同一条语句在遍历free list的时候,每扫描一个子池,申请不到空间,都会报一个错。

4,Cursor:pin S wait on x该等待事件主要是由较高的硬解析和高version count造成的,高硬解析和高version count都会大量的消耗shared_pool空间,直接结果就是shared_pool空间不足。



您可能感兴趣的文档:

--结束END--

本文标题: enq: SQ – contention、cursor: p

本文链接: https://lsjlt.com/news/36731.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • enq: SQ – contention、cursor: p
    事情已经过去一年,发生在15年1月份,某全国业务系统,实时的号码办理系统,收到短信告警,该系统断开连接。数据库出现大量enq: SQ – contention、cursor: pin S wait...
    99+
    2024-04-02
  • enq: US - contention
    SQL> select name, parameter1, parameter2, parameter3 from v$event_name where name like '&a...
    99+
    2024-04-02
  • enq:SQ-contention(SQ锁)测试
    oracle为了管理Sequence使用了以下三种锁:row cache lock :在调用Sequnece.nextval过程中.将数据字典信息进行物理修改时获取.赋予NOCACHE属性的Sequence...
    99+
    2024-04-02
  • Oracle等待事件之enq: TM – contention
    执行DML 期间,为防止对与DML 相关的对象进行修改,执行DML 的进程必须对该表获得TM 锁。 P1 = name|mode P2 = object # P3 = table/partition ...
    99+
    2024-04-02
  • 由于IMPDP...APPEND引起的 enq: TM – contention
    线上业务突然告警,立刻检查ASH 报告发现 enq: TM – contention 从各个指标的TOP SQL 看都是同一个表的insert 和update 。 经确认是在impdp 数...
    99+
    2024-04-02
  • oracle 11.2.0.4 rac集群等待事件enq: TM - contention
        近期,一金融客户oracle 11.2.0.4 rac集群delete不当导致等待事件enq: TM - contention严重引起大范围会话堆积,记录的相关分析工...
    99+
    2024-04-02
  • 数据库中如何解决enq: US - contention问题
    小编给大家分享一下数据库中如何解决enq: US - contention问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • enq: TX – row lock contention的测试和案例分析
    参考:http://www.killdb.com/2015/07/13/%E5%85%B3%E4%BA%8Eenq-tx-row-lock-contention%E7%9A%84%E6%B5%8B%E8%A...
    99+
    2022-11-30
    tx contention enq
  • 【故障处理】队列等待之enq IV - contention案例
    【故障处理】队列等待之enq IV -  contention案例1.1  BLOG文档结构图 1.2  前言部分1.2.1  导读和注意事项各位技术爱好者...
    99+
    2024-04-02
  • 如何理解enq: TX - index contention等待的探讨与测试
    本篇文章给大家分享的是有关如何理解enq: TX - index contention等待的探讨与测试,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看...
    99+
    2024-04-02
  • 如何进行等待事件enq TX row lock contention的分析
    本篇文章为大家展示了如何进行等待事件enq TX row lock contention的分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 ...
    99+
    2024-04-02
  • 数据库出现很高的enq: DX - contention等待该怎么解决
    数据库出现很高的enq: DX - contention等待该怎么解决,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。检查客户AWR报告时,发现数据库经历严重的e...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作