REDOログバッファ難易度 高無料
LGWR(ログライタ)が REDOログバッファの内容を REDOログファイルへ書き出すトリガーとして、正しいものをすべて選べ。(複数選択)
- Aトランザクションが COMMIT されたとき
- BREDOログバッファが 1/3 満杯になったとき、または約1MBのREDOが蓄積されたとき
- C3秒ごとのタイムアウト、または DBWn がダーティバッファを書き出す前(Write-Ahead Logging)
- D読み取り専用の SELECT 文が実行されたとき
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済
解説
REDOログバッファは SGA 内の小さなリングバッファで、変更(REDOエントリ)を一時的に保持する。 このバッファの内容を REDOログファイルへ書き出すのが LGWR(Log Writer)バックグラウンドプロセスであり、次のいずれかの条件で書き出しをトリガーする。
- COMMIT の発行:トランザクションが
COMMITされると、LGWR は該当セッションの REDO を同期的にディスクへ書き込む(コミットが完了したと応答を返す前に書き込みを保証する=耐久性の担保)。 - REDOログバッファが 1/3 満杯になったとき:バッファがあふれる前に定期的にフラッシュする。
- REDOログバッファに約1MBのREDOが蓄積されたとき:容量ベースのしきい値。
- 3秒ごと(タイムアウト):上記の条件に達していなくても、一定間隔で書き出す。
- DBWn がダーティバッファをディスクへ書き出す前:Write-Ahead Logging の原則により、対応する REDO が先にディスクへ書かれていることを保証するため、DBWn は書き出し前に LGWR に先行書き込みを要求する。
一方、単純な SELECT(読み取り専用の問合せ)は REDOを生成しないため、LGWR の書き出しトリガーにはならない。
- D読み取り専用の
SELECTは REDO エントリを生成しないため、LGWR の書き出しをトリガーする条件には該当しない。
ひっかけ: 「SELECT でも何らかの理由で LGWR が動く」という誤解(読み取り専用は REDO を生成しない)。
また「DBWn が先に書き込みを完了させてから LGWR が REDO を書く」という順序の逆転も罠=正しくはWrite-Ahead Logging=REDO が先。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)