これをログスイッチと呼びます。
1時間に1度を目処に考えていますが、頻繁に発生するとパフォーマンスが落ちるのでチューニングが必要です。
ログスイッチのタイミングはアラートログから調べることができます。
ログスイッチはロックによる待機を最小限にするため、次の順に処理します。$ grep -B1 "LGWR switch" $ORACLE_BASE/admin/sss01/bdump/alert_sss011.log | tail -1000 | grep "Mar 6" Sun Mar 6 00:29:08 2011 Sun Mar 6 02:07:04 2011 Sun Mar 6 02:07:43 2011 Sun Mar 6 07:31:04 2011 Sun Mar 6 07:32:33 2011 Sun Mar 6 13:57:04 2011 Sun Mar 6 13:58:38 2011 Sun Mar 6 18:57:06 2011 Sun Mar 6 18:58:25 2011
アーカイブログモードでログスイッチが高頻度すぎると、ディスクI/Oが発生してパフォーマンスが低下します。1)REDOログファイルのローテート 2)古いREDOログファイルをアーカイブREDOログファイルとして書き出す(アーカイブログモード)
アーカイブREDOログファイルへの書き出しが完了しないと、そのREDOファイルは次回REDOログとして利用できません。
最悪の場合、REDOログファイルのローテートが1周してもアーカイブREDOログファイルへの書き出しが完了しません。
そうなると、利用出来るREDOログがなくなるため、ローテート待ちでデータベースがロックします。
注意として、アラートログの時刻はローテートが完了した時刻です。
アーカイブREDOログの書き出し完了時刻もチェックするといいと思います。
set pages 10000 set lines 100 alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss'; select SEQUENCE#,COMPLETION_TIME from ( select row_number() over (order by COMPLETION_TIME desc) as rn, SEQUENCE#, COMPLETION_TIME from v$archived_log ) where rn<=10 SEQUENCE# COMPLETION_TIME ---------- ------------------- 2750 2011/03/07 00:21:59 2656 2011/03/06 18:58:26 2749 2011/03/06 18:58:25 2748 2011/03/06 18:58:24 2655 2011/03/06 18:58:22 2747 2011/03/06 13:58:39 2654 2011/03/06 13:58:39 2746 2011/03/06 13:58:36 2653 2011/03/06 13:58:32 2652 2011/03/06 07:32:34
0 件のコメント:
コメントを投稿