天天看点

解决因redo日志不足,导致执行DML SQL缓慢问题

应用环境发现数据库DML操作特别慢,于是查看表空间使用率,发现临时表空间使用不足,增扩临时表空间:

alter tablespace TEMP add tempfile '/app/oracle/oradata/webdb/temp01.dbf' size 10240m autoextend on next 1024m maxsize 30G;

alter tablespace XXX_TEMP add tempfile '/app/oracle/oradata/webdb/XXX_temp02.dbf' size 512m autoextend on next 512m;

问题依旧,查找Oracle事件日志文件(/app/oracle/diag/rdbms/webdb/webdb/alert):

select value from v$diag_info where name='Diag Alert';

解决因redo日志不足,导致执行DML SQL缓慢问题

通过查看事件日志,发现了问题原因:redo文件组太少,导致LGWR进程在切换到新redo file时,等待旧数据写入(dbwn)数据文件;

Oracle 的Online redo log 是为确保已经提交的事务不会丢失而建立的一个机制。 这种健全的机制,能让数据库crash时,恢复数据,保证数据不丢失。

解决方案:增加日志组,问题恢复。

select * from v$log;