OCI Full Stack Disaster Recoveryを使用したPostgreSQLOCI Database with PostgreSQLによるOCI Databaseのコールド・ディザスタ・リカバリの自動化

はじめに

Oracle Cloud Infrastructure Full Stack Disaster Recovery(OCI Full Stack DR)は、世界中のOCIリージョン間のコンピュート、データベース、アプリケーションの移行をワンクリックで調整します。お客様は、既存のインフラストラクチャ、データベースまたはアプリケーションを再設計または再設計することなく、また特殊な管理サーバーや変換サーバーを必要とせずに、1つ以上のビジネス・システムをリカバリするために必要なステップを自動化できます。

OCI Database with PostgreSQLは、インテリジェントなサイジング、チューニング、および高い耐久性を備えたフルマネージドのPostgreSQL互換サービスです。このサービスでは、データベース表が作成および削除されるたびにストレージが自動的にスケーリングされるため、管理が容易になり、ストレージ支出を最適化できます。データは、転送中および保存中の両方で暗号化されます。OCI Database with PostgreSQLは、可用性ドメイン(AD)に障害が発生した場合でも耐久性を提供することで、高可用性を実現するように設計されています。

このチュートリアルでは、OCI Database with PostgreSQLのコールド・ディザスタ・リカバリを自動化する方法を学習します。ここでは、OCI Full Stack DRサービスを利用してスイッチオーバー・プロセスとフェイルオーバー・プロセスを管理する手順について説明します。

ノート:このタイプのディザスタ・リカバリ(DR)戦略は、バックアップおよびリストア・メカニズムに依存するため、リカバリ時間目標(RTO)およびリカバリ・ポイント目標(RPO)のビジネス要件が過度に要求されない非クリティカル・アプリケーションに最適です。

アーキテクチャの説明

このチュートリアルで紹介するアーキテクチャは、OCI仮想マシン(VM)で実行される一般的なWebアプリケーションを、PostgreSQLOCI Database with PostgreSQLでOCI Databaseとシームレスに統合したものです。

OCIロード・バランサは、外部ユーザー接続を効率的に管理するために、両方のリージョンのパブリック・サブネット内にデプロイされます。アプリケーション・ユーザーは、DNSトラフィック・ステアリングを介してリージョンXで現在アクティブなバックエンドにルーティングされます。

fsdr_psql_backup_restore_dr-Physical_Architecture.png

図fsdr_psql_backup_restore_dr-Physical_Architecture.pngの説明

ディザスタ・リカバリのアーキテクチャの説明

このWebアプリケーションのDR戦略には、ボリューム・グループ・レプリケーションを使用したVMのブート・ボリュームの完全なレプリケーションなど、包括的なアプローチが含まれます。

PostgreSQLOCI Database with PostgreSQLを使用したOCI Databaseの場合、バックアップ・コピーが有効になり、自動バックアップがリモート・リージョンに定期的にコピーされて、データ保護とディザスタ・リカバリの準備が整います。

fsdr_psql_backup_restore_dr-Physical_DR_Architecture.png

図fsdr_psql_backup_restore_dr-Physical_DR_Architecture.pngの説明

このデプロイメントのリカバリ・ソリューションでは、フェイルオーバーやスイッチオーバーなどのリカバリ操作中に一連のカスタムPythonスクリプトを実行するには、OCI Full Stack DRが必要です。

このチュートリアルで参照されるスクリプトは、EMEAテクノロジ・エンジニアリング・チームによって提供され、このDRソリューション用に特別に調整されたフルスタック・ディザスタ・リカバリで入手できます。

このチュートリアルでは、スクリプトをダウンロードする方法と、後のタスクで使用する方法について説明します。

ノート:一般的なガイダンスとして、次のスクリプトが用意されています。独自のスクリプトを使用するか、企業のポリシーおよびセキュリティ要件に従ってスクリプトをカスタマイズできます。

ロード・バランサはリモート・リージョンに事前にプロビジョニングされているため、スイッチオーバーまたはフェイルオーバー中にWebアプリケーションVMがリモート・リージョンに移行されたときにトラフィックをシームレスに処理する準備ができています次の図に示すように、ロード・バランサのシームレスなスイッチオーバーは、現在使用可能なロード・バランサのバックエンド・セットへのヘルスチェック・アタッチ・ルーティングを含むDNSステアリング・ポリシーによって保証されます。詳細は、OCIトラフィック管理を参照してください。

ロード・バランサ・リスナーは、ポート80 (フロントエンド)および8000 (API)で設定され、それぞれデフォルト構成のポート3000および8585にルーティングされます。

fsdr_psql_backup_restore_dr-Physical_Network_Architecture.png

図fsdr_psql_backup_restore_dr-Physical_Network_Architecture.pngの説明

次の図は、プライマリ・リージョンからリモート・リージョンへの自動バックアップ・コピーのワークフローを示しています。

fsdr_psql_backup_restore_dr-Logical_Workflow_Auto_Copy_Backup_to_Remote.png

図fsdr_psql_backup_restore_dr-Logical_Workflow_Auto_Copy_Backup_to_Remote.pngの説明

この場合、バックアップを毎日実行するようにスケジュールし、冗長性を高めるためにリモート・リージョンにコピーすることで、リカバリ・ポイント目標(RPO)が24時間になります。

ノート:

ユースケースに短いRPOが必要な場合は、より頻繁なバックアップをスケジュールし、提供されたスクリプト(psql_create_bkp.pyおよびpsql_copy_bkp.py)を使用して、ビジネス要件に従ってバックアップを手動でトリガーし、リモート・リージョンにコピーします。また、psql_copy_config.pyを使用して、データベース・システムの拡張およびパラメータのリストアに必要なOCI Database with PostgreSQL構成をリモート・リージョンにコピーできます。

fsdr_psql_backup_restore_dr-Logical_Workflow_Manual_Backup_Copy_to_Remote.png

図fsdr_psql_backup_restore_dr-Logical_Workflow_Manual_Backup_Copy_to_Remote.pngの説明

すべてのスクリプトはGitHubで使用でき、次の各項で詳しく説明します。

注意:定期的にバックアップを取得し、リモート・リージョンにコピーするために、ビジネス要件に従ってこのスクリプト(または同様のスクリプト)をスケジュールしてください。このステップがない場合、セカンダリ・リージョンでバックアップを使用できないため、リストア・プロセスが失敗する可能性があります。

リカバリの仕組み

計画されたスイッチオーバーの実行後、ロールは逆転します。プライマリ・ワークロードはリージョン2で実行され、スタンバイはリージョン1で動作します。アーキテクチャは次のようになります。

fsdr_psql_backup_restore_dr-Physical_Switchover_Architecture.png

図fsdr_psql_backup_restore_dr-Physical_Switchover_Architecture.pngの説明

