システム監査技術者 2018年 午前2 問17
問題文
媒体障害の回復において、最新のデータベースのバックアップをリストアした後に、トランザクションログを用いて行う操作はどれか。
選択肢
ア:バックアップ取得後でコミット前に中断した全てのトランザクションをロールバックする。
イ:バックアップ取得後でコミット前に中断した全てのトランザクションをロールフォワードする。
ウ:バックアップ取得後にコミットした全てのトランザクションをロールバックする。
エ:バックアップ取得後にコミットした全てのトランザクションをロールフォワードする。(正解)
🔒 解説は解答すると表示されます
データベースの媒体障害回復【午前2解説】
正解の理由
最新のバックアップをリストアしても、そのバックアップを取得した後に行われた更新は復元されません。そこで、トランザクションログを使ってバックアップ取得後の処理を再現します。
バックアップ取得後にコミットされたトランザクションは、処理を完了させる必要があるため、ログの内容をデータベースに反映する「ロールフォワード」を行います。したがって、該当するのはエです。
解法ステップ
- 媒体障害からの回復では、まずバックアップをリストアします。
- バックアップ取得後の更新を、トランザクションログで確認します。
- コミット済みのトランザクションは、変更を再適用するためロールフォワードします。
- コミット前に中断したトランザクションは、未完了の変更を取り消すためロールバックします。
選択肢別の誤答解説
- ア:コミット前に中断したトランザクションをロールバックする処理自体は、回復処理で行われることがあります。ただし、設問が問うているのは、バックアップ取得後にコミットしたトランザクションへの操作です。
- イ:コミット前に中断したトランザクションをロールフォワードするのは誤りです。未完了の処理を完了させるのではなく、変更を取り消します。
- ウ:バックアップ取得後にコミットしたトランザクションは、確定した処理です。ロールバックではなく、ロールフォワードによって変更を反映します。
- エ:バックアップ取得後にコミットしたトランザクションを、トランザクションログに基づいて再適用します。媒体障害からの回復で行う操作として適切です。
よくある誤解
- ロールフォワードとロールバックを逆に覚える
ロールフォワードは変更を再適用し、ロールバックは変更を取り消します。 - バックアップをリストアすれば最新状態に戻ると思う
バックアップ取得後の更新は含まれないため、ログを使った回復が必要です。 - コミット前の処理もログで再実行すると考える
コミット前に中断した処理は未完了なので、通常はロールバックします。
補足コラム
媒体障害からの回復では、一般に次のように処理します。
- コミット済みのトランザクション:ロールフォワード(再実行)
- コミット前に中断したトランザクション:ロールバック(取消し)
このように、コミットの有無でログを使った回復方法を判断すると、選択肢を見分けやすくなります。
FAQ
Q. ロールフォワードでは、バックアップ後のすべての処理を再実行するのですか?
A. 基本的には、コミット済みの処理を再適用します。コミット前に中断した処理は、未完了の変更を取り消します。
A. 基本的には、コミット済みの処理を再適用します。コミット前に中断した処理は、未完了の変更を取り消します。
Q. ロールバックは媒体障害の回復では使わないのですか?
A. 使うことがあります。未完了のトランザクションが残っている場合、その変更を取り消すためにロールバックします。
A. 使うことがあります。未完了のトランザクションが残っている場合、その変更を取り消すためにロールバックします。
関連キーワード: トランザクションログ、ロールフォワード、ロールバック、バックアップ、コミット

\ せっかくなら /
システム監査技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

