3.6障害回復管理

3.6障害回復管理

データベーススペシャリスト試験の教科書より、障害回復管理について学習した内容をまとめ。

障害回復管理とは、

データベースの一貫性を守るために、DBMSが行うシステム障害などの障害からデータベースを回復すする機能を障害回復管理という。

障害回復管理によって、トランザクションの原子性、一貫性、耐久性も保証。

障害事前処理

バックアップコピー(データベースダンプ)を採取

障害の種類

トランザクション障害(transaction failure)

デッドロックやシステムエラー、トランザクション自体がアボート

システム障害(system failure)

OSのバグ、電源障害でシステムダウン

媒体(ハードウェア)障害(media failure)

ディスクの損傷、駆動装置障害、チャネル障害

人的障害(human failure)

オペレーションミスによるデータ破損、故意によるデータ改変

障害回復処理

ログの先書き

ログファイル(log file)(ジャーナル(journal file))へ書き込む。ログファイルにはトランザクションの開始や終了の情報、コミット情報、チェックポイント情報、更新前ログ、更新後ログが保存

ログファイルは複数個(最低二つ)用意、満杯になると切り替え、サイクリックに使用

データベースの更新

データベースへの更新データの書き出しは、一定時間間隔ごと、データベースバッファのフラッシュ、あるいはログファイルが満杯で切り替わるタイミングで行われる

チェックポイント(check point)という。

障害回復処理

ロールバック(後退復帰)、ロールフォワード(前進復帰)

障害ごとの回復処理

トランザクション障害
システム障害

ロールバック、ロールフォワード、フォームスタート、コールドスタート

ハードウェア障害

ロールフォワード、アーカイブログ(archives log)

人的障害

バックアップコピー、バックアップ取得時(前日など)の状態に復旧

障害部分の隔離、閉塞

障害が発生した場合、障害部分を閉塞(オフライン化)し、正常な部分はそのまま運用を継続

障害事後処理

データベース再開始、リスタート、ウォームスタート、コールドスタート、ホットスタンバイ再開始

Undo/redo方式

Undo/no-redo方式

No-undo/redo方式