log file sync: 待機: コミット時に LGWR が redo をディスクにフラッシュするのをセッションが待っている
Oracle意味
セッションが COMMIT すると、LGWR が redo レコードを redo ログファイルに書き込む (フラッシュする) のを待つ。この待機が多い場合はコミット遅延が発生している。
原因
遅い redo ログディスク (高い I/O 遅延)、コミット頻度が高すぎるアプリケーション (行ごとのコミット)、LGWR プロセスの CPU 圧迫、または非常に多い redo 量。
対処方法
AWR/Statspack で平均待機時間を測定する。redo ログファイルを高速・低遅延のディスク (SSD) に移す。アプリケーションの不要なコミット頻度を減らし、バッチ処理をまとめる。必要なら COMMIT_LOGGING/COMMIT_WAIT (commit_write) オプションを業務要件と照らして評価する。警告: NOWAIT/BATCH は耐久性を下げ、コミット済みに見えるトランザクションがクラッシュ時に失われる可能性がある。損失が許容される処理に限り、セッションまたは文レベルでのみ使用し、システム全体では有効にしない。LGWR とストレージの遅延を併せて調べる。
同じデータベースの他の項目
- ORA-01722Invalid number(数値が無効)
- ORA-02049Timeout: distributed transaction waiting for lock(分散トランザクションのロック待機タイムアウト)
- enq: TX - row lock contention待機: 別トランザクションが保持する行レベルロックでセッションがブロックされている
- db file sequential read待機: 単一ブロックの物理読み取り。通常はインデックスまたはテーブルの参照
- db file scattered read待機: マルチブロックの物理読み取り。通常は全表スキャンまたはインデックス高速全スキャン
- buffer busy waits待機: 別セッションが読み取り中または変更中のバッファをめぐる競合
- gc buffer busy待機 (RAC): インスタンス間で転送中のキャッシュフュージョンブロックをめぐる競合