您的位置:澳门威利斯人赌场 > 科技中心 > Oracle 11g新特性direct path read引发的系统停运故障诊

Oracle 11g新特性direct path read引发的系统停运故障诊

发布时间:2019-08-03 06:12编辑:科技中心浏览(71)

    还记得 Steorn 吗?那间宣称可以凭空产生能源的公司?就在我们已为他们已经卷款潜逃的时候,他们竟然发出消息说要在伦敦 Kinetica 博物馆公开展示第一个试作品「Orbo」十天。虽然原本预定要有「发布会、参观解说和网络直播」,但绕了一圈的结果却是「因技术问题而取消」。会是怎样的技术问题呢?内藏的电池故障?卷款潜逃用的渔船故障?[原文连接]Read -- Kinetica museum (not announced yet)Read -- rumored announcementRead -- world's first "free energy" live demo

    黎俊杰 | 2016-07-28 14:37

    声明:部分表名为了脱敏而用XX代替

    1、故障现象

    (1)一个业务系统输入用户名与密码后无法进入首页,表现为一直在运行等待,运行缓慢

    (2)整个系统无法正常使用,接近停运状态

    2、故障解决方法

    调整数据库参数alter system setevent='10949 trace name context forever, level 1'来关闭“direct path read”(直接路径读)特性,使SQL语句可以从缓存中查询数据,达到降低I/O读取量,使全表扫描的数据从缓存中读取,加快SQL语句运行速度的目的。

    3、故障原因总结

    (1)由于部分SQL语句设计或编写效率低下,以及表缺少适应的索引,导致SQL语句需要全表扫描,在表较小时,ORACLE数据库将数据读取到缓存后,后续虽然是全表扫描,但均是从缓存中读取,所以问题未体现出来

    (2)在表的大小不断增大后,根据ORACLE 11g数据库的算法,在表达到db_cache_size(GB)的2%(默认值)以后,认为采用直接路径读(跳过缓存,直接从磁盘文件中全扫描读取)

    澳门威利斯人赌场,(3)DX_T_XXVIATE表大小为1GB,在大量反复以direct pathread磁盘重复读取的情况下,消耗大量的I/O资源,将服务器I/O几乎耗尽

    (4)在主机I/O耗尽的情况下,系统的读、写,均几乎处于瘫痪状态

    (5)在关闭ORACLE 11G数据库的direct path read新特性功能后,读取方式恢复到从缓存中读取,磁盘读降到“0”,系统恢复正常

    4、改进建议

    (1)优化访问DX_T_XXVIATE 相关的SQL语句与设计合适的索引,避免大表全表扫描。

    5、故障原因分析

    5.1 7月11日故障时段数据库服务器I/O等待严重

    澳门威利斯人赌场 1

    5.2 7月11日故障时段磁盘响应非常缓慢

    澳门威利斯人赌场 2

    5.3 对比故障当日(7月11日)与上周的I/O磁盘读取量,比上周大十倍

    澳门威利斯人赌场 3

    故障前、中、后磁盘读取量对比图:

    澳门威利斯人赌场 4

    上面高的蓝色线,是故障当日(2016年7月1日,周一)的磁盘Disk Read KB/s指标线

    5.4 高度消耗I/O的SQL语句。

    上面SQL_ID为b8m6wy846qgbk的SQL语句,physical reads鹤立鸡群,可见此SQL语句的影响最为严重。

    5.5 全表扫描单次超过6秒的表与其SQL语句统计。

    统计汇总时间:08:00—10:00

    澳门威利斯人赌场 5

    澳门威利斯人赌场 6

    统计时间:08:00—10:00单次扫描超过6秒的SQL语句及时长详细清单

    本文由澳门威利斯人赌场发布于科技中心,转载请注明出处:Oracle 11g新特性direct path read引发的系统停运故障诊

    关键词: