Azure Database for PostgreSQL フレキシブル バックアップを復元する (プレビュー)
この記事では、Azure Backup によってバックアップされた Azure PostgreSQL - フレキシブル サーバーを復元する方法について説明します。
前提条件
Azure Database for PostgreSQL フレキシブル サーバーのバックアップから復元する前に、復元操作に必要なアクセス許可があることを確認します。
バックアップ データは、Microsoft テナント内の BLOB としてバックアップ コンテナーに保存されます。 復元操作の間に、バックアップ データはテナントをまたいで異なるストレージ アカウント間でコピーされます。 復元のターゲット ストレージ アカウントで AllowCrossTenantReplication プロパティが true に設定されていることを確認します。
Azure PostgreSQL - フレキシブル データベースを復元する
次のステップを実行します。
[バックアップ コンテナー]>[Backup Instances]\(バックアップ インスタンス\) に移動します。 復元する PostgreSQL - フレキシブル サーバーを選択し、[復元] を選択します。
または、[バックアップ センター] に進み、[復元] を選択します。
[復元ポイントを選択する] を使用して、復元する時点を選択します。 [期間] を選択して、期間を変更します。
[復元パラメータ] タブで、ターゲット ストレージ アカウントとコンテナーを選択します。[検証] を選択して、最終的な確認と復元の前に復元パラメータのアクセス許可を確認します。
検証が成功した場合は、[レビューと復元] を選択します。
パラメータの最終確認後、[復元] を選択して、選択した PostgreSQL - フレキシブル サーバーのバックアップをターゲット ストレージ アカウントに復元します。
復元操作を送信し、トリガーされたジョブを [バックアップ ジョブ] で追跡します。
ジョブが完了すると、バックアップされたデータがストレージ アカウントに復元されます。 復元後にストレージ アカウントに回復されたファイルのセットを次に示します。
1 番目のファイルは、バックアップが実行された時刻をお客様に提供するマーカーまたはタイムスタンプ ファイルです。 このファイルは復元できませんが、テキスト エディターで開くと、バックアップが作成された UTC 時刻がわかるはずです。
2 番目のファイル database は、pg_dump を使って取得された tempdata2 というデータベースの個々のデータベース バックアップです。 データベースごとに、– <バックアップ名>database<データベース名>.sql という形式の個別のファイルがあります
3 番目のファイルは _roles です。 pg_dumpall を使ってバックアップされたロールが含まれます
4 番目のファイルは _schemas です。 pg_dumpall を使ってバックアップされます
5 番目のファイルは _tablespaces です。 pg_dumpall を使ってバックアップされたテーブルスペースが含まれます
ターゲット ストレージ アカウントへの復元が完了したら、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 の数以下にすることができます。
他の 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 - フレキシブル データベースのバックアップのサポート マトリックス。