Azure Database for PostgreSQL (フレキシブル サーバー) でのバックアップと復元

バックアップは、あらゆるビジネス継続性戦略の重要な部分を形成します。 これは、不慮の破損や削除からデータを保護するのに役立ちます。 Azure Database for PostgreSQL - フレキシブル サーバーでは、サーバーの定期的バックアップが自動的に実行されます。 その後、保持期間内には、復元対象の日付と時刻を指定できるポイントインタイム リストアを実行できます。 復元と復旧にかかる全体の時間は、一般に、データのサイズと、実行する必要がある復旧の量に左右されます。

Backup の概要

フレキシブル サーバーでは、データ ファイルのスナップショット バックアップを作成し、それらを、リージョンに応じてゾーン冗長ストレージまたはローカル冗長ストレージに安全に格納します。 サーバーでは、WAL ファイルをアーカイブする準備ができると、トランザクション ログのバックアップも実行されます。 これらのバックアップを使用すると、サーバーを、バックアップの構成済みリテンション期間内の任意の時点に復元できます。 既定のバックアップの保持期間は 7 日間で、格納できるのは最大で 35 日です。 すべてのバックアップの保存データは、AES 256 ビット暗号化を使用して暗号化されます。

これらのバックアップ ファイルは、エクスポートしたり、Azure Database for PostgreSQL フレキシブル サーバーの外部にサーバーを作成するために使用したりすることはできません。 その目的のためには、PostgreSQL ツールの pg_dump と pg_restore/psql を使用できます。

バックアップ頻度

フレキシブル サーバーでのバックアップはスナップショット ベースです。 初回のスナップショット バックアップは、サーバーの作成直後にスケジュールされます。 スナップショット バックアップは、現在のところ、毎日 1 回作成されます。 トランザクション ログのバックアップは、アーカイブ対象の、ワークロードや、WAL ファイルがいっぱいになるタイミングに応じて、さまざまな頻度で実行されます。 一般に、延期期間 (RPO) は最大 15 分になる場合があります。

バックアップ冗長オプション

Azure Database for PostgreSQL では、計画されたイベントや計画外のイベント (一時的なハードウェア障害、ネットワークの停止や停電、大規模な自然災害など) からデータを保護するため、バックアップのコピーが複数格納されます。 Azure Database for PostgreSQL では、リージョン内のローカル バックアップ コピーと geo 冗長バックアップ (プレビュー) のどちらかを柔軟に選択できます。 既定では、Azure Database for PostgreSQL サーバーのバックアップでは、リージョンで使用できる場合はゾーン冗長ストレージが使用されます。 そうでなければ、ローカル冗長ストレージが使用されます。 さらに、サーバー作成時のディザスター リカバリー目的では、プレビュー段階の geo 冗長バックアップを選択できます。 geo 冗長バックアップがサポートされているリージョンの一覧を参照してください。

バックアップの冗長性により、障害が発生した場合でもデータベースで可用性と永続性の目標を満たすことができます。また、Azure Database for PostgreSQL ではユーザーに 3 つのオプションが提供されます。

  • ゾーン冗長バックアップ ストレージ: 可用性ゾーンをサポートしているリージョンには、これが自動的に選択されます。 バックアップがゾーン冗長バックアップ ストレージに格納されると、複数のコピーが、サーバーがホストされている可用性ゾーン内に格納されるだけでなく、同じリージョン内の別の可用性ゾーンにもレプリケートされます。 このオプションは、高可用性を必要とするシナリオや、データ所在地の要件を満たすためデータのレプリケーションを国/地域内に制限する目的で利用できます。 また、バックアップ オブジェクトに年間 99.9999999999% (トゥエルブ ナイン) 以上の持続性を提供します。

  • ローカル冗長バックアップ ストレージ: 可用性ゾーンがまだサポートされていないリージョンには、これが自動的に選択されます。 バックアップがローカル冗長バックアップ ストレージに格納されると、バックアップの複数のコピーが、同じデータセンター内に格納されます。 このオプションは、サーバー ラックとドライブの障害からデータを保護します。 また、バックアップ オブジェクトに年間 99.999999999% (イレブン ナイン) 以上の持続性を提供します。 既定では、同一ゾーンの高可用性 (HA) を使用しているサーバー、または高可用性構成のないサーバーのバックアップ ストレージは、ローカル冗長に設定されます。

  • geo 冗長バックアップ ストレージ (プレビュー): このオプションは、サーバーの作成時に選択できます。 バックアップが geo 冗長バックアップ ストレージに格納されると、データのコピーが、サーバーがホストされているリージョンに 3 つ格納されるのに加えて、その geo ペア リージョンにもレプリケートされます。 これにより、災害発生時に、より適切な保護が提供され、別のリージョンにサーバーを復元することができます。 また、バックアップ オブジェクトに年間 99.99999999999999% (シックスティーン ナイン) 以上の持続性を提供します。 サーバーの作成時に [Geo 冗長性] オプションを有効にして、geo 冗長バックアップ ストレージを確保することができます。 Geo 冗長性は、Azure のペアになっているリージョンのいずれかでホストされているサーバーでサポートされます。