In the current setup, we leverage the OCI private DNS service to manage a DNS record that directs traffic to the active OCI Database with PostgreSQL endpoint.リカバリ・プロセス中に、このDNSレコードはカスタム・スクリプト(psql_update_dns.py)を介して更新され、新しいOCI Database with PostgreSQLが反映されるため、シームレスなスイッチオーバーまたはフェイルオーバーとサービスの継続性が保証されます。

次の図は、スタンバイ・リージョンでPostgreSQLOCI Database with PostgreSQLバックアップを使用して最新のOCI Databaseをリストアするためのワークフローを示しており、これが新しいプライマリ・リージョンになります。

fsdr_psql_backup_restore_dr-Logical_Workflow_Switchover_to_Remote.png

図fsdr_psql_backup_restore_dr-Logical_Workflow_Switchover_to_Remote.pngの説明

チュートリアル全体での定義と仮定

Webアプリケーション仮想マシン

このチュートリアルのWebアプリケーションは、エンド・ツー・エンドのシナリオ・アーキテクチャを紹介することを目的としており、単一のデプロイメント・スクリプト(deploy_application_demo.sh)によって、WebアプリケーションVMにアプリケーション・スタックが構成およびデプロイされます。アプリケーションのデプロイに関する詳細な手順は、リポジトリlink-to-web-app-sampleにあります。

フロントエンド・プレビュー:レポートに表示される行は、PostgreSQLOCI Database with PostgreSQLを使用したOCI Databaseから直接取得されます。

webapp-frontend-preview.png

画像webapp-frontend-preview.pngの説明

目的

このチュートリアルでは、次のタスクについて説明します:

  1. タスク1: ディザスタ・リカバリのための環境の準備
  2. タスク2: 両方のリージョンでのDR保護グループ(DRPG)の作成
  3. タスク3: DR保護グループへのメンバーの追加
  4. タスク4: リージョン2での基本的なDR計画の作成
  5. タスク5: リージョン2でのスイッチオーバー・プランのカスタマイズ。
  6. タスク6: リージョン2でのフェイルオーバー計画のカスタマイズ
  7. タスク7: リージョン2でDR計画の事前チェックを実行します。
  8. タスク8: リージョン2でスイッチオーバー計画を実行します。
  9. タスク9: リージョン1でのDR計画の作成およびカスタマイズ
  10. タスク10: リージョン1でのフェイルオーバー計画の実行

タスク1: ディザスタ・リカバリのための環境の準備

タスク1.1: ボリューム・グループの作成およびレプリケーションの有効化

リージョン1でサンプルWebアプリケーションVMのボリューム・グループを作成し、それがリージョン2でレプリケートされていることを確認します。各アプリケーションVMのブート・ボリューム(サンプルWebApp)がボリューム・グループのメンバーであり、ボリューム・グループがリージョン2にレプリケートされていることを確認します。

次のイメージは、リージョン2へのレプリケーションが正常に有効化されたWebアプリケーションVMのブート・ボリュームを含む、作成されたボリューム・グループを示しています。詳細は、ボリューム・グループの作成に関する項を参照してください。

storage-create-volgrp webapp.png

画像psql-webapp-create-vol-grp.pngの説明

ストレージ- 作成-volgrp-webapp-1.png

図psql-webapp-create-vol-grp-2.pngの説明

ストレージ- 作成-volgrp-webapp-2.png

図psql-webapp-create-vol-grp-3.pngの説明

クロス・リージョン・レプリケーションを構成した後、「サマリー」が表示されるまで「次へ」をクリックし、「作成」をクリックします。

タスク1.2: 自動デプロイメントのためのWebアプリケーションVMの準備

  1. /home/opcフォルダのGitHubリポジトリ(oci-postgressql-colddr)をダウンロード/クローニングします。

  2. スクリプトを実行可能にします。

    chmod +x deploy_application_demo.sh
    
  3. 両方のリージョンで、WebアプリケーションおよびOCI Database with PostgreSQLに必要な詳細でdeploy_application_demo.shスクリプトを更新します。

    • WEBAPP_HOME:デプロイメントのルートの場所(スクリプトの実行元の場所)。たとえば、/home/opcです。
    • WEBAPP_URL: API http://webapi.yoururl.eu:8000でコンピュートを指すURL。
    • PRIMARY_REGION: OCIプライマリ・リージョン。形式はeu-frankfurt-1です。
    • STANDBY_REGION: OCIスタンバイ・リージョン。
    • PRIMARY_SECRET_OCID:プライマリ・リージョン(ocid1.vaultsecret.oc1.me-dubai-1.xxxxxx)のPostgreSQLパスワードを持つOCIボールト・シークレットOCID。
    • STANDBY_SECRET_OCID:スタンバイ・リージョン(ocid1.vaultsecret.oc1.me-abudhabi-1.xxxxxx)のPostgreSQLパスワードを持つOCIボールト・シークレットOCID。
    • PG_USER:サンプル・データのロードに使用されるデータベース・ユーザー(postgresql_sample.sql)。
    • PG_DB:サンプル・データのロードに使用されるデータベース。デフォルト値はpostgresです。
    • PG_HOST:データベースのプライベート・ゾーン・エントリのFQDN。

    ノート:

    • すべての値が正確に更新されていることを確認します。
    • デフォルト構成を使用する場合は、他のパラメータを変更しないままにできます。
  4. deploy_application_demo.shスクリプトを実行します。

    ./deploy_application_demo.sh
    

    これにより、フロントエンド、バックエンドがデプロイされ、サービスおよびファイアウォールが構成されます。

    デプロイメントに成功すると、「デプロイメントが完了しました。」というメッセージが表示されます。

チュートリアルの一部として、ユーザー定義スクリプトの実行にこの同じVMを使用します。DR制御ノードとして機能する VMがコマンドを実行するように構成されていることを確認します。詳細は、Oracle Cloud Infrastructure Full Stack Disaster Recoveryでのrunコマンドを使用したカスタム・スクリプトの起動を参照してください。

タスク1.3: Webステアリング・ポリシーの作成

