DBWn(データベースライタ)難易度 標準無料
DBWn(Database Writer)プロセスがダーティバッファをディスクへ書き出す契機として、正しいものをすべて選べ。(複数選択)
- Aチェックポイントが発生したとき
- Bダーティバッファ数が閾値を超え、空きバッファが不足してきたとき
- C3秒ごとのタイムアウト、または表領域の OFFLINE化・正常な SHUTDOWN 時
- Dトランザクションが COMMIT されるたびに毎回同期的に
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済
解説
DBWn(Database Writer, DBW0 等)は、データベースバッファキャッシュ内のダーティブロック(変更済みで未反映のブロック)を データファイルへ書き出すバックグラウンドプロセスである。書き出しは主に次の契機で発生する。
- チェックポイント(checkpoint)の発生時:CKPT がチェックポイントを起動すると、DBWn は該当するダーティバッファをディスクへ書き出す。
- ダーティバッファ数が閾値を超えたとき:空きバッファが不足してくると、サーバープロセスが新しいブロックをキャッシュに読み込む前に DBWn へ書き出しを要求する。
- 3秒ごとのタイムアウト:定期的にも書き出しを行う。
- 表領域の OFFLINE化・読み取り専用化、正常な SHUTDOWN 等:該当ファイルの整合性を確保するために書き出す。
重要な点として、DBWn の書き出しは COMMIT のタイミングとは同期しない。COMMIT 時に同期的に書き込みが保証されるのは REDOログ(LGWR の仕事)であり、
DBWn によるデータブロックのディスク反映は遅延して(非同期に)行われるのが Oracle の設計の要点である(バッファキャッシュの効果を最大化するため)。
- DDBWn の書き出しは
COMMITに同期しない。COMMIT時に同期的に書き込まれるのは REDOログ(LGWR)であり、データブロックの反映は非同期・遅延書き込みが基本。
ひっかけ: 「COMMIT のたびに DBWn が書き出す」という誤解(D)が最頻出。COMMIT で保証されるのは REDOログの書き込みだけであり、
データブロックの書き出しは DBWn がチェックポイント等の契機で非同期に行う。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)