cursor: mutex S 问题

数据库服务器不正常的跑高

当前session等待cursor: mutex S,SQL是

SQL ID:az33m61ym46y4
SELECT NULL AS table_cat,
       o.owner AS table_schem,
       o.object_name AS table_name,
       o.object_type AS table_type,
       NULL AS remarks
  FROM all_objects o
  WHERE o.owner LIKE :1 ESCAPE '/'
    AND o.object_name LIKE :2 ESCAPE '/'
    AND o.object_type IN ('xxx', 'TABLE')
  ORDER BY table_type, table_schem, table_name

对这些会话进行trace

WAIT #1: nam='cursor: mutex S' ela= 36 idn=0 value=6549825126405 where=4993644290 obj#=-1 tim=1550147900582216
WAIT #1: nam='cursor: mutex S' ela= 154 idn=0 value=8220567404550 where=4993644307 obj#=-1 tim=1550147900582874
WAIT #1: nam='cursor: mutex S' ela= 196 idn=0 value=7133940678660 where=4993644351 obj#=-1 tim=1550147900583996
WAIT #1: nam='cursor: mutex S' ela= 53 idn=0 value=10900626997258 where=4993644426 obj#=-1 tim=1550147900585612
WAIT #1: nam='cursor: mutex S' ela= 167 idn=0 value=2272037699589 where=4993644467 obj#=-1 tim=1550147900586830
WAIT #1: nam='cursor: mutex S' ela= 158 idn=0 value=10900626997252 where=4993644635 obj#=-1 tim=1550147900590761
WAIT #1: nam='cursor: mutex S' ela= 91 idn=0 value=9216999817220 where=4993644677 obj#=-1 tim=1550147900591656
WAIT #1: nam='cursor: mutex S' ela= 24 idn=0 value=7142530613252 where=4993644728 obj#=-1 tim=1550147900592860
WAIT #1: nam='cursor: mutex S' ela= 63 idn=0 value=2808908611588 where=4993644884 obj#=-1 tim=1550147900597255
WAIT #1: nam='cursor: mutex S' ela= 24 idn=0 value=10900626997255 where=4993644898 obj#=-1 tim=1550147900597579
WAIT #1: nam='cursor: mutex S' ela= 16 idn=0 value=7133940678660 where=4993644910 obj#=-1 tim=1550147900597916
WAIT #1: nam='cursor: mutex S' ela= 192 idn=0 value=5510443040772 where=4993645004 obj#=-1 tim=1550147900600663

AWR和ASH报告中

该SQL是HTTP服务上的一个测试数据库连接功能,需要开发配合改写。

MOS文档上可以用 flush shared_pool缓解,经测试,无效

怀疑和buffer cache 有关系,一个大胆的想法不知道当讲不当讲:flush buffer_cache

执行后,实例崩溃

ALTER SYSTEM: Flushing buffer cache
Errors in file /u01/app/oracle/diag/rdbms/ahdb1/ahdb1/trace/ahdb1_ckpt_38170.trc  (incident=256146):
ORA-00600: internal error code, arguments: [kcbo_unlink_q_bg_3], [0xCE4DBE200], [1], [1], [0], [0], [0], [0], [], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/ahdb1/ahdb1/incident/incdir_256146/ahdb1_ckpt_38170_i256146.trc
Errors in file /u01/app/oracle/diag/rdbms/ahdb1/ahdb1/trace/ahdb1_ckpt_38170.trc:
ORA-00600: internal error code, arguments: [kcbo_unlink_q_bg_3], [0xCE4DBE200], [1], [1], [0], [0], [0], [0], [], [], [], []
CKPT (ospid: 38170): terminating the instance due to error 469
Instance terminated by CKPT, pid = 38170

再次启动实例后,CPU回到正常,数据库等待回到正常。

参考文档:Bug 16175381 – Process spin in kkscsSearchChildList() -> kkshGetNextChild() with fix for bug 14613900 present (Doc ID 16175381.8)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注