Note

geo 冗長バックアップ オプションを構成できるのは、サーバーの作成時のみです。

他のバックアップ ストレージ オプションから geo 冗長バックアップ ストレージへの移行

バックアップに対して geo 冗長ストレージを構成できるのは、サーバーの作成時だけです。 一度サーバーがプロビジョニングされると、バックアップ ストレージ冗長オプションを変更することはできません。

バックアップ保有期間

バックアップは、サーバーのバックアップ保持期間の設定に基づいて保持されます。 7 日間から 35 日間までの保持期間を選択できます。 既定の保持期間は 7 日に設定されています。 サーバーの作成時に保持期間を設定することも、後で変更することもできます。 停止したサーバーでもバックアップは保持されます。

ポイントインタイム リストアは使用可能なバックアップに基づいているため、バックアップの保持期間によって、どれだけ遡ってポイントインタイム リストアを取得できるかが決まります。 バックアップの保有期間は、復元の観点から回復期間として扱うこともできます。 バックアップの保持期間内の特定の時点に復旧するために必要なすべてのバックアップは、バックアップ ストレージに保持されます。 たとえば、バックアップの保持期間が 7 日間に設定されている場合、回復期間は過去 7 日間と見なされます。 このシナリオでは、過去 7 日間のサーバーを復元および復旧するために必要なすべてのデータとログが保持されます。

バックアップ ストレージのコスト

フレキシブル サーバーを使用すると、プロビジョニングされているサーバー ストレージの最大 100% までが、バックアップ ストレージとして追加コストなしで提供されます。 バックアップ ストレージを追加で使用した場合は、1 か月ごとに GB 単位で請求されます。 たとえば、サーバーを 250 GiB のストレージでプロビジョニングした場合は、250 GiB のバックアップ ストレージ容量を追加料金なしで利用できます。 毎日のバックアップ使用量が 25 GiB の場合は、最大 10 日間の無料バックアップ ストレージを使用できます。 250 GiB を超えるバックアップ ストレージの使用は、価格モデルに従って課金されます。

geo 冗長バックアップを使用してサーバーを構成した場合は、バックアップ データも Azure ペア リージョンにコピーされます。 そのため、バックアップのサイズはローカル バックアップ コピーの 2 倍になります。 課金額は、((2 x ローカル バックアップ サイズ) - プロビジョニングされたストレージ サイズ ) x 月あたりの GB 単価で計算されます。

Azure portal で "使用されたバックアップ ストレージ" メトリックを使用して、サーバーによって使用されるバックアップ ストレージを監視できます。 このバックアップ ストレージの使用量のメトリックは、サーバーに設定されているバックアップ保持間に基づいて保持されているすべてのデータベースのバックアップとログ バックアップによって使用されるストレージの合計を表します。

Note

データベースのサイズとは無関係に、サーバーで大量のトランザクション アクティビティが発生すると多くの WAL ファイルが生成され、その結果、バックアップ ストレージが増大します。

バックアップ ストレージ コストを制御する主な方法は、適切なバックアップ保有期間を設定し、目的の回復目標を達成するための適切なバックアップ冗長オプションを選択することです。

ポイントインタイム リストアの概要

