Azure Database for PostgreSQL フレキシブル バックアップを復元する (プレビュー)

この記事では、Azure Backup によってバックアップされた Azure PostgreSQL - フレキシブル サーバーを復元する方法について説明します。

前提条件

  1. Azure Database for PostgreSQL フレキシブル サーバーのバックアップから復元する前に、復元操作に必要なアクセス許可があることを確認します。

  2. バックアップ データは、Microsoft テナント内の BLOB としてバックアップ コンテナーに保存されます。 復元操作の間に、バックアップ データはテナントをまたいで異なるストレージ アカウント間でコピーされます。 復元のターゲット ストレージ アカウントで AllowCrossTenantReplication プロパティが true に設定されていることを確認します。

Azure PostgreSQL - フレキシブル データベースを復元する

次のステップを実行します。

  1. [バックアップ コンテナー]>[Backup Instances]\(バックアップ インスタンス\) に移動します。 復元する PostgreSQL - フレキシブル サーバーを選択し、[復元] を選択します。

    データベースの復元方法を示すスクリーンショット。

    または、[バックアップ センター] に進み、[復元] を選択します。

  2. [復元ポイントを選択する] を使用して、復元する時点を選択します。 [期間] を選択して、期間を変更します。

    復旧ポイントの選択プロセスを示すスクリーンショット。

  3. [復元パラメータ] タブで、ターゲット ストレージ アカウントとコンテナーを選択します。[検証] を選択して、最終的な確認と復元の前に復元パラメータのアクセス許可を確認します。

  4. 検証が成功した場合は、[レビューと復元] を選択します。 復元パラメーター プロセスを示すスクリーンショット。

  5. パラメータの最終確認後、[復元] を選択して、選択した PostgreSQL - フレキシブル サーバーのバックアップをターゲット ストレージ アカウントに復元します。 レビュー プロセスのページを示すスクリーンショット。

  6. 復元操作を送信し、トリガーされたジョブを [バックアップ ジョブ] で追跡します。 検証プロセスのページを示すスクリーンショット。

  7. ジョブが完了すると、バックアップされたデータがストレージ アカウントに復元されます。 復元後にストレージ アカウントに回復されたファイルのセットを次に示します。

    • 1 番目のファイルは、バックアップが実行された時刻をお客様に提供するマーカーまたはタイムスタンプ ファイルです。 このファイルは復元できませんが、テキスト エディターで開くと、バックアップが作成された UTC 時刻がわかるはずです。

    • 2 番目のファイル database は、pg_dump を使って取得された tempdata2 というデータベースの個々のデータベース バックアップです。 データベースごとに、– <バックアップ名>database<データベース名>.sql という形式の個別のファイルがあります

    • 3 番目のファイルは _roles です。 pg_dumpall を使ってバックアップされたロールが含まれます

    • 4 番目のファイルは _schemas です。 pg_dumpall を使ってバックアップされます

    • 5 番目のファイルは _tablespaces です。 pg_dumpall を使ってバックアップされたテーブルスペースが含まれます

  8. ターゲット ストレージ アカウントへの復元が完了したら、pg_restore ユーティリティを使用して、PostgreSQL フレキシブル サーバーにデータベースやその他のファイルを復元できます。 既存の PostgreSQL フレキシブル サーバーと既存のデータベースに接続するには、次のコマンドを使います。

    az storage blob download --container-name <container-name> --name <blob-name> --account-name <storage-account-name> --account-key <storage-account-key> --file - | pg_restore -h <postgres-server-url> -p <port> -U <username> -d <database-name> -v -

    • --account-name: ターゲット ストレージ アカウントの名前。
    • --container-name: BLOB コンテナーの名前。
    • --blob-name: BLOB の名前。
    • --account-key: ストレージ アカウント キー。
    • -Fd: ディレクトリ形式
    • -j: ジョブの数
    • -C: データベース自体を作成して、それに再接続するコマンドで出力を開始する

    復元するデータベースが複数ある場合は、データベースごとに前のコマンドを再実行します。

    また、複数の同時実行ジョブ -j を使うと、複数の仮想コアを持つターゲット サーバーに大きなデータベースを復元する時間を短縮できます。 ジョブの数は、ターゲット サーバーに割り当てられた vCPU の数以下にすることができます。

  9. 他の 3 つのファイル (ロール、スキーマ、テーブルスペース) を復元するには、psql ユーティリティを使用して PostgreSQL フレキシブル サーバーに復元します。

    az storage blob download --container-name <container-name> --name <blob-name> --account-name <storage-account-name> --account-key <storage-account-key> --file - | psql -h <hostname> -U <username> -d <db name> -f <dump directory> -v -

    ファイルごとに上記のコマンドを再実行します。

次のステップ

Azure Backup を使用した PostgreSQL - フレキシブル データベースのバックアップのサポート マトリックス