WHODSREP数据库早上出现性能缓慢的问题,登陆到主机上查看,数据库中有大量的log file switch等待。
查看日志组发现当前日志组只有4组,而且是非归档模式。考虑增加日志组先缓解log file switch等待。
在尝试建了2-3组之后,发现log file switch已经缓解,而后系统出现很多latch:row cache objects等待。是由并行进程执行的。
进一步查看2458,发现是SMON进程,此时正在做大批量的并行回滚的操作。产生了大量的latch等待。
正在执行的并行回滚无法修改参数fast_start_parallel_rollback为false,改成串行。需要设置10513事件终止,然后在修改参数,在关闭10513事件。通过下列步骤将并行回滚改成串行回滚
SQL> select pid,program from v$process where program like '%SMON%'; PID PROGRAM ---------- ------------------------------------------------ 13 oracle@db01 (SMON) SQL> oradebug setorapid 13; Oracle pid: 13, Unix process pid: 3099, image: oracle@db01 (SMON) SQL> oradebug event 10513 trace name context forever ,level 2; SQL> alter system set fast_start_parallel_rollback=false; SQL> oradebug event 10513 trace name context off;
再次观察,并行进程已经没有了,SMON采用串行回滚的方式进行回滚,缓解了数据库的压力。
至此,故障算是基本上恢复了。
Post a Comment