今天发现一台服务器上的数据库响应速度很慢
问题描述
1、应用连接数据异常缓慢,包括客户端使用plsql连接;
2、数据库主机cpu占用率居高不下,IO写入居高不下
问题研究
查看alter日志发现大量的
Thread 1 cannot allocate new log, sequence xxxx
Checkpoint not complete
表明redo文件组太少,导致LGWR进程在切换到新redo file时,等待旧数据写入(dbwn)数据文件;
解决办法
1、增加redo file 组;
Alert database add logfile group 4(‘/u01/app/oracle/oradata/oracl/redo04.log’) size100M;
Alert database add logfile group 5(‘/u01/app/oracle/oradata/oracl/redo05.log’) size100M;
Alert database add logfile group 6(‘/u01/app/oracle/oradata/oracl/redo06.log’) size100M;
根据需要可添加更多的redo文件组。
2、加快回滚速度
提高并行回滚进程的数量,设置为HIGH时回滚进程=4*cpu数。
ALTER SYSTEM SET FAST_START_PARALLEL_ROLLBACK=HIGH
相关链接:
http://hi.baidu.com/dba_hui/blog/item/92a630e90b18d83b2cf53470.html