转载

oracle 服务器断电重启导致数据库性能急剧下降之等待事件wait for a undo record

今天,一地市技术反馈,他们数据库无论做什么操作都很慢,让帮忙看下怎么回事。

环境:

服务器:windows server 2008

数据库:oracle 11.2.0.4 单实例

登录数据库服务器,查看资源使用情况,IO比较高,CPU及内存正常:

oracle 服务器断电重启导致数据库性能急剧下降之等待事件wait for a undo record

查看数据库等待事件,wait for a undo record比较突出:

oracle 服务器断电重启导致数据库性能急剧下降之等待事件wait for a undo record

查看数据库回滚进程状态,发现有大量进程处于recovering状态:

select * from v$fast_start_servers where state<>'IDLE';

oracle 服务器断电重启导致数据库性能急剧下降之等待事件wait for a undo record

查看数据库事务回滚量,发现要回滚的事务量比较大:

SQL> select usn, state, undoblockstotal "Total", undoblocksdone "Done", undoblockstotal-undoblocksdone "ToDo",
         decode(cputime,0,'unknown',sysdate+(((undoblockstotal-undoblocksdone) / (undoblocksdone / cputime)) / 86400)) "Estimated time to complete"
   from v$fast_start_transactions;

oracle 服务器断电重启导致数据库性能急剧下降之等待事件wait for a undo record
进一步与地市技术确认近来数据库是否发生重大操作:

oracle 服务器断电重启导致数据库性能急剧下降之等待事件wait for a undo record

经确认是数据库服务器断电导致服务器重启后,数据库大事务回滚,明显的等待事件是:wait for a undo record,

需要等待数据库完成回滚,wait for a undo record等待事件消失,数据库恢复正常:
oracle 服务器断电重启导致数据库性能急剧下降之等待事件wait for a undo record
oracle 服务器断电重启导致数据库性能急剧下降之等待事件wait for a undo record

正文到此结束
Loading...