一次WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK

alert 报错信息:
>>> WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK! pid=57
System State dumped to trace file /opt/app/oracle/product/10.2.0/db_1/admin/ XXXXXX/bdump/XXXXXXX2_j001_16704.trc

报错的是  j001 进程,是一个后台 job 进程。

当时执行的是  8938 job  ,根据 scheduler$_job 数据字典确认,该  job 用来收集数据库统计信息。
Job Slave State Object
Slave ID: 1, Job ID: 8938
----------------------------------------
SO: 0xcd78567b0, type: 4, owner: 0xcd4553530, flag: INIT/-/-/0x00
(session) sid: 2969 trans: (nil), creator: 0xcd4553530, flag: (48110041) USR/- BSY/-/-/-/-/-
DID: 0002-0039-00000C4A, short-term DID: 0002-0039-00000C4B
txn branch: (nil)
oct: 3, prv: 0, sql: 0xcde99cc10, psql: 0xcd8a1f068, user: 0/SYS
service name: SYS$USERS
O/S info: user: oracle, term: UNKNOWN, ospid: 16704, machine: XXXXXX2
program: oracle@XXXXXX2 (J001)
application name: DBMS_SCHEDULER, hash value=2478762354
action name: GATHER_STATS_JOB, hash value=930355498

job 运行期间:
大量等待 16  rowcache dc_histogram_defs
申请 3 级(行级排它锁  SX
反复超时( 3  秒),最后报  “WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK”
[3 samples,                                          23:34:45 - 23:34:47]
  waited for 'row cache lock', seq_num: 8470
    p1: 'cache id'= 0x10   (16号)
    p2: 'mode'=0x0
    p3: 'request'= 0x3
    time_waited: 2.930612 sec (sample interval: 2 sec)
[3 samples,                                          23:34:42 - 23:34:44]
  waited for 'row cache lock', seq_num: 8467
    p1: 'cache id'= 0x10
    p2: 'mode'=0x0
    p3: 'request'= 0x3
    time_waited: 2.931427 sec (sample interval: 2 sec)


很可能是本节点或另一个节点长时间使用柱状图(如硬解析)或执行  DDL (清算期间需要对大量表进行并发 truncate )导致。
由于业务高峰发生在晚间清算,因此建议将JOB改到白天或清算前执行。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26239116/viewspace-1076276/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26239116/viewspace-1076276/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值