スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.3458
データベースのトランザクション処理において、更新前のデータが記録され、トランザクションのロールバックや読み取り一貫性のために使用されるログの名称はどれか。

【正解の解説】

Undoログ

Undoログは、料理で例えると「塩を入れすぎてしまった時に、入れる前の味に戻すためのレシピの控え」のようなものです。データベースの操作(トランザクション)を途中でやめて元に戻すロールバックや、他の人が処理中のデータを覗き見する際に過去の正常な状態を見せる読み取り一貫性のために使われます。失敗した時にタイムリープしてやり直すための必須の保険なのです。

スポンサーリンク

【その他の選択肢の解説】

Redoログ

RedoログはUndoログとペアでよく出題される試験の定番の罠です。Undoが「過去に戻るための更新前データ」であるのに対し、Redoは「未来(障害直前)に進むための更新後データ」を記録します。システムが突然クラッシュした際に、最新の正しい状態まで一気に巻き戻して再構築するために使われるため、目的が真逆であることをしっかり区別して覚えましょう。

アーカイブログ

アーカイブログは、定期的なフルバックアップと組み合わせて、ハードディスクが完全に破損したような大惨事からデータを限界まで復旧するために使われます。Undoログがメモリや一時領域でトランザクションの制御や直近のロールバックに使われるのに対し、アーカイブログは災害対策用の長期保存用テープのようなものという違いがあります。

バイナリログ

バイナリログはMySQLなどで主に使われる用語で、データベース全体の変更内容を記録する点ではRedoログやUndoログと似ていますが、主な目的は別のサーバーへデータを同期するレプリケーションや、誰がいつどんな変更を加えたかの監査証跡です。障害復旧専用のUndoログとは使われる文脈や目的が異なるため、試験では混同しないよう注意が必要です。