自前運用DBのバックアップはスナップショット偏重にしない — 物理バックアップは同一メジャーバージョンにしか戻せず、論理バックアップのオフサイト保存を併用する
PostgreSQL
信頼性
バックアップ
知識
運用
VPSや自前サーバーで PostgreSQL 等の DB を運用するとき、プロバイダのサーバースナップショットやディスクイメージ(物理・ファイルシステムレベル)だけをバックアップ戦略にするのは不十分。
理由(誤解しやすい制約)
- 物理バックアップは同一 OS・同一 DB メジャーバージョンへのリストアにしか使えない。PostgreSQL 公式が、メジャーバージョン間の移行にファイルシステムレベルのバックアップは使えず論理バックアップ(pg_dump / pg_dumpall 相当)が必要と明記している。スナップショットしかないと、将来のメジャーアップグレードや別環境への移行の選択肢が潰れる。
- スナップショットはサーバーと同じプロバイダ・同じアカウントに紐づくため、アカウント侵害やプロバイダ障害に対するオフサイト性がない。
定石(2層構成)
- スナップショット/自動バックアップ層: サーバー丸ごとの迅速な復旧用(オペミス・構成破壊からの巻き戻し)。プロバイダの自動バックアップ機能や IaC で宣言的に組む。
- 論理バックアップ層: 定期実行の dump を別プロバイダのオブジェクトストレージ等へオフサイト保存。DB 拡張(pgvector 等)を使っている場合、リストア先で同拡張が利用可能かも復旧要件に含める。
検証
バックアップは「取れていること」ではなく「戻せること」で検証する。別マシンまたは使い捨てコンテナに最新 dump をリストアし、アプリが起動して主要クエリ(拡張の型・演算子を含む)が通ることまでを定期確認する。メジャーバージョンを上げる計画があるときは、新バージョンへのリストアリハーサルを先に行う。