應用環境發現資料庫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檔案組太少,導緻LGWR程序在切換到新redo file時,等待舊資料寫入(dbwn)資料檔案;
Oracle 的Online redo log 是為確定已經送出的事務不會丢失而建立的一個機制。 這種健全的機制,能讓資料庫crash時,恢複資料,保證資料不丢失。
解決方案:增加日志組,問題恢複。
select * from v$log;