RAC CSS initialization等待事件处理

 环境描述:oracle 11.2.0.4  单实例  操作系统:Microsoft(R) Windows(R) Server 2003 Enterprise x64 Edition
  以下是数据库AWR中的TOP等待事件:

EventWaitsTotal Wait Time (sec)Wait Avg(ms)% DB timeWait Class
DB CPU 1546.9 42.7 
log file sync810,4671440.1239.7Commit
db file sequential read72,267452.5612.5User I/O
direct path write temp31,717220.476.1User I/O
CSS initialization1818997.5Other
Disk file operations I/O2,06814.37.4User I/O
SQL*Net message to client2,125,8017.60.2Network
direct path read7165.98.2User I/O
control file sequential read4,4505.91.2System I/O
read by other session2365.323.1User I/O

            
 CSS initialization 代表有进程在向CSS进行注册。但数据库是单实例,且数据库也没有使用ASM,那么为什么会出现CSS initialization?再进一步观察发现该等待事件虽然等待的次数不多,但是每次等待的事件却很长,对系统性能肯定会有影响,所以必须进行处理。接下来分析为什么会出现该等待事件。首先检查了数据库的alert日志,发现日志里面没有出现相关的错误;再到数据库里检查最近

 

一段时间内出现的该等待事件:

SQL> select sql_id, count(*), sum(time_waited)
     from dba_hist_active_sess_history
     where sample_time>to_date('201507080000','yyyymmddhh24mi')
     and sample_time<to_date('201507081420','yyyymmddhh24mi')
     and event='CSS initialization'
     group by sql_id;

SQL_ID COUNT(*) SUM(TIME_WAITED)
------------- ---------- ----------------
a6w8xy8jw0dpa 5 2026455
4ztfd8f5kk8jf 10 5463613
9jp5bc1p6dnfs 7 4367045


 能观察到sql_id号,这样问题处理就容易多了,再继续把对应的sql找到:

SQL> select * from dba_hist_sqltext
    where sql_id='a6w8xy8jw0dpa';

      DBID SQL_ID SQL_TEXT COMMAND_TYPE
---------- ------------- -------------------------------------------------------------------------------- ------------
 901678011 a6w8xy8jw0dpa select round(sum(FREE_MB)/1024,2) as d_asm_free from v$asm_diskgroup 3


SQL> select * from dba_hist_sqltext
    where sql_id='4ztfd8f5kk8jf';

      DBID SQL_ID SQL_TEXT COMMAND_TYPE
---------- ------------- -------------------------------------------------------------------------------- ------------
 901678011 4ztfd8f5kk8jf select round( 100-100*sum(FREE_MB)/sum(TOTAL_MB),2) as d_asm_usePer from v$asm 3


SQL> select * from dba_hist_sqltext
    where sql_id='9jp5bc1p6dnfs';

      DBID SQL_ID SQL_TEXT COMMAND_TYPE
---------- ------------- -------------------------------------------------------------------------------- ------------
 901678011 9jp5bc1p6dnfs select round((sum(TOTAL_MB)-sum(FREE_MB))/1024,2) as d_asm_use from v$asm_disk 3


发现相关的sql都是对v$asm_diskgroup视图进行查询,因为查询针对系统视图的,怀疑可能是系统自带的job执行的,接下来进行确认
 

SQL> select u.user_id,u.username
    from dba_users u,
    v$sql s
    where s.parsing_user_id=u.user_id
    and s.sql_id='a6w8xy8jw0dpa';

   USER_ID USERNAME
---------- ------------------------------
        90 CQITJK
         0 SYS

SQL> select u.user_id,u.username
    from dba_users u,
    v$sql s
    where s.parsing_user_id=u.user_id
    and s.sql_id='4ztfd8f5kk8jf';

   USER_ID USERNAME
---------- ------------------------------
        90 CQITJK

SQL> select u.user_id,u.username
    from dba_users u,
    v$sql s
    where s.parsing_user_id=u.user_id
    and s.sql_id='9jp5bc1p6dnfs';

   USER_ID USERNAME
---------- ------------------------------
        90 CQITJK

第一条语句的执行者包含SYS,这是由于我在排查问题是使用SYS用户执行过该语句,排除这个干扰后发现,问题sql是应用用户执行的。到此,问题基本清晰,由于应用对v$asm_diskgroup进行查询,产生了CSS initialization等待事件。数据库为单实例,且没有使用ASM,所以用户的这个查询是无意义的,只需要开发人员去掉这条sql即可。
 再补充一点,单实例、非ASM数据库,应用为什么会对v$asm_diskgroup进行查询?其实可以猜测,这就是统一开发的系统,为保证通用性,其中涉及了对一些RAC及ASM视图的查询,这里正好由于这个查询导致了问题。所以,开发人员还是应该对数据库的特性进行充分了解

 

 

还有一则RAC下面大量CSS initialization等待事件,业务反应系统特别的卡,很多SQL都执行不了

select sql_id, count(*), sum(time_waited)
     from dba_hist_active_sess_history
     where sample_time>to_date('202004010000','yyyymmddhh24mi')
     and sample_time<to_date('202004020000','yyyymmddhh24mi')
     and event='CSS initialization'
     group by sql_id;

可以看到业务执行的大量update操作达到13W次,而且等待时间特别长,要业务停止update语句执行然后再去看等待事件,发现CSS initialization消失了。系统也恢复正常了!还是业务原因导致的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值