Oracle案例:日志组处于高激活状态

2/9/2008来源:Oracle教程人气:6165

平台:SunOS 5.8 Generic_108528-23 sun4u sparc SUNW,Ultra-EnterPRise 数据库:8.1.5.0.0 症状:响应缓慢,应用请求已经无法返回。 登陆数据库,发现redo日志组除current外都处于active状态。
Oracle案例:日志组处于高激活状态(图一)
图1
假如日志都处于active状态,那么显然DBWR的写已经无法跟上log switch触发的检查点。 接下来让我们检查一下DBWR的繁忙程度:
Oracle案例:日志组处于高激活状态(图二)
图2
DBWR的进程号是2266。 使用Top命令观察一下:
Oracle案例:日志组处于高激活状态(图三)
图3
我们注重到,2266号进程消耗的CPU不过0.18%,显然并不繁忙,那么瓶颈就很可能在IO上。 使用IOSTAT工具检查IO状况。
Oracle案例:日志组处于高激活状态(图四)
图4
我们注重到,存放数据库的主要卷c1t1d0的繁忙程度始终处于99~100,而写速度却只有500K/s左右,这个速度是极为缓慢的。 (%b percent of time the disk is busy (transactions in progress) Kw/s kilobytes written per second) 根据我们的常识T3盘阵通常按Char写速度可以达到10M/s左右,以前测试过一些Tpcc指标。 而正常情况下的数据库随机写通常都在1~2M左右,显然此时的磁盘已经处于不正常状态,经过确认的确是硬盘发生了损坏,Raid5的Group中损坏了一块硬盘。 经过更换以后系统逐渐恢复正常。