フレキシブル サーバーでは、ポイントインタイム リストアを実行すると、ソース サーバーと同じリージョンに新しいサーバーが作成されますが、可用性ゾーンを選択することができます。 価格レベル、コンピューティング世代、仮想コア数、ストレージ サイズ、バックアップの保持期間、およびバックアップ冗長オプションについては、ソース サーバーの構成を使用して作成されます。 また、VNET やファイアウォールの設定などのタグと設定は、ソース サーバーから継承されます。

ポイントインタイム リストア

物理データベース ファイルは、最初にスナップショット バックアップからサーバーのデータの場所に復元されます。 目的の時点より前に作成された適切なバックアップが自動的に選択され、復元されます。 その後、WAL ファイルを使用して復旧プロセスが開始されて、データベースを一貫性のある状態にします。

たとえば、バックアップが毎晩、午後 11 時に実行されているとします。 復元ポイントが 2020 年 8 月 15 日午前 10 時の場合は、2020 年 8 月 14 日の日次バックアップが復元されます。 データベースは、2020 年 8 月 15 日午前 10 時までは、8 月 14 日午後 11 時から 8 月 15 日午前 10 時までのトランザクション ログのバックアップを使用して復旧されます。

データベース サーバーを復元するには、こちらの手順を参照してください。

重要

フレキシブル サーバーで復元操作を行うときには常に、指定した名前で新しいデータベース サーバーが作成され、既存のデータベース サーバーは上書きされません。

ポイントインタイム リストアは複数のシナリオで役に立ちます。 たとえば、ユーザーが誤ってデータを削除したとき、重要なテーブルやデータベースを削除したとき、またはアプリケーションの不具合が原因で、適切なデータが不適切なデータで誤って上書きされた場合などです。 トランザクション ログの継続的バックアップによって、最後のトランザクションに復元できるようになります。

最新の復元ポイントとカスタム復元ポイントのどちらかを選択できます。

  • 最新の復元ポイント (現在) : これは、サーバーを最新の時点に復元できる、既定のオプションです。

  • カスタム復元ポイント:このオプションを使用すると、このフレキシブル サーバーに定義されている保持期間内の特定の時点を選択できます。 既定では、UTC の最新の時刻が自動選択され、テスト目的で最後にコミットされたトランザクションに復元する場合に便利です。 必要に応じて、他の日付と時刻を選択することもできます。

復旧の推定所要時間は、前回のバックアップ時点以後の処理するトランザクション ログの量や、同じリージョン内で同時に復旧するデータベースの合計数など、複数の要因に左右されます。 全体的な復旧時間は、通常は数分から数時間かかります。

サーバーを VNET 内に構成している場合は、同じ VNET または別の VNET に復元できます。 ただし、パブリック アクセスには復元できません。 同様に、パブリック アクセスを使用してサーバーを構成した場合、プライベート VNET アクセスへの復元はできません。

重要

削除したサーバーをユーザーが復元することは "できません"。 サーバーを削除すると、そのサーバーに属するデータベースもすべて削除され、復元できなくなります。 管理者は、デプロイ後の誤削除や予期せぬ変更からサーバーのリソースを保護するために、管理ロックを利用できます。 お使いのサーバーを誤って削除した場合は、サポートに連絡してください。 サーバーの復元では、データ損失が発生する場合も発生しない場合もあります。

geo 冗長バックアップと復元 (プレビュー)

geo 冗長バックアップの構成は、サーバーの作成時に行うことができます。 [コンピューティングとストレージ] ブレードから geo 冗長バックアップを有効にする方法については、このクイック スタート ガイドを参照してください。

重要

geo 冗長バックアップの構成は、サーバーの作成時にのみ行うことができます。

geo 冗長バックアップを使用して構成したサーバーは、geo ペア リージョンに復元できます。 geo 冗長バックアップがサポートされているリージョンを参照してください。

サーバーが geo 冗長バックアップを使用して構成されている場合、バックアップ データは、ストレージ レプリケーションを使用してペア リージョンに非同期的にコピーされます。 これには、データ バックアップとトランザクション ログのコピーも含まれます。 サーバーの作成後、少なくとも 1 時間待ってから geo 復元を開始してください。 そうすることで、バックアップ データの最初のセットをペア リージョンにレプリケートできます。 その後、トランザクション ログと毎日のバックアップがペア リージョンに非同期的にコピーされます。データ転送では、最大 1 時間の延期期間が発生する可能性があります。 そのため、復元するときに見込まれる RPO は最大で 1 時間です。 復元できるのは、ペア リージョンで見つかる最新の使用可能なバックアップ データのみです。 現時点では、geo バックアップのポイントインタイム リストアは使用できません。

