第5章 REDOログ・バッファのチューニング
REDOログ・バッファの特性
REDOログ・バッファ領域要求の診断
REDOログ・バッファのチューニング・ガイドライン
REDO操作の低減

REDOログ・バッファの特性

・REDOエントリには、DML文とDDL文によってデータベースに加えられた変更を再実行するのに必要な情報が含まれており、 データベースの回復に使われる。
・REDOログバッファは順次アクセスされる循環式バッファ
LOG_BUFFERREDOログバッファのサイズ(デフォルト:DB_BLOCK_SIZE×4)
OSブロックの倍数でなければならない。
・頻繁にコミットすると、LGWRはその度にログファイルへREDOエントリを書き込むため、 小さなバッファでも循環式に使用できる。
・LGWRがREDOログファイルに書き出す速さ<サーバープロセスが新しいエントリを書き込む速さ
→要求した空き領域が生成されるまで、サーバープロセスは待ち状態になる。

REDOログ・バッファ領域要求の診断

●REDOログバッファ領域要求の診断
システム統計情報 log buffer space log buffer allocation retries
ビュー V$SESSION_WAIT V$SYSSTAT
内容 セッションがログバッファの領域割り当てを待機した場合 プロセスがログバッファの領域を待機した回数
原因 ・LGWRが書き込むよりバッファが満杯になる速度が速い
・ログファイルでディスクI/Oが競合している
・ログバッファがのサイズが小さすぎる
・チェックポイントまたはログスイッチが起きた
チューニング ガイドライン log buffer space待機がないようにする log buffer allocation retriesは0に近くし、redo entriesの1%以下にする
対処方法 ・LOG_BUFFERを大きくする
・ログファイルをストライピングディスクなどの高速ディスクに移動する
・LOG_BUFFERを大きくする
・チェックポイントやアーカイブ処理を最適化する

REDOログ・バッファのチューニング・ガイドライン

ログバッファを大きくしても比率が改善されないときは、V$SYSTEM_EVENTビューを検索し、 次の待機イベントが発生していないかどうかを確認する。
待機イベント内容対処方法
log file switch completion ログスイッチによるログスイッチ待機 REDOログファイルを大きくする
log file switch (checkpoint complete) チェックポイントが完了しないことによるログスイッチ待機 チェックポイントを調整する
log file switch (archiving needed) アーカイブが完了しないことによるログスイッチ待機 アーカイブ処理を調整する

・大量なデータ更新が行われるバッチ処理では、ログスイッチの回数を減らすように、ログファイルを大きくする。

REDO操作の低減

NOLOGGINGモード:REDOログエントリの生成を抑制する
●NOLOGGINGモード
・SQL*Loaderのダイレクトパス
NOARCHIVELOGモード常にNOLOGGING
ARCHIVELOGモードNOLOGGING表属性
・制御ファイルでUNRECOVERABLE句
・ダイレクトロードインサートのNOLOGGINGオプション
・次のSQL文でNOLOGGINGオプションを指定した場合
 CREATE TABLE・・・AS SELECT
 CREATE INDEX
 ALTER INDEX・・・REBUILD
 ※ALTER TABLEを除いたCRATE/ALTER TABLE/INDEXの組み合わせ

・NOLOGGINGモードでは、バッファを行う前にメディア障害が発生した場合にはデータが失われるため、 データのロード後に必ずバックアップを取得するようにする。

第5章のまとめ

・この章で表れる初期化パラメータ
LOG_BUFFER REDOログバッファのサイズ

・この章で表れる動的パフォーマンスビュー
V$SYSTEM_EVENT REDOログバッファのログスイッチ待機イベントが発生していないかどうかを確認