アプリケーションが常にアクティブ・リージョンを指していることを保証するために、フェイルオーバー・トラフィック管理ステアリング・ポリシーを利用できます。ステアリング・ポリシーをOCI Health Checksサービスと組み合わせると、HTTPモニターを介して、アプリケーション・エンドポイントが60秒(デフォルトのTTL)ごとに検証されます。

  1. OCIコンソールに移動し、「ネットワーキング」に移動します。

  2. 「トラフィック管理ステアリング・ポリシー」をクリックします。

    oci-web-steering-policies-nav.png

    画像oci-web-steering-policies-nav.pngの説明

  3. 「トラフィック管理ステアリング・ポリシーの作成」をクリックします。

    psql-webapp-dns-create.png

    画像psql-webapp-dns-create.pngの説明

    1. 「ポリシー・タイプ」として「フェイルオーバー」を選択します。

      1. ステアリング・ポリシーの「名前」を入力します。
      2. ステアリング・ポリシーのコンパートメントを選択します。
      3. 要件に従ってTTLを選択します。

      psql-webapp-dxb-dns-create-failover.png

      画像psql-webapp-dxb-dns-create-failover.pngの説明

    2. リージョン1のロード・バランサを指して、アンサー・プール1を構成します。

      1. プールに対してわかりやすい名前を入力します。
      2. 「レコード」「タイプ」を選択します。
      3. リージョン1にWebアプリケーション・ロード・バランサのIPを入力します。

      psql-webapp-dxb-dns-create-pool-1.png

      画像psql-webapp-dxb-dns-create-pool-1.pngの説明

    3. リージョン2のロード・バランサを指して、アンサー・プール2を構成します。

      1. プールの「名前」を入力します。
      2. 「レコード」「タイプ」を選択します。
      3. リージョン2にWebアプリケーション・ロード・バランサのIPを入力します。

      psql-webapp-dxb-dns-create-pool-2.png

      図psql-webapp-dxb-dns-create-pool-2.pngの説明

    4. 「プール優先度」を構成します。このコンテキスト優先度はリージョン1に指定されます。 psql-webapp-dxb-dns-create-pool-priority.png

      画像psql-webapp-dxb-dns-create-pool-priority.pngの説明

    5. 「新規追加」をクリックして、OCIヘルス・チェック・ポリシーをアタッチします。

      1. 「リクエスト・タイプ」「HTTP」を選択します。
      2. ヘルス・チェックの「名前」を入力します。
      3. ヘルス・チェックのコンパートメントを選択します。

      psql-webapp-dxb-dns-create-healthcheck.png

      画像psql-webapp-dxb-dns-create-healthcheck.pngの説明

    6. 「拡張」オプションをクリックします。

      1. Webアプリケーションのポート(この場合は80)を入力します。
      2. Webアプリケーションのパス(この場合は/)を入力します。
      3. 「メソッド」として「GET」を選択します。
      4. リクエストのタイムアウトを選択します。

      psql-webapp-dxb-dns-create-healthcheck-details.png

      画像psql-webapp-dxb-dns-create-healthcheck-details.pngの説明

    7. アタッチされたドメインを構成します。

      1. webapiエンドポイントのサブドメインを入力します。
      2. ゾーン(ドメイン)を含むコンパートメントを選択します。
      3. 適切なゾーンを選択します。
      4. webappエンドポイントに対してステップ1から3を繰り返します。

      psql-webapp-dxb-dns-create-domains.png

      画像psql-webapp-dxb-dns-create-domains.pngの説明

    8. すべての詳細が正しいかどうかを確認し、「トラフィック管理ステアリング・ポリシーの作成」をクリックします。しばらくすると、completedと表示されます。

      psql-webapp-dxb-dns-create-complete.png

      画像psql-webapp-dxb-dns-create-complete.pngの説明

    9. ステアリング・ポリシーの作成後の概要を確認できます。ページの最後に、「アタッチされたヘルス・チェック」が表示されます。

      psql-webapp-dxb-dns-create-details.png

      画像psql-webapp-dxb-dns-create-details.pngの説明

      1. 「アタッチされたヘルス・チェック」をクリックします。
      2. 「ヘルス・チェック履歴」にナビゲートします。
      3. ここで、現在使用可能なロード・バランサおよび過去の可用性を表示できます。 psql-webapp-dxb-healthcheck-history.png

        画像psql-webapp-dxb-healthcheck-history.pngの説明

タスク1.4: OCI Full Stack DRのOracle Cloud Infrastructure Identity and Access Managementポリシーの作成

OCI Full Stack DRに必要なOCI IAMポリシーを構成するには、次を参照してください:

タスク1.5: OCI Full Stack DRによって管理される他のサービスのためのOCI IAMポリシーの作成

OCI Full Stack DRには、コンピュート、ネットワーキング、ストレージ、その他のサービスなどの他の主要なOCIサービスを制御および管理する機能が必要です。他のサービスに必要なOCI IAMポリシーを構成するには、フル・スタック・ディザスタ・リカバリによって管理される他のサービスのポリシーおよびOCI IAMポリシーを参照してください。

タスク2: 両方のリージョンでのDR保護グループ(DRPG)の作成

このアプリケーション・スタックの保護グループがまだ存在しない場合は、リージョン1およびリージョン2でDR保護グループを作成します。

タスク2.1: リージョン1での保護グループの作成

  1. OCIコンソールに移動し、DR保護グループに移動します。

    1. OCIリージョン・コンテキストがリージョン1 (ドバイ)に設定されていることを確認します。
    2. 「移行とディザスタ・リカバリ」をクリックします。
    3. 「DR保護グループ」をクリックします。

    psql-webapp-dxb-drpg-intro.png

    画像psql-webapp-dxb-drpg-intro.pngの説明

  2. リージョン1で基本的なDR保護グループ(DRPG)を作成します。ピア、ロールおよびメンバーは、後のステップで割り当てられます。

    1. DRPGを作成するコンパートメントを選択します。
    2. 「DR保護グループの作成」をクリックして、ダイアログを開きます。
    3. DRPGの「名前」を入力します。
    4. OCI Full Stack DRログの場合は、「OCI Object Storageバケット」を選択します。
    5. 「作成」をクリックします。

    psql-webapp-auh-drpg.png

    画像psql-webapp-dxb-drpg.pngの説明

タスク2.2: リージョン2での保護グループの作成

  1. OCIコンソールに移動し、「DR保護グループ」に移動します。

    1. OCIリージョン・コンテキストがリージョン2 (Abu Dhabi)に設定されていることを確認します。
    2. 「移行とディザスタ・リカバリ」をクリックします。
    3. 「DR保護グループ」をクリックします。

    psql-webapp-dxb-drpg-intro .png

    画像psql-webapp-dxb-drpg-intro.pngの説明

  2. リージョン2で基本的なDR保護グループ(DRPG)を作成します。ピア、ロールおよびメンバーは、後のステップで割り当てられます。

    1. DRPGを作成するコンパートメントを選択します。
    2. 「DR保護グループの作成」をクリックして、ダイアログを開きます。
    3. DRPGの「名前」を入力します。
    4. OCI Full Stack DRログの場合は、「OCI Object Storageバケット」を選択します。
    5. 「作成」をクリックします。

    psql-webapp-auh-drpg.png

    画像psql-webapp-auh-drpg.pngの説明

タスク2.3: リージョン1およびリージョン2での保護グループの関連付け

