これはリハーサルであり、本番復元の手順書ではありません。コピーを作る前に、データベースエンジン/バージョン、データ所有者、保存期間、暗号化、利用可能なディスク容量を確認します。本番環境を上書きしてテストしないでください。
バックアップを作成して識別する
- プロジェクトで文書化された方法と整合性のあるスナップショットを使います。元のデータベース、バージョン、日時/タイムゾーン、サイズ、暗号鍵の所有者、チェックサムを記録します。
- 暗号化したコピーを本番ホストとは別に保管します。シェル履歴、チケット、スクリーンショットに秘密情報を残さず、許可された担当者が鍵を取得できることを確認します。
隔離された環境に復元する
- 想定するメジャーバージョンと互換性のあるロール/拡張機能を備えた、新しい空のデータベースを作ります。対応するPostgreSQLの復元ツールを使い、決して本番を指定しません。
- 想定テーブル、重要レコードの行数、制約、アプリケーションの起動、読み取り専用のサンプル操作を確認します。移行を承認する前に、復元時間と不一致を記録します。
例と期待される結果
- 形式に合わせて復元ツールを選びます。通常のSQLは
psql、custom/tarアーカイブはpg_restoreを使います(pg_restore --list backup.dumpで内容を確認)。使い捨ての隔離データベースに復元し、ワーカーと外部連携を停止して、テスト用の秘密情報だけを使います。この訓練に本番環境を使わないでください。 - 終了コード、経過時間、想定テーブル数、既知の集計チェックを記録します。復元に失敗したり件数が異なったりした場合は、移行前に停止し、テストホスト上のエラー、拡張機能、ロールを調べます。
pg_dumpの対象は1つのデータベースです。グローバルロールには別のバックアップが必要です。