サーバーの復旧にかかる推定時間 (RTO) は、データベースのサイズ、データベースの最終バックアップ時刻、最後に受信されたバックアップ データに至るまでに処理する WAL の量などの要因によって異なります。 全体的な復旧時間は、通常は数分から数時間かかります。

geo リストア中に変更できるサーバー構成には、VNET 設定や、復元されるサーバーから geo 冗長バックアップを削除する機能が含まれます。 geo リストア中に、コンピューティング、ストレージ、価格レベル (バースト可能、General Purpose、メモリ最適化) などの他のサーバー構成を変更することはできません。

geo リストアの実行方法については、攻略ガイドを参照してください。

重要

プライマリ リージョンがダウンすると、プライマリ リージョンでストレージをプロビジョニングできないため、対応する geo ペア リージョン内に geo 冗長サーバーを作成することができません。 geo ペア リージョンで geo 冗長サーバーをプロビジョニングするには、プライマリ リージョンが稼働するまで待機する必要があります。 プライマリ リージョンがダウンしていても、ソース サーバーを geo ペア リージョンに geo リストアすることはできます。それには、ポータルでの復元エクスペリエンスで、[コンピューティングとストレージ] の [サーバーの構成] 設定にある geo 冗長オプションを無効にし、ローカル冗長サーバーとして復元してビジネス継続性を確保します。

復元とネットワーク

ポイントインタイム リストア

  • ソース サーバーがパブリック アクセス ネットワークを使用して構成されている場合は、パブリック アクセスにのみ復元できます。
  • ソース サーバーがプライベート アクセス VNET を使用して構成されている場合は、同じ VNET または異なる VNET のいずれかに復元できます。 パブリック アクセスとプライベート アクセスをまたいでポイントインタイム リストアを実行することはできません。

geo リストア

  • ソース サーバーがパブリック アクセス ネットワークを使用して構成されている場合は、パブリック アクセスにのみ復元できます。 また、復元操作の完了後は、ファイアウォール規則を適用する必要があります。
  • ソース サーバーがプライベート アクセス VNET を使用して構成されている場合は、異なる VNET にのみ復元できます。VNET は複数のリージョンにまたがることができないためです。 パブリック アクセスとプライベート アクセスをまたいで geo リストアを実行することはできません。

復元後のタスクの実行

データベースを復元した後、次のタスクを実行して、ユーザーとアプリケーションを元に戻して実行することができます。

  • 元のサーバーを新しいサーバーで置き換える場合は、クライアントとクライアント アプリケーションを新しいサーバーにリダイレクトする。 復元された新しいサーバーを指すように、接続文字列のサーバー名を変更します。

  • ユーザーが接続できるように、適切なサーバー レベルのファイアウォールと VNet ルールが適用されていることを確認します。 これらのルールは配信元のサーバーからはコピーされません。

  • 復元されたサーバーのコンピューティングは、必要に応じてスケールアップ/スケールダウンできます。

  • 適切なログインとデータベース レベルのアクセス許可が適切に指定されていることを確認する。

  • 必要に応じて、アラートを構成する。

  • 高可用性で構成されたデータベースを復元した場合、および復元されたサーバーを高可用性で構成する場合は、こちらの手順に従うことができます。