各リージョンのDRPGを互いのピアとして関連付け、プライマリおよびスタンバイのピア・ロールを割り当てます。プライマリおよびスタンバイのロールは、DR操作/DR計画実行の一部としてOCI Full Stack DRによって自動的に変更されます。ロールをいつでも手動で管理する必要はありません。

  1. 「DR保護グループの詳細」ページに移動します。

    1. OCIリージョン・コンテキストがリージョン1 (ドバイ)に設定されていることを確認します。
    2. 「関連付け」をクリックしてプロセスを開始します。

    psql-webapp-dxbauh-drpg.png

    画像psql-webapp-dxbauh-drpg.pngの説明

  2. 次の図に示すようにパラメータを入力してください。

    1. ロール: 「プライマリ」ロールを選択します。OCI Full Stack DRは、スタンバイ・ロールをリージョン2に自動的に割り当てます。
    2. ピア・リージョン:他のDRPGが作成されたリージョン2 (アブダビ)を選択します。
    3. ピアDR保護グループ:作成されたピアDRPGを選択します。
    4. 「関連付け」をクリックします。

    psql-webapp-dxbauh-drpg-associate.png

    画像psql-webapp-dxbauh-drpg-associate.pngの説明

OCI Full Stack DRは、アソシエーションが完了すると、次のイメージに示すように表示されます。

  1. 現在のプライマリピアDRPGはドバイ(リージョン1)です。
  2. 現在のスタンバイ・ピアDRPGはアブダビ(リージョン2)です。

drpg-assoc-completed-dxb.png

画像psql-webapp-dxbauh-drpg-primary.pngの説明

コンテキスト/ビューがグローバルな観点から見ると、次の図に示すようにすべてのDR保護グループを示す場合でも、同じ情報を確認できます。

  1. 現在のプライマリピアDRPGはドバイ(リージョン1)です。
  2. 現在のスタンバイ・ピアDRPGはアブダビ(リージョン2)です。

drpg-assoc-completed-dxb.png

画像psql-webapp-dxbauh-drpg-standby.pngの説明

タスク3: DR保護グループへのメンバーの追加

このタスクでは、リージョン1のプライマリDRPGに次のOCIリソースを追加します。

  1. Webアプリケーションをホストしているコンピュート・インスタンスは、移動するVMとして追加されます。
  2. Webアプリケーションのコンピュート・ノードのブート・ボリュームを含むボリューム・グループ。
  3. プライマリ・ロード・バランサ。

タスク3.1: リージョン1のDRPGへのメンバーの追加

  1. 次の図に示すように、Region 1のDRPGを選択します。

    1. OCIリージョン・コンテキストがリージョン1 (ドバイ)であることを確認します。
    2. 「Region 1」で「DRPG」を選択します。
    3. 「メンバー」を選択します。
    4. 「メンバーの追加」をクリックしてプロセスを開始します。

    psql-webapp-dxb-drpg-add.png

    画像psql-webapp-dxb-drpg-add.pngの説明

  2. WebアプリケーションVMのコンピュート・インスタンスを追加します。

    1. DR計画に関する警告を確認します。
    2. メンバーの「リソース・タイプ」として「コンピュート」を入力します。
    3. Webアプリケーションをホストするコンピュート・インスタンスを選択します。
    4. 「インスタンスの移動」を選択します。
    5. 「VNICマッピングの追加」をクリックして、リカバリ中にリージョン2でVNICに割り当てるVCNおよびサブネットを選択します。
    6. 「詳細オプションの表示」をクリックします。
    7. 「設定」で、「フォルト・ドメインの保持」を選択します。
    8. 詳細を確認して、「追加」をクリックします。

    drpg-add-compute-dxb.png

    画像psql-webapp-dxb-drpg-add-compute.pngの説明

    drpg-add-compute-vnic-dxb.png

    画像psql-webapp-dxb-drpg-add-compute-vnic.pngの説明

    drpg-add-compute-vnic-dxb.png

    画像psql-webapp-dxb-drpg-add-compute-vnic-details.pngの説明

    psql-webapp-dxb-drpg-add-compute-detail.png

    画像psql-webapp-dxb-drpg-add-compute-detail.pngの説明

  3. WebアプリケーションVMのブート・ボリュームを含むブロック・ボリューム・グループを追加します。

    1. DR計画に関する警告を確認します。
    2. 「ボリューム・グループ」をメンバー「リソース・タイプ」として選択します。
    3. ボリューム・グループを含む正しいコンパートメントが選択されていることを確認し、ボリューム・グループを選択します。
    4. 詳細を確認して、「追加」をクリックします。

    psql-webapp-dxb-drpg-add-volgrp.png

    画像psql-webapp-dxb-drpg-add-volgrp.pngの説明

  4. この例では、リージョン1のDRPGのメンバーとしてOCIロード・バランサを追加します。

    1. DR計画に関する警告を確認します。
    2. 「ロード・バランサ」をメンバーの「リソース・タイプ」として選択します。
    3. ロード・バランサの正しいコンパートメントが選択されていることを確認し、追加するロード・バランサを選択します。
    4. リージョン2で使用する「宛先ロード・バランサ」を選択します。
    5. 「ソース・バックエンド・セット」を選択します。これは、WebアプリケーションVMで使用されるバックエンド・セットです。OCIロード・バランサは、複数のアプリケーション間で共有でき、複数のバックエンド・セットを構成できます。DRスイッチオーバー中は、ここで指定したバックエンド・セットのみがその構成をスタンバイ・リージョンに移動します。
    6. 「宛先バックエンド・セット」を選択します。これは、リージョン2で作成された空のバックエンド・セットです。
    7. 詳細を確認し、「追加」をクリックします。

    psql-webapp-dxb-drpg-add-lb.png

    画像psql-webapp-dxb-drpg-add-lb.pngの説明

    psql-webapp-dxb-drpg-add-lb-details.png

    画像psql-webapp-dxb-drpg-add-lb-details.pngの説明

  5. メンバー・セクションにロード・バランサ、ボリューム・グループおよびコンピュート・インスタンスが含まれていることを確認します。

    psql-webapp-dxb-drpg-members.png

    画像psql-webapp-dxb-drpg-members.pngの説明

タスク3.2: リージョン2のDRPGへのメンバーの追加

  1. 次の図に示すように、リージョン2のDRPGを選択します。

    1. OCIリージョン・コンテキストがリージョン2 (Abu Dhabi)であることを確認します。
    2. 「Region 2」で「DRPG」を選択します。
    3. 「メンバー」を選択します。
    4. 「メンバーの追加」をクリックしてプロセスを開始します。

    psql-webapp-auh-drpg-add.png

    図psql-webapp-auh-drpg-add.pngの説明

  2. この例では、リージョン2のDRPGのメンバーとしてOCIロード・バランサを追加します。

    1. DR計画に関する警告を確認します。
    2. 「ロード・バランサ」をメンバーの「リソース・タイプ」として選択します。
    3. ロード・バランサの正しいコンパートメントが選択されていることを確認し、追加するロード・バランサを選択します。
    4. リージョン1で使用する宛先ロード・バランサを選択します。
    5. 「ソース・バックエンド・セット」を選択します。これは、WebアプリケーションVMで使用されるバックエンド・セットです。OCIロード・バランサは、複数のアプリケーション間で共有でき、複数のバックエンド・セットを構成できます。DRスイッチオーバー中は、ここで指定したバックエンド・セットのみがその構成をスタンバイ・リージョンに移動します。
    6. 「宛先バックエンド・セット」を選択します。このバックエンド・セットはリージョン2で作成されます。
    7. 詳細を確認して、「追加」をクリックします。

    psql-webapp-aux-drpg-add-lb.png

    画像psql-webapp-aux-drpg-add-lb.pngの説明

    psql-webapp-dxb-drpg-add-lb-details.png

    画像psql-webapp-dxb-drpg-add-lb-details.pngの説明

  3. メンバー・セクションにロード・バランサが含まれていることを確認します。

    psql-webapp-aux-drpg-members.png

    画像psql-webapp-aux-drpg-members.pngの説明

