当前位置:  数据库>oracle

单实例非ASM中 CSS initialization等待事件解决

    来源: 互联网  发布时间:2017-06-18

    本文导语: 环境描述:Oracle 11.2.0.4  单实例 操作系统:Microsoft(R) Windows(R) Server 2003 Enterprise x64 Edition 以下是数据库AWR中的TOP等待事件: Total Wait Time (sec)Wait Avg(ms)% DB timeWait Class DB CPU   1546.9   42.7   log file sync 810,467 1440.1 2 39.7 Commit db fil...

环境描述:Oracle 11.2.0.4  单实例

操作系统:Microsoft(R) Windows(R) Server 2003 Enterprise x64 Edition

以下是数据库AWR中的TOP等待事件:

Total Wait Time (sec)Wait Avg(ms)% DB timeWait Class DB CPU   1546.9   42.7   log file sync 810,467 1440.1 2 39.7 Commit db file sequential read 72,267 452.5 6 12.5 User I/O direct path write temp 31,717 220.4 7 6.1 User I/O CSS initialization 18 18 997 .5 Other Disk file operations I/O 2,068 14.3 7 .4 User I/O SQL*Net message to client 2,125,801 7.6 0 .2 Network direct path read 716 5.9 8 .2 User I/O control file sequential read 4,450 5.9 1 .2 System I/O read by other session 236 5.3 23 .1 User 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 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视图的查询,这里正好由于这个查询导致了问题。所以,开发人员还是应该对数据库的特性进行充分了解。

如何将ASM中的数据文件复制到操作系统中

Oracle 11g RAC ASM磁盘全部丢失后的恢复

Oracle 11g从入门到精通 PDF+光盘源代码

RHEL6 ASM方式安装Oracle 11g R2

Oracle 10g 手工创建ASM数据库

Oracle 10g R2创建ASM实例Step By Step


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • 可以有其他两个类的实例同时调用一个java实例的两个方法吗?
  • Bean的作用域及Spring 暴露 Bean实例的方法介绍
  • 请问:类的实例化是怎么一回事?如何进行实例化?
  • Python 3 Tkinter教程之事件Event绑定处理代码实例
  • 万般火急!关于java打印,已经得到printerJob实例,那么怎么通过它得到Pageable实例?
  • Python namedtuple(命名元组)使用实例
  • 类的方法和实例方法,类字段和实例字段有什么不同,在使用上?
  • boost库区间range基本原理及使用实例
  • 既然在定义实例变量的时候可以初始化实例变量的值,那还要构造函数干吗?谢谢!
  • php session_id()函数介绍及代码实例
  • 怎么样判断一个类是否已经被实例化,并关闭这个实例,而且保证系统不退出(详情见内)
  • .NET下 c#通过COM组件操作并导出Excel实例代码
  • 请问在一个servlet里取得一个用singleton模式实现的类实例,那么这个类实例的生命周期是怎样的?
  • java Servlet获取和设置cookie实例代码
  • C#静态变量与实例变量实例分析
  • Mysql Select查询执行流程介绍及实例
  • 实例变量和类变量
  • c++类库Boost::bimap(双向映射)介绍及使用实例
  • 又谁能告诉我实例因该怎么去理解它?????????/
  • OpenStack中compute介绍和compute实例需要注意的问题
  • Keepalived 能配两个虚拟ip吗,匹配两个数据库实例?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3