最終更新日:2026年8月3日
fe fe-technology database
まず結論
データベースのログファイルとは、データベースに対して行われた更新内容を記録するファイルです。
基本情報技術者試験では、次の対応を押さえると判断しやすくなります。
更新前・更新後の値を記録する
→ ログファイル
未完了の更新を取り消す
→ ロールバック
完了済みの更新を再反映する
→ ロールフォワード
ログファイルは、障害発生時にデータベースを整合性のある状態へ戻すために使います。
更新履歴
+
バックアップ
+
チェックポイント
↓
障害回復
直感的な説明
ログファイルは、データベースの変更履歴ノートと考えると分かりやすいです。
たとえば、口座残高を次のように更新したとします。
更新前:10,000円
更新後:7,000円
更新処理の途中で障害が発生すると、処理が最後まで完了したのか、それとも途中で止まったのかを確認する必要があります。
そこで、データベース管理システムは更新内容をログへ記録します。
どのデータを
どの値から
どの値へ
変更したか
この記録を使えば、未完了の処理を取り消したり、完了済みの処理を再現したりできます。
定義・仕組み
データベースのログファイルは、トランザクションによる更新履歴を保存するファイルです。
ログには、実装や方式に応じて、次のような情報が記録されます。
- トランザクションの開始
- 更新対象
- 更新前の値
- 更新後の値
- コミット
- ロールバック
- チェックポイント
ログファイルは、ジャーナルファイルと呼ばれることもあります。
トランザクションとは
トランザクションとは、データベース上で一まとまりとして扱う処理です。
銀行振込みでは、次の二つを一つの処理として扱う必要があります。
送金元の残高を減らす
+
送金先の残高を増やす
片方だけ成功すると、データベースの整合性が崩れます。
そのため、トランザクションは原則として、次のどちらかになります。
すべて成功する
→ コミット
途中で失敗する
→ すべて取り消す
コミット
コミットは、トランザクションの処理結果を確定することです。
処理が正常に完了
↓
コミット
↓
更新内容を確定
コミット済みの更新は、障害回復時に必要に応じて再反映します。
更新前情報と更新後情報
ログで重要なのは、更新の前後を区別することです。
| 情報 | 使い道 |
|---|---|
| 更新前の値 | 未完了の処理を取り消す |
| 更新後の値 | 完了済みの処理を再反映する |
覚え方は次のとおりです。
前へ戻す
→ 更新前の値
先へ進める
→ 更新後の値
ロールバック
ロールバックは、未完了のトランザクションによる更新を取り消す処理です。
たとえば、次の更新がコミット前に中断したとします。
残高:10,000円 → 7,000円
更新前の値を使い、元の状態へ戻します。
7,000円 → 10,000円
ロールバック
= 未完了の更新を取り消す
= 更新前の値を使う
ロールフォワード
ロールフォワードは、コミット済みの更新をログから再反映する処理です。
バックアップを復元した直後のデータベースには、バックアップ取得後の更新が含まれていません。
そこで、ログに記録された更新後の値を順に反映します。
バックアップを復元
↓
ログの更新記録を反映
↓
障害発生前の状態へ近づける
ロールフォワード
= 完了済みの更新を再反映する
= 更新後の値を使う
チェックポイント
チェックポイントは、障害回復を開始するときの基準点です。
データベース管理システムは、一定の時点でメモリ上の更新内容をディスクへ反映し、その位置を記録します。
ここまではディスクへ反映済み
→ チェックポイント
チェックポイントがあることで、ログの先頭からすべてを調べる必要がなくなり、回復処理を効率化できます。
障害回復の基本イメージ
障害回復では、バックアップ、チェックポイント、ログを組み合わせます。
1. バックアップからデータベースを復元する
2. チェックポイントを確認する
3. コミット済みの処理をロールフォワードする
4. 未コミットの処理をロールバックする
実際の順序や方法はログ方式によって異なるため、試験では問題文の条件を優先します。
公式の出題範囲やシラバスは、IPA:基本情報技術者試験から確認できます。
科目Aでどう出る?
科目Aでは、ファイルや回復処理の説明から、対応する用語を選ぶ問題が出ます。
特に次の対応を覚えておくと、選択肢を切りやすくなります。
| 問題文の手掛かり | 用語 |
|---|---|
| 更新前・更新後の値を記録 | ログファイル |
| 未完了の処理を取り消す | ロールバック |
| コミット済みの処理を再反映 | ロールフォワード |
| 回復処理の開始位置 | チェックポイント |
| データベースの複製 | バックアップ |
| データベース内容をまとめて出力 | ダンプ |
試験中の判断手順
1. 更新履歴を記録するのか確認する
2. 更新前・更新後という表現を探す
3. 取り消しならロールバックと判断する
4. 再反映ならロールフォワードと判断する
5. コピーや基準点などの別用語と切り分ける
選択肢の切り分け
ダンプファイル
ダンプファイルは、データベースの内容をファイルへ書き出したものです。
データベースの内容をまとめて出力
→ ダンプファイル
主に、移行、調査、バックアップなどに使われます。
更新前後の値を時系列で記録するファイルではありません。
チェックポイントファイル
チェックポイントは、回復処理の開始位置を示す目印です。
回復の基準点
→ チェックポイント
更新内容そのものを継続的に記録する中心的なファイルはログファイルです。
バックアップファイル
バックアップファイルは、ある時点のデータベースのコピーです。
ある時点のDBの複製
→ バックアップ
バックアップ取得後の更新を復元するには、ログによるロールフォワードが必要です。
ログファイル
ログファイルは、データベースの更新履歴を記録します。
更新前・更新後
+
障害回復
→ ログファイル
どんな場面で使う?
ログファイルは、データベース障害からの回復に使われます。
たとえば、次のような障害です。
- サーバの停止
- 電源断
- DBMSの異常終了
- トランザクション処理中のエラー
- 記憶装置の障害
障害の種類によっては、ログだけでは復旧できません。
記憶装置そのものが壊れた場合は、一般にバックアップから復元し、その後ログを使って更新を再反映します。
バックアップ
→ 復旧の土台
ログ
→ バックアップ後の更新を再現
また、通常時のトランザクション管理にも使われます。
処理途中でエラーが起きた場合、ログを使って更新を取り消し、処理開始前の整合性のある状態へ戻します。
よくある誤解・混同
ログファイルは人が読む操作履歴だけを保存する
誤りです。
データベースのトランザクションログは、障害回復のために更新前後の情報を記録します。
アクセスログ
→ 誰がいつアクセスしたか
DBのトランザクションログ
→ 更新を取り消す・再反映する
バックアップがあればログは不要
誤りです。
バックアップは取得時点の状態しか保存していません。
バックアップだけ
→ 過去のある時点まで
バックアップ+ログ
→ その後の更新も復元できる
チェックポイントにはすべての更新内容が入っている
誤りです。
チェックポイントは、回復処理を効率化するための基準点です。
更新履歴そのものを保存する中心的な仕組みはログです。
ロールバックとロールフォワードを逆にする
ロールバック
→ 戻す
→ 未完了の処理を取り消す
ロールフォワード
→ 前へ進める
→ 完了済みの処理を再反映する
英語の意味から覚えると整理しやすいです。
- roll back:元へ戻す
- roll forward:先へ進める
コミット前の処理をロールフォワードする
誤りです。
コミット前の未完了処理は、原則としてロールバックの対象です。
コミット済み
→ 再反映
未コミット
→ 取り消し
ダンプとバックアップは必ず同じもの
必ずしも同じではありません。
ダンプは、データベースの内容を論理的な形式で書き出す方法を指すことがあります。
バックアップは、障害に備えて復元可能なコピーを保存することを目的とします。
試験では、次のキーワードで切り分けます。
移行・エクスポート・内容を書き出す
→ ダンプ
障害に備えた複製・復元
→ バックアップ
確認問題(基本情報技術者試験対策)
データベース障害の回復に関する説明として、適切なものはどれか。
- ア. ロールバックは、コミット済みの更新をバックアップ後に再反映する処理である。
- イ. ロールフォワードは、未コミットの更新を更新前の値へ戻す処理である。
- ウ. チェックポイントは、ログを用いた回復処理の基準となる位置を示す。
- エ. ダンプファイルは、更新前と更新後の値を時系列に記録するファイルである。
▶ クリックして答えと解説を見る(ここを開く)
正解:ウ
チェックポイントは、障害回復を始めるときの基準点です。
アはロールフォワード、イはロールバックの説明が逆です。
エの更新前・更新後の値を記録するファイルは、ログファイルです。
まとめ(試験直前用)
- ログファイルは、データベースの更新履歴を記録する
- 更新前の値は、ロールバックに使う
- 更新後の値は、ロールフォワードに使う
- チェックポイントは、回復処理の基準点
- バックアップは、ある時点のデータベースのコピー
- ダンプは、データベース内容を書き出したファイル
更新履歴
→ ログ
未完了を取り消す
→ ロールバック
完了済みを再反映
→ ロールフォワード