タスク4: リージョン2での基本的なDR計画の作成

このタスクでは、リージョン2 (Abu Dhabi)のスタンバイDR保護グループに関連付けられた初期スイッチオーバーおよびフェイルオーバー計画を作成します。

これらの計画の目的は、ワークロードをプライマリ・リージョン(リージョン1)からスタンバイ・リージョン(リージョン2)にシームレスに移行することです。DR操作の一環として、両方のリージョンのDR保護グループのロールが自動的に元に戻されます。リージョン1の保護グループはスタンバイになり、リージョン2の保護グループはフェイルオーバーまたはスイッチオーバーの後にプライマリ・ロールを引き継ぎます。

OCI Full Stack DRは、前のタスクで追加されたメンバー・リソースから導出された組込みステップを使用して、これらのプランを事前移入します。これらの計画は、後で、リカバリ・プロセス中にOCI Database with PostgreSQLに固有のタスクを管理するようにカスタマイズされます。

スイッチオーバー計画は、常にスタンバイ・ロールを保持する保護グループ内に作成されます。リージョン2(アブダビ)は現在スタンバイ保護グループであるため、そこで計画の作成を開始します。

タスク4.1: DR計画の作成

  1. 地域2(アブダビ)でDRPGを選択して基本計画を作成します。

    1. OCIリージョン・コンテキストがリージョン2 (Abu Dhabi)であることを確認します。
    2. リージョン2でスタンバイDRPGを選択します。
    3. 「プラン」を選択します。
    4. 「プランの作成」をクリックしてプロセスを開始します。

    psql-webapp-auh-drpg-create.png

    図psql-webapp-auh-drpg-create.pngの説明

  2. スイッチオーバー計画を作成します。

    1. スイッチオーバー・プランの単純でわかりやすい名前を入力します。名前はできるだけ短くする必要がありますが、危機時の混乱や人的ミスを軽減するために一目で理解しやすい名前にする必要があります。
    2. 「プラン・タイプ」「スイッチオーバー(計画済)」を選択します。
    3. 「作成」をクリックします。

    psql-webapp-auh-drpg-create-switchover.png

    画像psql-webapp-auh-drpg-create-switchover.pngの説明

  3. フェイルオーバー計画を作成します。次の図に示すように、同じプロセスに従って基本的なフェイルオーバー計画を作成します。

    1. フェイルオーバー計画の「名前」を入力します。
    2. 「プラン・タイプ」「フェイルオーバー(計画外)」を選択します。
    3. 「作成」をクリックします。

    psql-webapp-auh-drpg-create-failover.png

    画像psql-webapp-auh-drpg-create-failover.pngの説明

リージョン2のスタンバイDR保護グループには、次の図に示すように2つのDR計画が必要です。これらは、リージョン1からリージョン2へのワークロードの移行を処理します。同様の計画をリージョン1で作成し、後のタスクでワークロードをリージョン2からリージョン1に戻します。

psql-webapp-auh-drpg-plans.png

図psql-webapp-auh-drpg-plans.pngの説明

タスク5: リージョン2でのスイッチオーバー・プランのカスタマイズ

タスク4で作成される基本的なDR計画には、OCI Full Stack DRに組み込まれたリカバリ・タスクの事前移入されたステップが含まれており、OCI Database with PostgreSQLに固有のリカバリ・タスクを管理するためのステップはありません。このタスクでは、カスタムのユーザー定義のDR計画グループを追加する方法と、スイッチオーバー中に実行する必要があるタスクを管理するステップについて説明します。

タスク5.1: スイッチオーバー計画の選択

タスク4で作成したスイッチオーバー計画にナビゲートします。タスク5.3では、新しいグループを追加します。

psql-webapp-auh-drpg-create-switchover-add.png

画像psql-webapp-auh-drpg-create-switchover-add.pngの説明

タスク5.2: (オプション)アーティファクトを終了するDR計画グループの有効化

次の図に示すように、スイッチオーバー計画ではデフォルトで無効になっているプラン・グループが3つあります。これらの計画グループは、テスト中に安心感を与えるために使用不可になり、アーティファクトが削除されず、テスト・フェーズで問題が発生しても実行可能なバックアップ・コピーがそのまま維持されます。

ただし、これらの3つのプラン・グループは、将来のDR操作には不要になるアーティファクトを終了(削除)するように設計されています。これらのプラン・グループを有効にしないと、2つのリージョン間でスイッチオーバーを実行すると、未使用のアーティファクトが時間の経過とともに累積され、どのコンピュート・インスタンスとボリューム・グループをアクティブにするかが混乱する可能性があります。

オプションで、これらのプラン・グループを有効にすると、本番環境に移行する前に不要なアーティファクトを手動でクリーン・アップする必要がなくなります。このプロアクティブなステップにより、本番への移行を合理化し、よりクリーンで管理しやすい環境を維持できます。

psql-webapp-auh-drpg- 作成- スイッチオーバー- 詳細-1.png

図psql-webapp-auh-drpg-create-switchover-details-1.pngの説明

  1. プラン・グループを有効にするには、プラン・グループ名の右側にあるコンテキスト・メニューから「すべてのステップの有効化」を選択します。

    psql-webapp-auh-drpg-create-switchover-enable.png

    画像psql-webapp-auh-drpg-create-switchover-enable.pngの説明

    plan-custom-so-auh-enable-terminate-fs-enable.png

    画像psql-webapp-auh-drpg-create-switchover-enable-check.pngの説明

  2. すべてのプラン・グループが有効になっていることを確認します。

    psql-webapp-auh-drpg-create-switchover-enable-complete.png

    画像psql-webapp-auh-drpg-create-switchover-enable-complete.pngの説明

タスク5.3: カスタム・スクリプトを実行するプラン・グループの作成

まず、カスタムのユーザー定義のDR計画グループを追加して、OCI Database with PostgreSQLバックアップ/リストアDRプロセスの特定のニーズに合わせてDRワークフローを調整します。

