分散データベースシステムにおいて,一連のトランザクション処理を行う複数サイトに更新可能かどうかを問い合わせ,すべてのサイトが更新可能であることを確認した後,データベースの更新処理を行う方式はどれか。
正答1
解説
正解は1です。
分散データベースでは、1つのトランザクションが複数のサイトのデータベースを更新することがあります。
すべてのサイトで更新が確定するか、すべてのサイトで取り消されるかのどちらかにしないと、データに矛盾が生じます。
【選択肢別解説】
1:○ 2相コミットは、第1相で各サイトに更新可能かを問い合わせ、全サイトから可能と応答があった場合だけ、第2相でコミットを指示する方式です。
1つでも不可なら全サイトでロールバックします。
2:× 排他制御は、複数のトランザクションが同じデータを同時に更新して矛盾が生じないよう、ロックなどで制御する仕組みです。
3:× ロールバックは、障害時などに更新前ログを使って、トランザクションの更新を取り消して開始前の状態に戻す処理です。
4:× ロールフォワードは、バックアップを復元した後に更新後ログを使って、障害直前の状態まで更新をやり直す処理です。
【ポイント】
2相コミットの第1相を「準備(コミット準備)」、第2相を「コミット」と呼びます。
分散データベースの原子性(すべてかゼロか)を保証するための代表的な方式です。