【ぶつりばっくあっぷ】
物理バックアップ とは?
最終更新:
💡 データファイルを基に、整合性を保って保存・復元する
データベースが保存に使うファイルやブロックを基に取得するバックアップ。SQL文などに変換する論理バックアップとは異なり、DBMSの保存形式を扱うため、整合性を保つ取得方法と復元先の互換性が重要になる。
📌 このページのポイント
- DBMSのデータファイルやブロックを基に取得する
- 稼働中の単純コピーでは整合性が保てない場合がある
- 復元先の保存形式・バージョン・環境の互換性を確認する
- ベースバックアップと必要な更新ログをそろえれば、PITRに使える
論理バックアップより、いつも速いの?
SQLや行のデータへ変換せず保存形式を扱うので、大きなDBで有利な場合があるよ。でも時間はデータ量、ディスクや通信、圧縮などで変わる。「100GBなら何分」「データ量に関係なく高速」とは言えない。必要な容量も含めて実際の環境で確認するんだ。
ファイルを普通にコピーすればいい?
稼働中は更新が続くので、順にコピーするだけでは、ファイル同士の状態がそろわないことがあるよ。PostgreSQLなら停止して取得する方法、整合したスナップショット、専用のベースバックアップなどを使う。更新ログも含め、選んだ方式で必要なものをそろえることが大切なんだ。
具体的なツールと、復元できる範囲は?
PostgreSQLのpg_basebackupは、稼働中のクラスタ全体のベースバックアップを取るツールだよ。特定のテーブルだけを選ぶ方法ではない。DBMSによってツールや単位、必要な処理は異なるので、論理バックアップとの使い分けも、復元したい範囲から考えよう。
別のDBや、違うバージョンにも戻せる?
保存形式に依存するので、別のDBMSへそのまま移す方法ではないよ。PostgreSQLでは同じメジャーバージョンのマイナー版同士は保存形式が互換だけれど、メジャー版では変わり得る。別メジャー版への移行はpg_upgradeなど別の手順もあるので、バックアップの復元と区別して確認しよう。
PITRなら好きな時刻へ戻せるの?
📖 おまけ:英語の意味
「Physical Backup」 = 物理バックアップ
💬 physical(物理的な)ファイルをそのままコピーするから物理バックアップと呼ぶんだよ