これらのプラン・グループは、リージョン1のWebアプリケーションVMから必要なスクリプトを起動します。これにより、OCI Database with PostgreSQLが完全にリストアされ、アプリケーションVMがオンラインになる前に動作することが保証されます。

事前移入されたスイッチオーバー計画には、PostgreSQL - スイッチオーバーPostgreSQL - DNSの更新およびPostgreSQL - 終了のカスタム計画を追加する必要があります。

  1. PostgreSQLOCI Database with PostgreSQLを使用してOCI Databaseのスイッチオーバーを実行するカスタム・プラン・グループを追加します。この操作には、プライマリ・リージョンのデータベースをバックアップし、データベース構成をスタンバイ・リージョンにコピーし、データベース・バックアップをスタンバイ・リージョンにコピーし、最後にスタンバイ・リージョンのデータベースをリストアする必要があります。

    1. 「グループの追加」をクリックします。
    2. 単純でわかりやすいプラン・グループの名前を入力します。この例では、PostgreSQL - Switchoverを使用します。
    3. 計画グループがDR計画に挿入される位置を選択します。この例では、「次より後に追加」を選択して、組込みプラン・グループの「コンピュート・インスタンス- 起動」の後にユーザー定義プラン・グループを挿入します。
    4. 「ステップの追加」をクリックして、PostgreSQLスイッチオーバーを実行するスクリプトを指定するダイアログを開きます。

    psql-webapp-auh-drpg-create-switchover-add-psql-so.png

    画像psql-webapp-auh-drpg-create-switchover-add-psql-so.pngの説明

    「プラン・グループの追加」ステップで、次の情報を入力します。

    1. 「ステップ名」を入力します。この例では、PostgreSQL - Switchoverを使用します。プラン・グループ名と同じです。
    2. このステップが実行されるインスタンスを含むリージョンを選択します。この例では、スクリプトはリージョン1のWebアプリケーションVMで実行されます。
    3. 「ローカル・スクリプトの実行」を選択します。
    4. リージョン1のWebアプリケーションVMである「ターゲット・インスタンス」を選択します。
    5. 「スクリプト・パラメータ」に、パラメータを含むスクリプトのフルパスを入力します。たとえば: /home/opc/full-stack-dr-scripts-main/oci-postgresql/backup-restore/psql_exec_cold_dr.py -c amo-psql-dbs.json -o switchover
    6. 「ユーザーとして実行」に、opcと入力します。
    7. 「ステップの追加」をクリックします。

    psql-webapp-auh-drpg-create-switchover-add-psql-so-details.png

    画像psql-webapp-auh-drpg-create-switchover-add-psql-so-details.pngの説明

    「追加」をクリックします。

    psql-webapp-auh-drpg-create-switchover-add-psql-details.png

    画像psql-webapp-auh-drpg-create-switchover-add-psql-details.pngの説明

  2. カスタム・プラン・グループを追加して、PostgreSQLデータベースDNSを更新します。

    1. 「グループの追加」をクリックします。
    2. プラン・グループの「名前」を入力します。この例では、PostgreSQL - Update DNSを使用します。
    3. 計画グループがDR計画に挿入される位置を選択します。この例では、「次より後に追加」を選択して、組込みプラン・グループPostgreSQL - スイッチオーバーの後にユーザー定義プラン・グループを挿入します。
    4. 「ステップの追加」をクリックして、PostgreSQLデータベースDNSを更新するスクリプトを指定するダイアログを開きます。

    psql-webapp-auh-drpg-create-switchover-add-psql-dns.png

    画像psql-webapp-auh-drpg-create-switchover-add-psql-dns.pngの説明

    「プラン・グループの追加」ステップで、次の情報を入力します。

    1. 「ステップ名」を入力します。この例では、PostgreSQL - Update DNSを使用します。プラン・グループ名と同じです。
    2. このステップが実行されるインスタンスを含むリージョンを選択します。この例では、スクリプトはリージョン1のWebアプリケーションVMで実行されます。
    3. 「ローカル・スクリプトの実行」を選択します。
    4. リージョン1のWebアプリケーションVMであるターゲット・インスタンスを選択します。
    5. 「スクリプト・パラメータ」に、パラメータを含むスクリプトのフルパスを入力します。たとえば: /home/opc/full-stack-dr-scripts-main/oci-postgresql/backup-restore/psql_update_dns.py -c amo-psql-dbs.json -d amo-psql-dbs.amo.vcn01.internal -o switchover
    6. 「ユーザーとして実行」に、opcと入力します。
    7. 「ステップの追加」をクリックします。

    psql-webapp-auh-drpg-create-switchover-add-psql-dns-details.png

    画像psql-webapp-auh-drpg-create-switchover-add-psql-dns-details.pngの説明

    「追加」をクリックします。

    psql-webapp-auh-drpg-create-switchover-add-dns-details.png

    画像psql-webapp-auh-drpg-create-switchover-add-dns-details.pngの説明

  3. カスタム・プラン・グループを追加して、PostgreSQLソース・データベースを終了します。

    1. 「グループの追加」をクリックします。
    2. プラン・グループの「名前」を入力します。この例では、PostgreSQL - Terminateを使用します。
    3. 計画グループがDR計画に挿入される位置を選択します。この例では、「次より後に追加」を選択して、組込みプラン・グループ「ボリューム・グループ- DR保護グループから削除」の後にユーザー定義プラン・グループを挿入します。
    4. 「ステップの追加」をクリックして、PostgreSQLデータベース・ソースを終了するスクリプトを指定するダイアログを開きます。

    psql-webapp-auh-drpg-create-switchover-add-psql-terminate.png

    画像psql-webapp-auh-drpg-create-switchover-add-psql-terminate.pngの説明

    「プラン・グループの追加」ステップで、次の情報を入力します。

    1. 「ステップ名」を入力します。この例では、PostgreSQL - Terminateを使用します。プラン・グループ名と同じです。
    2. このステップが実行されるインスタンスを含むリージョンを選択します。この例では、スクリプトはリージョン1のWebアプリケーションVMで実行されます。
    3. 「ローカル・スクリプトの実行」を選択します。
    4. リージョン1のWebアプリケーションVMであるターゲット・インスタンスを選択します。
    5. 「スクリプト・パラメータ」に、パラメータを含むスクリプトのフルパスを入力します。たとえば: /home/opc/full-stack-dr-scripts-main/oci-postgresql/backup-restore/psql_exec_cold_dr.py -c amo-psql-dbs.json -o terminate
    6. 「ユーザーとして実行」に、opcと入力します。
    7. 「ステップの追加」をクリックします。

    psql-webapp-auh-drpg-create-switchover-add-psql-terminate-details.png

    画像psql-webapp-auh-drpg-create-switchover-add-psql-terminate-details.pngの説明

    「追加」をクリックします。

    plan-custom-so-auh-grp-terminate-db-source-add.png

    画像psql-webapp-auh-drpg-create-switchover-add-terminate-details.pngの説明

  4. 作成したカスタム・プラン・グループに「有効」ステータスが表示されていることを確認します。 psql-webapp-auh-drpg- 作成- スイッチオーバー- 詳細-2.png

    画像psql-webapp-auh-drpg-create-switchover-details-2.pngの説明

