Oracle回滚导致系统响应异常缓慢

来源:互联网 发布:android网络编程书籍 编辑:程序博客网 时间:2024/06/09 21:08

症状:
1)早上决策运算过程没有正常执行;
2)大量IO占用,且未出现下降;
3)客户端几乎无法连接数据库;
4)通过EM查看到有大量由于snmp、sysman在执行相关语句的阻塞。

疑问:
1)为毛客户端连接全部KILL后,系统仍然有大量IO;
2)重启后,问题仍存在,现象一样;
3)为什么会有那么 多回滚?

解决:
由于是数据库本身在解决数据一致性问题,所以偿试KILL snmp、sysman进程,重启数据库后问题仍然存在,这是因为数据库本身要保证数据库一致性,所以不管怎么杀进程,只要重启smon进程仍会再次执行。
再有同事反馈,在前一个晚上执行了一条大表数据插入语句,最终却没有正常提交,后续的决策运算进行了类似操作,尽管不同表,但由于IO已经几乎被消耗掉后,造成的大量的IO等待;
另一方面,系统本身的redoLOG设置明显不足也是另一个诱因。
现在能进行的两种办法,一是让系统加快回滚速度,另一种是没有时间等待回滚,直接停止。
这里采用后一种办法。

SQL> shutdown immediate;SQL> startup nomount;SQL> alter system set fast_start_parallel_rollback=FALSE sope=spfile;SQL> shutdown immediate;SQL> startup;

另一种办法是加快回滚速度,需要设置回滚速度参数

SQL> ALTER SYSTEM SET FAST_START_PARALLEL_ROLLBACK = HIGH

查看回回滚进度

SQL> select * from v$transaction;
0 0
原创粉丝点击