【データベース】時間を自在に操る復旧!「PITR」の真価|情報処理問題1000本ノック
「最新まで戻す」のは当たり前。PITRの本当の凄さは、あえて「少し前の時点」を指定して復旧できる柔軟性にあります。その仕組みを深掘りしましょう。
1. 疑問:PITRは「最新」まで戻すこと?
【 解説 】 PITR(Point In Time Recovery)の「Point In Time」とは、文字通り「ある特定の時点」という意味です。もちろん「障害が発生する直前の最新状態」を目指して復旧することも多いですが、以下のようなケースで本領を発揮します。
【PITRが活躍する「最新に戻さない」ケース】
■ シナリオ:人為的なミス
・14:00に、担当者が間違って重要なデータを「全削除」してしまった!
・最新(14:01)に戻すと…:データが削除された後の「空っぽの状態」になってしまいます。
・PITRで13:59に戻すと…:削除される「1分前」の正常な状態をピンポイントで復元できます!
■ シナリオ:人為的なミス
・14:00に、担当者が間違って重要なデータを「全削除」してしまった!
・最新(14:01)に戻すと…:データが削除された後の「空っぽの状態」になってしまいます。
・PITRで13:59に戻すと…:削除される「1分前」の正常な状態をピンポイントで復元できます!
2. 仕組み:バックアップ + ログの積み上げ
復旧作業は、以下の2段階で行われます。これを理解すると、なぜ「点」で戻せるかがわかります。
① フルバックアップのリストア
まずは、過去に取ったバックアップ(例:昨日の深夜3時)を丸ごと戻します。この時点では「昨日の状態」です。
② ロールフォワード(前進復旧)
バックアップ以降に記録された「更新ログ(WALやアーカイブログ)」を、指定した時刻まで1つずつ適用していきます。
★ここで「最新(障害直前)」まで流せば最新になりますし、「ミスをする直前」で止めれば過去の時点になります。
まずは、過去に取ったバックアップ(例:昨日の深夜3時)を丸ごと戻します。この時点では「昨日の状態」です。
② ロールフォワード(前進復旧)
バックアップ以降に記録された「更新ログ(WALやアーカイブログ)」を、指定した時刻まで1つずつ適用していきます。
★ここで「最新(障害直前)」まで流せば最新になりますし、「ミスをする直前」で止めれば過去の時点になります。
3. 試験対策:紛らわしい用語との比較
| 用語 | 復旧のゴール |
|---|---|
| ロールフォワード | ログを使ってデータを前進させ、最新状態(または指定時点)にする処理そのもの。 |
| PITR | 「○時○分」と時刻を指定して、その瞬間の状態を再現する「手法」のこと。 |
1. 理解のコツ: PITRはデータベースの「タイムマシン」です。エンジニアが「14時00分00秒の時点に戻れ」と命令すれば、ログをそこまで再生してピタッと止めてくれるイメージです。
2. データベース管理者の視点: PITRを可能にするためには、更新ログを捨てずに保存しておく「アーカイブログモード」の設定が必須です。これができていないと、バックアップを取った時点(面)までしか戻せません。
4. まとめ
PITRは「最新まで戻る」ことも含め、「任意のタイミングを選択して復旧できる」非常に強力な機能です。障害復旧だけでなく、操作ミスという「人災」からデータを守るための必須知識と言えます。
PR