スイッチオーバー・プランのカスタマイズが正常に完了しました。

タスク6: リージョン2でのフェイルオーバー計画のカスタマイズ

このタスクでは、フェイルオーバー中に実行する必要があるタスクを管理するための、ユーザー定義のカスタムDR計画グループおよびステップを追加します。

タスク6.1: フェイルオーバー計画の選択

タスク4で作成したフェイルオーバー計画にナビゲートします。

psql-webapp-auh-drpg- 作成- フェイルオーバー- 詳細-1.png

図psql-webapp-auh-drpg-create-failover-details-1.pngの説明

タスク6.2: リージョン2でカスタム・スクリプトを実行するプラン・グループの作成

まず、カスタムのユーザー定義DR計画グループを追加して、PostgreSQLOCI Database with PostgreSQLバックアップ/リストアDRプロセスのOCI Databaseの特定のニーズに合わせてDRワークフローを調整します。

これらのプラン・グループは、WebアプリケーションVMから必要なスクリプトを起動します。

事前移入されたフェイルオーバー計画には、PostgreSQL - フェイルオーバーおよびPostgreSQL - DNSの更新というカスタム計画を追加する必要があります。

  1. カスタム・プラン・グループを追加して、PostgreSQLフェイルオーバー・スクリプトを実行します。

    1. 「グループの追加」をクリックします。
    2. プラン・グループの「名前」を入力します。この例では、PostgreSQL - Failoverを使用します。
    3. 計画グループがDR計画に挿入される位置を選択します。この例では、「次より後に追加」を選択して、組込みプラン・グループの「コンピュート・インスタンス- 起動」の後にユーザー定義プラン・グループを挿入します。
    4. 「ステップの追加」をクリックして、PostgreSQLデータベースをフェイルオーバーするスクリプトを指定するダイアログを開きます。

    psql-webapp-auh-drpg-create-failover-add-dns.png

    画像psql-webapp-auh-drpg-create-failover-add-psql.pngの説明

    「プラン・グループの追加」ステップで、次の情報を入力します。

    1. ステップ名を入力します。この例では、PostgreSQL - Failoverを使用します。プラン・グループ名と同じです。
    2. このステップが実行されるインスタンスを含むリージョンを選択します。この例では、スクリプトはリージョン1のWebアプリケーションVMで実行されます。
    3. 「ローカル・スクリプトの実行」を選択します。
    4. リージョン1のWebアプリケーションVMであるターゲット・インスタンスを選択します。
    5. 「スクリプト・パラメータ」に、パラメータを含むスクリプトのフルパスを入力します。たとえば: /home/opc/full-stack-dr-scripts-main/oci-postgresql/backup-restore/psql_exec_cold_dr.py -c amo-psql-dbs.json -o failover
    6. 「ユーザーとして実行」に、opcと入力します。
    7. 「ステップの追加」をクリックします。

    psql-webapp-auh-drpg-create-failover-add-psql-fo-details.png

    画像psql-webapp-auh-drpg-create-failover-add-psql-fo-details.pngの説明

    「追加」をクリックします

    psql-webapp-auh-drpg-create-failover-add-psql-details.png

    画像psql-webapp-auh-drpg-create-failover-add-psql-details.pngの説明

  2. カスタム・プラン・グループを追加して、PostgreSQLデータベースDNSを更新します。

    1. 「グループの追加」をクリックします。
    2. プラン・グループの「名前」を入力します。この例では、PostgreSQL - Update DNSを使用します。
    3. 計画グループがDR計画に挿入される位置を選択します。この例では、「次以降に追加」を選択して、組込みプラン・グループPostgreSQL - フェイルオーバーの後にユーザー定義プラン・グループを挿入します。
    4. 「ステップの追加」をクリックして、PostgreSQLデータベースDNSを更新するスクリプトを指定するダイアログを開きます。

    psql-webapp-auh-drpg-create-failover-add-dns.png

    画像psql-webapp-auh-drpg-create-failover-add-dns.pngの説明

    「プラン・グループの追加」ステップで、次の情報を入力します。

    1. ステップ名を入力します。この例では、PostgreSQL - Update DNSを使用します。プラン・グループ名と同じです。
    2. このステップが実行されるインスタンスを含むリージョンを選択します。この例では、スクリプトはリージョン1のWebアプリケーションVMで実行されます。
    3. 「ローカル・スクリプトの実行」を選択します。
    4. リージョン1のWebアプリケーションVMであるターゲット・インスタンスを選択します。
    5. 「スクリプト・パラメータ」に、パラメータを含むスクリプトのフルパスを入力します。たとえば: /home/opc/full-stack-dr-scripts-main/oci-postgresql/backup-restore/psql_update_dns.py -c amo-psql-dbs.json -d xxx-psql-dbs.xxx.vcn01.internal -o failover
    6. 「ユーザーとして実行」に、opcと入力します。
    7. 「ステップの追加」をクリックします。

    psql-webapp-auh-drpg-create-failover-add-dns-fo-details.png

    画像psql-webapp-auh-drpg-create-failover-add-dns-fo-details.pngの説明

    「追加」をクリックします。

    psql-webapp-auh-drpg-create-failover-add-dns-details.png

    画像psql-webapp-auh-drpg-create-failover-add-dns-details.pngの説明

  3. 作成したカスタム・プラン・グループに「有効」ステータスが表示されていることを確認します。 psql-webapp-auh-drpg- 作成- フェイルオーバー- 詳細-2.png

    画像psql-webapp-auh-drpg-create-failover-details-2.pngの説明

フェイルオーバー計画のカスタマイズが正常に完了しました。

タスク7: リージョン2での事前チェックの実行

スイッチオーバーおよびフェイルオーバーの両方のDR計画がスタンバイ・リージョン2に正常に作成されました。これらの計画により、OCI Full Stack DRは、リージョン1からリージョン2にワークロードを移行できます。後続のタスクでは、スイッチオーバー計画とフェイルオーバー計画の両方の事前チェックを実行して、準備状況を確認し、移行プロセスを検証します。

タスク7.1: スイッチオーバー計画の事前チェックの開始