よく寄せられる質問

  • サーバーのバックアップは Azure でどのように処理されますか?

    既定では、Azure Database for PostgreSQL によって、サーバー全体 (作成されたすべてのデータベースを含む) の自動バックアップが有効になります。保有期間は、既定では 7 日間です。 データベースの毎日の増分スナップショットが実行されます。 ログ (WAL) ファイルは、Azure BLOB に継続的にアーカイブされます。

  • これらの自動バックアップが長期間保有されるように構成できますか?

    いいえ。 現在サポートされているのは、最大 35 日間のデータ保有のみです。 手動バックアップを行い、それを長期保有の要件に使用できます。

  • Postgres サーバーの手動バックアップの実行方法を教えてください。

    手動でのバックアップは、こちらに記載されている PostgreSQL ツール pg_dump を使用して行うことができます。 たとえば、バックアップに使用できるこちらの更新または移行に関するドキュメントも参照できます。 Azure Database for PostgreSQL を BLOB ストレージにバックアップする場合は、「Azure Database for PostgreSQL を BLOB ストレージにバックアップする」という Tech Community ブログを参照してください。

  • サーバーのバックアップ ウィンドウとは何ですか? カスタマイズできますか?

    バックアップの時間帯は本質的に Azure によって管理されており、カスタマイズできません。 初回の完全スナップショット バックアップは、サーバーの作成直後にスケジュールされます。 後続のスナップショット バックアップは、1 日に 1 回実行される増分バックアップです。

  • バックアップは暗号化されますか?

    はい。 クエリの実行中に作成されるすべての Azure Database for PostgreSQL データ、バックアップ、一時ファイルは、AES 256 ビット暗号化を使用して暗号化されます。 ストレージの暗号化は常にオンになっており、無効にすることはできません。

  • サーバー内の単一または少数のデータベースを復元できますか?

    単一または少数のデータベースやテーブルの復元は直接サポートされていません。 ただし、サーバー全体を新しいサーバーに復元してから、必要なテーブルまたはデータベースを抽出して、サーバーにインポートする必要があります。

  • バックアップの進行中はサーバーを使用できますか? はい。 バックアップは、スナップショットを使用したオンライン操作です。 スナップショット操作には数秒しかかからず、運用環境のワークロードには影響しないため、サーバーの高可用性が確保されます。

  • サーバーのメンテナンス期間を設定するときに、バックアップの時間帯を考慮する必要がありますか?

    いいえ。 バックアップは管理サービスの一部として内部的にトリガーされ、管理されたメンテナンス期間には関係ありません。

  • 自動バックアップはどこに格納され、その保有期間はどのように管理できますか?

    Azure Database for PostgreSQL では、サーバー バックアップは自動的に作成され、複数のゾーンがサポートされているリージョン内のゾーン冗長ストレージ、または複数のゾーンがまだサポートされていないリージョン内のローカル冗長ストレージに自動的に格納されます。 これらのバックアップ ファイルをエクスポートすることはできません。 バックアップは、サーバーを特定の時点に復元するためにのみ使用できます。 バックアップの既定のリテンション期間は 7 日です。 必要に応じて、バックアップのリテンション期間を最大 35 日に構成できます。 geo 冗長バックアップを使用して構成した場合、バックアップもペア リージョンにコピーされます。

  • geo 冗長バックアップの使用時に、バックアップはどれほどの頻度でペア リージョンにコピーされますか?

    geo 冗長バックアップを使用してサーバーが構成されている場合、バックアップ データは geo 冗長ストレージ アカウントに格納されます。このアカウントにより、ペア リージョンへのデータのコピーが実行されます。 データ ファイルは、プライマリ サーバーで毎日のバックアップが行われる限り、ペア リージョンにコピーされます。 WAL ファイルのバックアップは、WAL ファイルをアーカイブする準備が整っている限り行われます。 これらのバックアップ データは、非同期に、連続的な方法でペア リージョンにコピーされます。 バックアップ データの受信については、最大 1 時間の延期期間が見込まれます。

  • リモート リージョンで PITR を実行できますか?

    いいえ。 データは、リモート リージョンで使用できる最新のバックアップデータに復旧されます。

  • HA が有効になっているサーバーではバックアップはどのように実行されますか?

    フレキシブル サーバーのデータ ボリュームは、プライマリ サーバーからマネージド ディスクの増分スナップショットを使用してバックアップされます。 WAL バックアップは、プライマリ サーバーまたはスタンバイ サーバーから実行されます。

  • サーバーでバックアップが実行されていることを確認するにはどうすればよいですか?

    有効なバックアップの可用性を確認する最良の方法は、ポイントインタイム リストアを定期的に実行し、バックアップが有効で復元可能であることを確認することです。 バックアップ操作またはファイルは、エンド ユーザーには公開されません。

  • バックアップの使用量はどこで確認できますか?

    Azure portal の [監視] の下にある [メトリック] をクリックすると、[バックアップの利用状況] メトリックが表示され、バックアップの合計使用量を監視できます。

  • サーバーを削除した場合、バックアップはどうなりますか?

    サーバーを削除すると、そのサーバーに属するバックアップもすべて削除され、復旧できなくなります。 管理者は、デプロイ後の誤削除や予期せぬ変更からサーバーのリソースを保護するために、管理ロックを利用できます。

  • 停止したサーバーのバックアップはどのように保有されますか?

    停止したサーバーに対して、新しいバックアップは実行されません。 サーバーを停止した時点でのすべての古いバックアップ (保有期間内のもの) は、サーバーが再起動されるまで保有されます。その後、アクティブなサーバーのバックアップの保有は、そのバックアップ保有期間によって管理されます。

  • バックアップの課金と請求はどのように行われますか?

    フレキシブル サーバーを使用すると、プロビジョニングされているサーバー ストレージの最大 100% までが、バックアップ ストレージとして追加コストなしで提供されます。 バックアップ ストレージを追加で使用した場合は、価格モデルに基づき、1 か月ごとに GB 単位で請求されます。 また、バックアップ ストレージの課金には、使用されるバックアップ ストレージの合計使用量に直接影響するサーバー上のトランザクション アクティビティとは別に、選択されたバックアップ保有期間と選択されたバックアップ冗長性オプションも関与します。

  • 停止しているサーバーについては、どのように請求されますか?

    サーバー インスタンスが停止している間は、新しいバックアップは実行されません。 プロビジョニングされたストレージとバックアップ ストレージ (指定した保有期間内に格納されたバックアップ) に対して課金されます。 無料のバックアップ ストレージは、プロビジョニングされているデータベースのサイズに制限され、超過したバックアップ データはバックアップ価格を使用して課金されます。

  • ゾーン冗長の高可用性でサーバーを構成しました。 2 つのバックアップが取得され、2 回課金されますか?

    いいえ。 HA か非 HA サーバーかに関係なく、1 セットのバックアップ コピーのみが保持され、課金されるのは 1 回のみです。

  • サーバーを復元するにはどうすればよいですか?

    Azure ではポイントインタイム リストアがサポートされ (すべてのサーバーが対象)、ユーザーは、Azure portal、Azure CLI および API を使用して、最新またはカスタムの復元ポイントに復元できます。

    pg_dump などのツールを使用して手動で作成したバックアップからサーバーを復元するには、まず、フレキシブル サーバーを作成し、pg_restore を使用してデータベースをサーバーに復元します。

  • 同じリージョン内の別の可用性ゾーンに復元できますか?

    はい。 リージョンで複数の可用性ゾーンがサポートされている場合、バックアップは ZRS アカウントに格納され、別のゾーンに復元できます。

  • ポイントインタイム リストアにはどのくらいの時間がかかりますか? 復元に長時間かかるのはなぜですか。

    スナップショットからのデータ復元操作は、データ サイズでは決まりません。ログ (再生するトランザクション アクティビティ) を適用する復旧プロセスのタイミングは、要求された日付/時刻の前のバックアップと処理するログの量によって異なる可能性があります。 これは、同じゾーン内または別のゾーンへの復元のどちらにも適用されます。

  • HA が有効になっているサーバーを復元した場合、復元サーバーは自動的に高可用性で構成されますか?

    いいえ。 サーバーは、単一インスタンスのフレキシブル サーバーとして復元されます。 復元が完了したら、必要に応じて、サーバーを高可用性で構成できます。

  • VNET 内にサーバーを構成しました。 別の VNET に復元できますか?

    はい。 復元時に、復元先となる別の VNET を選択してください。

  • パブリック アクセス サーバーを VNET に復元する (またはその逆) は可能ですか?

    いいえ。 現在、パブリック アクセスとプライベート アクセス間でのサーバーの復元はサポートされていません。

  • 復元操作を追跡するにはどうすればいいですか?

    現在、復元操作を追跡する方法はありません。 アクティビティ ログを監視して、操作が進行中か、または完了しているかを確認できます。

次のステップ