1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【DBスペシャリスト試験対策】Day 4:リカバリとログ管理まとめ

Posted at

【DBスペシャリスト試験対策】Day 4:リカバリとログ管理まとめ


✅ 1. REDOログとUNDOログの違い

種類 内容 使用タイミング
REDOログ 更新後の値を記録 コミット済みを再実行(クラッシュ復旧時)
UNDOログ 更新前の値を記録 ロールバック時、未コミットの取消
  • REDO → 「やり直し」
  • UNDO → 「取り消し」

✅ 2. Write-Ahead Logging(WAL)

「データの更新よりも先にログを書け」

  • REDO/UNDOログをディスクに先に書いてから、データ変更を行う
  • 万が一クラッシュしても、ログからリカバリ可能
  • WALは性能と安全性を両立させるための基本原則

✅ 3. チェックポイントとは?

「ここまでのデータは確実にディスクに書いた」印

  • チェックポイントを設けることで、クラッシュ時のリカバリを短縮
  • 実際の動作:
    1. バッファ内の変更済みページを書き出す
    2. WALログのLSNを更新
    3. 以降のログだけあれば復旧可能に!

✅ 4. クラッシュリカバリの流れ

  1. チェックポイント以降のログを読み込む
  2. REDO(再実行):コミット済みのトランザクションを復元
  3. UNDO(取り消し):未コミットの操作を取り消す

例:

[START T1] → [UPDATE A] → [COMMIT T1] → REDO対象
[START T2] → [UPDATE B] → (クラッシュ)→ UNDO対象

✅ 5. InnoDBとPostgreSQLの実装比較

【DBスペシャリスト試験対策】Day 4:リカバリとログ管理まとめ


✅ 1. REDOログとUNDOログの違い

種類 内容 使用タイミング
REDOログ 更新後の値を記録 コミット済みを再実行(クラッシュ復旧時)
UNDOログ 更新前の値を記録 ロールバック時、未コミットの取消
  • REDO → 「やり直し」
  • UNDO → 「取り消し」

✅ 2. Write-Ahead Logging(WAL)

「データの更新よりも先にログを書け」

  • REDO/UNDOログをディスクに先に書いてから、データ変更を行う
  • 万が一クラッシュしても、ログからリカバリ可能
  • WALは性能と安全性を両立させるための基本原則

✅ 3. チェックポイントとは?

「ここまでのデータは確実にディスクに書いた」印

  • チェックポイントを設けることで、クラッシュ時のリカバリを短縮

  • 実際の動作:

    1. バッファ内の変更済みページを書き出す
    2. WALログのLSNを更新
    3. 以降のログだけあれば復旧可能に!

✅ 4. クラッシュリカバリの流れ

  1. チェックポイント以降のログを読み込む
  2. REDO(再実行):コミット済みのトランザクションを復元
  3. UNDO(取り消し):未コミットの操作を取り消す

例:

[START T1] → [UPDATE A] → [COMMIT T1] → REDO対象
[START T2] → [UPDATE B] → (クラッシュ)→ UNDO対象

✅ 5. InnoDBとPostgreSQLの実装比較

項目 InnoDB PostgreSQL
REDOログ あり あり(WAL)
UNDOログ あり なし(Tupleで管理)
MVCC Undoベース Tupleバージョンベース(xmin/xmax)
リカバリ処理 REDO+UNDO REDOのみ
データ掃除 自動またはPurge VACUUM必要

✅ 6. ARIES(アリエス)方式

多くの商用DBで採用される高性能リカバリアルゴリズム

処理の3ステップ:

  1. Analysis(分析):対象トランザクションを把握
  2. REDO:コミット済み処理の再実行
  3. UNDO:未コミット処理の取り消し
     → CLR(Compensation Log Record) を記録して中断に備える

📚 まとめ

  • WALは「書く順番」が命
  • チェックポイントで回復速度UP
  • REDO/UNDOはログの基本
  • PostgreSQLとMySQLではMVCC実装が異なる
  • ARIES方式は信頼性&柔軟性◎

🔎 明日は「インデックスとパフォーマンスチューニング」などの物理設計に進む予定!

項目 InnoDB PostgreSQL
REDOログ あり あり(WAL)
UNDOログ あり なし(Tupleで管理)
MVCC Undoベース Tupleバージョンベース(xmin/xmax)
リカバリ処理 REDO+UNDO REDOのみ
データ掃除 自動またはPurge VACUUM必要

✅ 6. ARIES(アリエス)方式

多くの商用DBで採用される高性能リカバリアルゴリズム

処理の3ステップ:

  1. Analysis(分析):対象トランザクションを把握
  2. REDO:コミット済み処理の再実行
  3. UNDO:未コミット処理の取り消し
     → CLR(Compensation Log Record) を記録して中断に備える

📚 まとめ

  • WALは「書く順番」が命
  • チェックポイントで回復速度UP
  • REDO/UNDOはログの基本
  • PostgreSQLとMySQLではMVCC実装が異なる
  • ARIES方式は信頼性&柔軟性◎

🔎 明日は「インデックスとパフォーマンスチューニング」などの物理設計に進む予定!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?