スイッチオーバーDR計画の事前チェックを実行します。

  1. リージョン・コンテキストがスタンバイ・リージョン2に設定されていることを確認します。

  2. リージョン2で正しいDR保護グループが選択されていることを確認してください。これはスタンバイ・ロールである必要があります。

  3. スイッチオーバー・プラン名をクリックします。

  4. 「処理」をクリックします。

  5. 「事前確認の実行」をクリックします。

    psql-webapp-auh-drpg-create-switchover-precheck.png

    画像psql-webapp-auh-drpg-create-switchover-precheck.pngの説明

  6. 「事前確認の実行」をクリックします。

    psql-webapp-auh-drpg-create-switchover-precheck-run.png

    画像psql-webapp-auh-drpg-create-switchover-precheck-run.pngの説明

  7. すべての事前チェックが正常に完了したかどうかを確認します。 psql-webapp-auh-drpg- 作成- スイッチオーバー- 事前チェック- 詳細-2.png

    画像psql-webapp-auh-drpg-create-switchover-precheck-details-2.pngの説明

タスク7.2: フェイルオーバー計画の事前チェックの開始

フェイルオーバーDR計画の事前チェックを実行します。

  1. リージョン・コンテキストがスタンバイ・リージョン2に設定されていることを確認します。

  2. リージョン2で正しいDR保護グループが選択されていることを確認してください。これはスタンバイ・ロールである必要があります。

  3. フェイルオーバー計画名をクリックします。

  4. 「処理」をクリックします。

  5. 「事前確認の実行」をクリックします。

    psql-webapp-auh-drpg-create-failover-precheck.png

    画像psql-webapp-auh-drpg-create-failover-precheck.pngの説明

  6. 「事前確認の実行」をクリックします。

    psql-webapp-auh-drpg-create-failover-precheck-run.png

    画像psql-webapp-auh-drpg-create-failover-precheck-run.pngの説明

  7. すべての事前チェックが正常に完了したかどうかを確認します。

    psql-webapp-auh-drpg- 作成- フェイルオーバー- 事前チェック- 詳細-2.png

    画像psql-webapp-auh-drpg-create-failover-precheck-details-2.pngの説明

タスク8: リージョン2でのスイッチオーバー計画の実行

スイッチオーバーDR計画を実行して、リージョン1からリージョン2へのPostgreSQLOCI Database with PostgreSQLを使用したOCI DatabaseでWebアプリケーションを移行するプロセスを開始します。

  1. リージョン・コンテキストがスタンバイ・リージョン2に設定されていることを確認します。

  2. リージョン2で正しいDR保護グループが選択されていることを確認してください。これはスタンバイ・ロールである必要があります。

  3. スイッチオーバー・プラン名をクリックします。

  4. 「アクション」をクリックします。

  5. 「計画の実行」をクリックします。

    psql-webapp-auh-drpg-switchover-execute.png

    画像psql-webapp-auh-drpg-switchover-execute.pngの説明

このタスクでは、リージョン2でスイッチオーバー計画が実行されます。

  1. 「事前チェックの有効化」の選択を解除します。これは、タスク7ですでに実行されているためです。
  2. 「計画の実行」をクリックします。

psql-webapp-auh-drpg-create-switchover-execute-run.png

画像psql-webapp-auh-drpg-create-switchover-execute-run.pngの説明

完全なワークロードがリージョン1からリージョン2に完全に移行されるまで、スイッチオーバー計画を監視すること。

スイッチオーバー計画の実行は約39分で正常に完了しました。

psql-webapp-auh-drpg- 作成- スイッチオーバー- 実行- 詳細-1.png

画像psql-webapp-auh-drpg-create-switchover-execute-details-1.pngの説明

psql-webapp-auh-drpg- 作成- スイッチオーバー- 実行- 詳細-2.png

図psql-webapp-auh-drpg-create-switchover-execute-details-2.pngの説明

スイッチオーバー後: Webアプリケーションは、以前と同じURLを使用して、リージョン2で再度アクセスできるようになります。

webapp-frontend-preview.png

画像webapp-frontend-preview.pngの説明

タスク9: リージョン1でのDR計画の作成およびカスタマイズ

OCI Full Stack DRによるスイッチオーバーが正常に完了したことで、リージョン2はプライマリ・リージョンのロールを引き受け、リージョン1はスタンバイ・リージョンとして機能するように移行しました。

タスク1から8で説明した同じアプローチに従って、リージョン1のDR保護グループ内でスイッチオーバーおよびフェイルオーバー計画を作成およびカスタマイズし、スタンバイ・ピア・リージョンとして機能するようになりました。

psql-webapp-dxb-drpg-plan-create.png

画像psql-webapp-dxb-drpg-plan-create.pngの説明

ノート: PostgreSQL - Terminateは、次のスクリーンショットには表示されません。

psql-webapp-dxb-drpg- 作成- スイッチオーバー- 詳細-1.png

画像psql-webapp-dxb-drpg-create-switchover-details-1.pngの説明

psql-webapp-dxb-drpg- 作成- フェイルオーバー- 詳細-1.png

画像psql-webapp-dxb-drpg-create-failover-details-1.pngの説明

タスク10: リージョン1でのフェイルオーバー計画の実行

フェイルオーバー計画の実行は、DR戦略の有効性を検証するために障害シナリオをシミュレートするテストを目的としています。このシミュレーションでは、リージョン2の仮想マシン(VM)を意図的に停止することによって、障害が模倣されます。

このシミュレートされた障害からリカバリするには、フェイルオーバーDR計画を実行します。フェイルオーバー・プロセスは、WebアプリケーションVMが起動され、PostgreSQLOCI Database with PostgreSQLを使用したOCI Databaseの最新の使用可能なバックアップがリージョン1にリストアされます。

ノート:フェイルオーバーDR計画は、致命的な計画外イベント中のみ使用してください。データ損失は、フェイルオーバー・プロセス中に発生する可能性があります。

  1. リージョン・コンテキストがスタンバイ・リージョン1に設定されていることを確認します。
  2. リージョン1の正しいDR保護グループが選択されていること、それがスタンバイ・ロールであることを確認してください。
  3. フェイルオーバー計画名をクリックします。
  4. 「処理」をクリックします。
  5. 「計画の実行」をクリックします。

psql-webapp-dxb-drpg-failover-execute.png

画像psql-webapp-dxb-drpg-failover-execute.pngの説明

このタスクは、リージョン1でフェイルオーバー計画を実行します。

  1. 実際のフェイルオーバー作業であるため、「事前チェックの有効化」の選択を解除したままにします。
  2. 「計画の実行」をクリックして開始します。

psql-webapp-dxb-drpg-failover-execute-run.png

画像psql-webapp-dxb-drpg-failover-execute-run.pngの説明

完全なワークロードがリージョン2からリージョン1に完全に移行されるまで、フェイルオーバー計画を監視すること。

フェイルオーバー計画の実行は約10分で正常に完了しました。

psql-webapp-dxb-drpg- 作成- フェイルオーバー- 実行- 詳細-1.png

画像psql-webapp-dxb-drpg-create-failover-execute-details-1.pngの説明

psql-webapp-dxb-drpg- 作成- フェイルオーバー- 実行- 詳細-2.png

画像psql-webapp-dxb-drpg-create-failover-execute-details-2.pngの説明

確認

その他の学習リソース

docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。