ホーム > データベーススペシャリスト試験 > 2016年
データベーススペシャリスト試験 2016年 午前2 問16
WAL(Write Ahead Log)プロトコルの目的に関する説明のうち, 適切なものはどれか。
ア:実行中のトランザクションを一時停止させることなく, チェックポイント処理を可能にする。
イ:デッドロック状態になっているトランザクションの検出を可能にする。
ウ:何らかの理由でDBMSが停止しても, コミット済みであるがデータベースに書き込まれていない更新データの回復を可能にする。(正解)
エ:ログを格納する記録媒体に障害が発生しても, データベースのデータ更新を可能にする。
解説
WAL (Write Ahead Log) プロトコルの目的についての解説
問題の概要
WALプロトコルは、データベース管理システム(DBMS)におけるトランザクションの信頼性と障害回復を保証するための重要な技術です。問題では、WALプロトコルの目的に関して最も適切な説明を選択する必要があります。
選択肢の解説
ア: 実行中のトランザクションを一時停止させることなく, チェックポイント処理を可能にする。
- チェックポイントはデータベースの状態をある時点で保存し、リカバリー時間を短縮するための処理ですが、
- WALそのものの主目的はチェックポイント処理の中断なしの実行ではなく、トランザクションの更新の耐障害性を保証することです。
- よって、この説明はWALプロトコルの直接的な目的とは異なります。
イ: デッドロック状態になっているトランザクションの検出を可能にする。
- デッドロック検出はトランザクション管理の一部分ですが、WALはログを用いた回復機構であり、デッドロック検出とは役割が異なります。
- WALはトランザクションの更新履歴に関するものであり、デッドロック検出を目的としていません。
ウ: 何らかの理由でDBMSが停止しても, コミット済みであるがデータベースに書き込まれていない更新データの回復を可能にする。
- これはWALの中心的な目的です。
- WALでは更新データをデータベース本体に反映する前に「ログ」に書き込むため、
- システム障害が発生しても、ログを参照して「コミット済みのが反映されていない変更」を復旧できます。
- これにより、データの一貫性が保たれます。
エ: ログを格納する記録媒体に障害が発生しても, データベースのデータ更新を可能にする。
- ログ媒体に障害が発生すると、WALの仕組み自体が機能しなくなります。
- したがって、これはWALの目的でも保証されていません。
WALプロトコルの基本的な仕組みと目的
- WAL (Write Ahead Log) は「先にログに書け」という意味で、
- トランザクションがデータベースの内容を変更する際、まずその変更内容をログ(トランザクションログ)に記録します。
- この順序を守ることで、障害発生時にログを用いて更新操作をやり直す(リドゥ)ことや取り消す(アンドゥ)ことが可能になります。
特に、コミットされたトランザクションの変更が必ずログに残ってから本体に反映されることが重要です。これにより、万一の障害発生時にコミット済みであるにもかかわらずデータベース本体に反映されていない変更をログから再適用して回復できるのです。
まとめ
- **正解はウの「コミット済みの更新データの回復を可能にする」**です。
- WALは障害回復・データの一貫性保証に不可欠な機構であり、
- コミット確定後も障害でデータがまだ反映されていない場合に、ログから正しく復元することを目的としています。
もしさらに詳しい説明や他の選択肢に関する疑問があればお知らせください。