Autonomous Data Guardを使用したクリティカルなデータベースの障害や災害からの保護

Autonomous Data Guard機能を使用すると、障害、災害、ヒューマン・エラーまたはデータ破損があっても、ミッション・クリティカルなアプリケーションでクリティカルな本番データベースを継続的に使用することができます。このような機能は通常、ディザスタ・リカバリと呼ばれます。

専用Exadataインフラストラクチャ上のAutonomous Databaseでは、Autonomous Container DatabaseレベルでAutonomous Data Guardを構成および管理します。

Autonomous Data Guardについて

Autonomous Data Guardは、完全に分離された2つのデータベース・コピー(アプリケーションが接続して使用するプライマリ・データベースと、プライマリ・データベースの同期コピーであるスタンバイ・データベース)を作成してメンテナンスします。その後、なんらかの理由でプライマリ・データベースが使用できなくなった場合、Autonomous Data Guardは自動的にスタンバイ・データベースをプライマリ・データベースに変換することで、アプリケーションへのサービス提供を開始します。

プライマリ・データベースとスタンバイ・データベースは、互いのピア・データベースと呼ばれることがよくあります。

ノート

Autonomous Data Guardによって提供されるデータベース可用性機能の利点を最大限に得るには、透過的アプリケーション・コンティニュイティ(TAC)を使用するようにアプリケーションを構成する必要があります。

次の図は、スタンバイ・データベースをプライマリ・データベースと常に同期させる方法を示しています。


autonomous-data-guard.epsの説明が続きます

プライマリ・データベースに対して行われた変更は、プライマリ・データベースのREDOログに記録されます。Autonomous Data Guardは、これらのREDOレコードをストリームとしてネットワーク経由でスタンバイ・データベースのREDOログに送信します。次に、スタンバイ・データベースがこれらのレコードをスタンバイ・データベースに適用します。このようにして、スタンバイ・データベースはプライマリ・データベースと常に同期されます。

同期はほぼ瞬時に行われますが、前述のプロセスで示したように、2つの操作(REDOレコードをスタンバイ・データベースに転送する操作と、REDOレコードをスタンバイ・データベースに適用する操作)に時間がかかります。このうち1つ目はトランスポート・ラグと呼ばれ、もう1つは適用ラグと呼ばれます。Autonomous Databaseの現在のラグ値は、サイド・メニューの「リソース」で「Autonomous Data Guardアソシエーション」を選択すると、データベースの「詳細」ページに表示されます。コンテナ・データベース内のすべてのAutonomous Databaseにわたる現在のラグ値は、同様の方法でコンテナ・データベースの「詳細」ページに表示できます。

Autonomous Data Guardの構成

専用インフラストラクチャ上のOracle Autonomous Database on Dedicated Exadata Infrastructureでは、Autonomous Data GuardをAutonomous Container Database (ACD)レベルで構成および管理します。Autonomous Data Guardは、新しいACDとOracle Public CloudデプロイメントですでにプロビジョニングされているACDの両方に対して有効にできます。

Autonomous Container Databaseを作成する場合、「Autonomous Data Guardの有効化」オプションを選択し、スタンバイ・データベースの詳細(特に、その作成先のExadataインフラストラクチャおよびAutonomous Exadata VMクラスタ・リソースと、使用する保護モード)を指定します。この2つの詳細に関する選択肢の詳細は、Autonomous Data Guard構成オプションを参照してください。

Autonomous Data Guardを有効にし、Oracle Cloud Infrastructure (OCI)コンソールの「詳細」ページから既存のACDにスタンバイACDを追加できます。ただし、次の2週間以内にアクティブなメンテナンス実行がスケジュールされているACDでAutonomous Data Guardを有効にすることはできません。スタンバイACDの追加操作が進行中の場合、そのACDのスケジュール済メンテナンスは、スタンバイの追加操作が完了するまで開始されません。手順については、Autonomous Container DatabaseでのAutonomous Data Guardの有効化を参照してください。

ロールの遷移および操作

Autonomous Container Databaseの作成後、スイッチオーバー操作かフェイルオーバー操作のいずれかを使用して、ピア・データベースのロールを変更できます。また、なんらかの理由でプライマリ・データベースが使用できなくなった場合、Autonomous Data Guardは自動的にフェイルオーバー操作を実行します。

スイッチオーバーは、プライマリ・データベースとそのスタンバイ・データベースのロールを交替させることです。スイッチオーバーでは、データ損失がないことが保証されます。スイッチオーバー中、プライマリ・データベースはスタンバイ・ロールに遷移し、スタンバイ・データベースはプライマリ・ロールに遷移します。一般に、スイッチオーバー操作を実行して、障害が発生したプライマリ・データベースがスタンバイとして回復された後に、ピア・データベースのロールを元の構成にリストアします。スイッチオーバー操作を実行するには、Autonomous Data Guard構成のロールの切替えを参照してください。

フェイルオーバーは、プライマリ・データベースが使用できなくなった場合に行われます。フェイルオーバーが行われると、スタンバイ・データベースがプライマリ・ロールに遷移します。一般に、フェイルオーバー操作を手動で実行する必要はありません。ただし、まれに自動障害操作が失敗した場合は、Autonomous Data Guard構成のスタンバイへのフェイルオーバーの説明に従って、手動フェイルオーバーを実行できます。

フェイルオーバー操作後のデータベースの可用性およびステータスは、2つのリカバリ目標によって特徴付けられます:

  • リカバリ時間目標(RTO)。RTOは、フェイルオーバー後にアプリケーションでデータベースが使用可能になるまでに必要な最大時間であり、ある程度は障害発生時の適用ラグに関連しています。Autonomous Data Guardの場合、RTOは数秒から2分までです。
  • リカバリ・ポイント目標(RPO)。RPOは、障害が発生したプライマリ・データベースで起こる可能性のあるデータ損失の最大期間であり、ある程度は障害発生時のトランスポート・ラグに関連しています。Autonomous Data Guardの場合、RPOはほぼゼロです。

障害が発生したプライマリ・データベースが再度使用可能になると、そのロールは「無効なスタンバイ」に設定されます。この時点で、回復操作を実行してそれを再度有効にします。回復操作を実行するには、Autonomous Data Guard構成の無効なスタンバイの回復を参照してください。

自動フェイルオーバーまたはファストスタート・フェイルオーバー

自動フェイルオーバーでは、リージョン障害、可用性ドメインの障害、ExadataインフラストラクチャまたはAutonomous Exadata VMクラスタの障害、またはAutonomous Container Database自体の障害によってプライマリAutonomous Container Databaseが使用できなくなると、自動的にスタンバイAutonomous Container Databaseにフェイルオーバーされます。これは、ファストスタート・フェイルオーバーとも呼ばれます。

自動フェイルオーバーは、デフォルトでは有効になっていません。Autonomous Data Guardの構成中に「自動フェイルオーバーの有効化」オプションを選択して、自動フェイルオーバーを有効にできます。自動フェイルオーバーを有効または無効にするには、Autonomous Data Guard設定の更新を参照してください。

ノート

Exadata Cloud@CustomerデプロイメントでクロスリージョンAutonomous Data Guardが設定されているデータベースに対して自動フェイルオーバーを有効にすることはできません。
最大パフォーマンス・モードと最大可用性保護モードの両方で、自動フェイルオーバーがサポートされています:
  • 最大可用性モードでは、自動フェイルオーバーによってデータ損失ゼロが保証されます。
  • 最大パフォーマンス・モードでは、自動フェイルオーバーにより、スタンバイ・データベースが「ファスト・スタート・フェイルオーバー・ラグ制限」に指定された値を超えてプライマリ・データベース遅れないことが保証されます。デフォルトでは、ファスト・スタート・フェイルオーバー・ラグ制限は30秒に設定され、最大パフォーマンス・モードにのみ適用されます。この場合、自動フェイルオーバーは、構成済のデータ損失保証を維持できる場合にのみ可能です。ファスト・スタート・フェイルオーバーのラグ制限は、5から3600までの任意の値に変更できます。手順については、Autonomous Data Guard設定の更新を参照してください。
    ノート

    19.17以前のバージョンのACDでサポートされている最小高速開始ラグ制限値は30秒です。
ハードウェア障害、可用性ドメインの停止およびリージョンの停止の他に、次に示すように、ファストスタート・フェイルオーバーをトリガーする可能性のあるデータベースの状態がさらにいくつかあります:
データベース・ヘルス状態 説明
破損した制御ファイル ディスク障害により、制御ファイルが完全に破損しました。
破損したディクショナリ クリティカルなデータベースのディクショナリの破損。現時点では、この状態は、データベースが開いている場合にのみ検出されます。
データファイル書込みエラー 書き込みエラーは、一時ファイル、システム・データ・ファイル、UNDOファイルなど、あらゆるデータ・ファイルで発生します。

自動フェイルオーバーの結果、障害が発生したプライマリ・データベースのロールは無効スタンバイになり、しばらくすると、スタンバイ・データベースがプライマリ・データベースのロールを引き継ぎます。自動フェイルオーバーが終了すると、フェイルオーバーが発生したことを通知するメッセージが無効になっているスタンバイ・データベースの詳細ページに表示されます。

サービスが以前のプライマリAutonomous Container Databaseの問題を解決した後、手動スイッチオーバーを実行して、両方のデータベースを初期ロールに戻すことができます。スタンバイ・データベースをプロビジョニングしたら、次のようなスタンバイ・データベースに関連する様々な管理タスクを実行できます:
  • プライマリ・データベースをスタンバイ・データベースに手動でスイッチオーバーします。
  • プライマリ・データベースをスタンバイ・データベースに手動でフェイルオーバーします。
  • フェイルオーバー後にプライマリ・データベースをスタンバイ・ロールに戻します。
  • スタンバイ・データベースを終了します。

スナップショット・スタンバイ・データベース

スナップショット・スタンバイ・データベースは、スタンバイAutonomous Container Database (ACD)からスナップショット・スタンバイACDへの変換によって作成される、完全に更新可能なスタンバイ・データベースです。手順については、「フィジカル・スタンバイからスナップショット・スタンバイへの変換」を参照してください。

スナップショット・スタンバイ・データベースは、プライマリ・データベースからREDOデータを受信およびアーカイブしますが、適用はしません。ただし、プライマリ・データベースからのリアルタイムの変更は適用されないため、リカバリ時間目標(RTO)は増加します。

スナップショット・スタンバイ機能は様々なユースケースをサポートしていますが、主なユースケースを次に示します。
  • プライマリおよびスタンバイ・アプリケーション・インスタンスを読取り/書込みモードでプライマリおよびスタンバイ・データベースに接続して、初期構成を実行します。
  • 最初にスナップショット・スタンバイ・データベースにパッチを適用し、スタンバイ・アプリケーション・インスタンスでテストしてパッチの安定性を確認します。
ノート

自動フェイルオーバーが有効になっている場合は、フィジカル・スタンバイAutonomous Container Databaseをスナップショット・スタンバイに変換できません。
スナップショット・スタンバイへの変換中に、スナップショット・モードでのみアクティブな新しいデータベース・サービスをアクティブ化するか、プライマリ・データベースで使用される同じサービス・セットを使用できます。ただし、スナップショット・スタンバイ・データベースでプライマリ・データベース・サービスをアクティブ化すると、スナップショット・スタンバイ接続リクエストがプライマリ・データベースに転送されたり、誤ったデータベース接続文字列を使用したりする場合があります。したがって、プライマリ・データベースおよびスナップショット・スタンバイ・データベースへの接続時には、適切な接続文字列を使用するように注意する必要があります。
ノート

スナップショット・スタンバイで新しいサービスを作成すると、スナップショット・スタンバイACD内のすべてのAutonomous Databaseのウォレットが更新されます。データベースにアクセスするには、スタンバイAutonomous Databaseからウォレットをリロードし、スナップショット・スタンバイ接続文字列を使用します。

Oracle Cloud Infrastructure (OCI)から手動でスナップショット・スタンバイACDをフィジカル・スタンバイACDに戻すことができます。詳細な手順は、「スナップショット・スタンバイを物理スタンバイに変換」を参照してください。スナップショット・スタンバイは、手動でフィジカル・スタンバイに変換されない場合、作成から7日後に自動的にフィジカル・スタンバイに戻されます。いずれの場合も、スナップショット・スタンバイをフィジカル・スタンバイに変換すると、スナップショット・スタンバイ・データベースへのすべてのローカル更新が破棄され、プライマリ・データベースから受信したREDOデータが適用されます。

スタンバイACDがスナップショット・スタンバイ・モードの場合、プライマリACDに対して次の操作は実行できません。
  • Autonomous Databasesの作成または終了
  • Autonomous Databasesのスケール・アップまたはスケール・ダウン
  • Autonomous Databasesのリストア

状況が要求される場合は、プライマリ・データベースからスナップショット・スタンバイに手動でフェイルオーバーできます。その場合、フェイルオーバーは、スナップショット・スタンバイ・データベースのすべてのローカル更新を破棄し、プライマリ・データベースからデータを適用することで、スナップショット・スタンバイ・データベースをフィジカル・スタンバイ・データベースに変換します。ステップバイステップの手順については、Autonomous Data Guard構成でのスタンバイへのフェイルオーバーを参照してください。

プライマリ・データベースとそのスナップショット・スタンバイ・データベースのスイッチオーバーは許可されません。スイッチオーバーを試行する前に、スナップショット・スタンバイを手動でフィジカル・スタンバイに変換する必要があります。

クライアント・アプリケーションからのスタンバイ・データベースへのアクセス

Autonomous Data Guard構成では、クライアント・アプリケーションは通常、プライマリ・データベースに接続して操作を実行します。

フィジカル・スタンバイ・データベースへの接続

Autonomous Data Guardには、この通常の接続に加えて、スタンバイ・データベースで読取り専用操作のみを実行するクライアント・アプリケーションに接続するオプションもあります。このオプションを利用するために、クライアント・アプリケーションは、("読取り専用"を表す) "_RO"を含むデータベース・サービス名を使用してデータベースに接続します(Autonomous Databaseの事前定義済データベース・サービス名を参照)。

スナップショット・スタンバイ・データベースへの接続

Autonomous Data Guardでは、読取り/書込み操作を実行するクライアント・アプリケーションをスナップショット・スタンバイ・データベースに接続することもできます。スナップショット・スタンバイ・データベースに接続するために、クライアント・アプリケーションは、「Autonomous Databasesの事前定義済データベース・サービス名」の説明に従って、_SS (スナップショット・スタンバイ用)を含むデータベース・サービス名を使用できます。

ノート

スタンバイ・データベースがスナップショット・スタンバイ・モードの場合、名前に_ROサービスを含むすべてのデータベース・サービスは非アクティブであり、接続に使用できません。

タイム・ラグのモニタリング

Autonomous Data Guardを使用するデータベースが実行されている間は、サイド・メニューの「リソース」で「Autonomous Data Guardアソシエーション」を選択して、データベース(またはコンテナ・データベース)の「詳細」ページからトランスポート・ラグおよび適用ラグの時間をモニターできます。

時間の経過とともに、データベースのワークロードの増減に伴って小さな変動はあるはずです。ただし、ラグの時間の継続的な上昇傾向に気付いた場合は、次のアクションを実行して状況を解決できます:

  • 適用ラグの上昇傾向。適用ラグの継続的な上昇傾向は、スタンバイ・データベースにプライマリ・データベースからのREDOレコードに対応するための十分な容量がないことを示します。この状況を解決するには、専用Autonomous DatabaseへのCPUまたはストレージ・リソースの追加の説明に従って、データベースのOCPUをスケール・アップします。
  • トランスポート・ラグの上昇傾向。トランスポート・ラグの継続的な上昇傾向は、ネットワーク・パフォーマンスの問題を示します。Oracle Cloudの運用スタッフがネットワーク・パフォーマンスを常にモニターしているため、ユーザーは何もアクションを実行しなくても状況は解決します。ただし、必要な場合は、My Oracle Supportでのサービス・リクエストの作成の説明に従って、サービス・リクエストを発行し、運用スタッフに状況の対処を依頼することができます。

Autonomous Data Guard構成オプション

Autonomous Data Guardを有効にしてAutonomous Container Databaseを作成する場合、スタンバイ・データベースを作成するExadataインフラストラクチャおよびAutonomous Exadata VMクラスタ・リソースを指定し、使用するデータ保護モードを指定します。

スタンバイに使用するExadataインフラストラクチャおよびAutonomous Exadata VMクラスタ・リソースを指定する場合、次の3つの選択肢があります:

  • プライマリ・データベースのExadataインフラストラクチャおよびAutonomous Exadata VMクラスタとは異なるリージョン:

    これを選択すると、リージョン全体への外部ネットワーク接続や電力の大幅な損失などの障害に対して最高レベルの保護が提供されます。

    このクロスリージョン保護を最大限に利用するには、クロスリージョン保護をサポートするようにアプリケーション層を構成する必要もあります。そのため、アプリケーション層がすでにこのように構成されている場合、またはクロスリージョン保護をサポートするようにアプリケーション層を再構成する場合は、このオプションを選択することをお薦めします。

    スタンバイ・データベースを別のリージョンに配置することを選択した場合は、「最大パフォーマンス」保護モードを使用することをお薦めします。

  • プライマリ・データベースのExadataインフラストラクチャおよびAutonomous Exadata VMクラスタとは異なる可用性ドメイン(AD):

    これを選択すると、リージョン内のアベイラビリティ・ドメインへの外部ネットワーク接続や電力の大幅な損失などの障害に対して高いレベルの保護が提供されます。

    これを選択すると、データ保護とアプリケーション層の構成のシンプルさとのバランスをうまく取ることができます。

    スタンバイ・データベースを別の可用性ドメインに配置することを選択した場合は、「最大可用性」保護モードを使用することをお薦めします。

  • プライマリ・データベースのExadataインフラストラクチャおよびAutonomous Exadata VMクラスタと同じ可用性ドメイン(AD):

    これを選択すると、障害に対する保護は最小レベルになります。これを選択することはお薦めしません。

    プライマリ・データベースのExadataインフラストラクチャおよびAutonomous Exadata VMクラスタ・リソースが、可用性ドメインが1つのみのリージョンにある場合、「異なるリージョン」オプションを使用することをお薦めします。

    スタンバイ・データベースを同じ可用性ドメインに配置することを選択した場合は、「最大可用性」保護モードを使用することをお薦めします

保護モードについて

Autonomous Data Guardには、次のデータ保護モードがあります:

  • 最大可用性。この保護モードは、プライマリ・データベースの可用性に影響を与えない範囲の最上位レベルのデータ保護を提供します。

    データが(ディスクに書き込まれたことではなく)スタンバイで受信されたことを確認するまで、プライマリ・データベースはトランザクションをコミットしません。プライマリ・データベースが30秒以内にこの確認を受信しなかった場合、最大パフォーマンス・モードであるかのように動作して、確認を再び適時に受信するまでプライマリ・データベースの可用性を保持します。

    この保護モードでは、特定の二重障害の場合(スタンバイ・データベースの障害発生後のプライマリ・データベースの障害など)を除いて、ゼロ・データ損失が保証されます。

  • 最大パフォーマンス。これはデフォルトの保護モードです。これは、プライマリ・データベースのパフォーマンスに影響を与えない範囲で可能な最高レベルのデータ保護を提供します。

    プライマリ・データベースは、トランザクションによって生成されたすべてのREDOデータがそのオンラインREDOログに書き込まれるとすぐに、そのトランザクションをコミットします。また、REDOデータをスタンバイ・データベースに送信しますが、これはトランザクション・コミットとは非同期に実行されるため、プライマリ・データベースのパフォーマンスはスタンバイ・データベースへのREDOデータの書込みの遅延の影響を受けません。

    この保護モードを使用すると、最大可用性モードよりもデータ保護が若干弱くなり、プライマリ・データベースのパフォーマンスへの影響は最小限になります。

Autonomous Data Guard設定の保護モードは、Oracle Cloud Infrastructure (OCI)コンソールから変更できます。ステップバイステップの手順については、Autonomous Data Guard設定の更新を参照してください。

(Autonomous Data Guard機能の基礎となる) Oracle Data Guardの保護モードの詳細は、『Oracle Data Guard概要および管理』Oracle Data Guardの保護モードに関する項を参照してください。

Autonomous Data Guardが標準管理操作に与える影響

Autonomous Container DatabaseでAutonomous Data Guard構成のプライマリ・コンテナ・データベースおよびスタンバイ・コンテナ・データベースに実行する標準管理操作は、標準のコンテナ・データベースと比較して、その仕組みが異なる場合があります。次のリストでは、これらの違いについて説明します。

  • メンテナンス・スケジュールの変更

    プライマリ・コンテナ・データベースとそのスタンバイのメンテナンス・スケジュールはリンクされています: スタンバイのメンテナンスは、プライマリ・コンテナ・データベースのメンテナンスの何日か前に実行されます。デフォルトは7日です。プライマリ・コンテナ・データベースを作成するとき、または後でメンテナンス詳細を編集するときに、1日から7日までの値を選択できます。

  • メンテナンス・タイプの変更

    プライマリ・コンテナ・データベースとそのスタンバイのメンテナンス・タイプは同じである必要があります。プライマリ・コンテナ・データベースを作成するとき、または後でメンテナンス詳細を編集するときに、プライマリとスタンバイの両方のメンテナンス・タイプを選択します。

  • 自動バックアップの無効化

    Autonomous Data Guardを使用したAutonomous Container Database (ACD)のプロビジョニング中は、自動バックアップを無効にできません

  • スケジュール済メンテナンスの管理

    プライマリ・コンテナ・データベースとそのスタンバイのスケジュール済メンテナンスは、個別に管理できます。ただし、2つのメンテナンスはリンクされているため、スケジュール済メンテナンス時間を上書きするように選択した場合は、プライマリの前にスタンバイでスケジュール済メンテナンスを実行する必要があります。

  • 別のコンパートメントへの移動

    プライマリ・コンテナ・データベースとスタンバイ・コンテナ・データベースは、標準のコンテナ・データベースと同じように、個別に移動できます。ただし、標準のコンテナ・データベースの場合と同様に、適切なクラウド・ユーザー・グループからのみコンテナ・データベースをアクセス可能な状態に保つために、コンテナ・データベースを移動する際には細心の注意を払う必要があります。

  • 再起動

    プライマリ・コンテナ・データベースとスタンバイ・コンテナ・データベースは、標準のコンテナ・データベースと同じように、個別に再起動できます。

  • 暗号化キーのローテーション

    プライマリ・コンテナ・データベースとスタンバイ・コンテナ・データベースの暗号化キーは、標準のコンテナ・データベースと同じように、個別にローテーションできます。

  • 終了

    プライマリ・コンテナ・データベースとスタンバイ・コンテナ・データベースは個別に終了できます。ただし、プライマリ・コンテナ・データベースの終了とスタンバイ・コンテナ・データベースの終了の結果は異なります:

    • プライマリ・コンテナ・データベースを終了すると、プライマリ・コンテナ・データベースとスタンバイ・コンテナ・データベースの両方が終了します。Autonomous Databaseを含むプライマリ・コンテナ・データベースは終了できません。
    • スタンバイ・コンテナ・データベースを終了すると、スタンバイ・コンテナ・データベースが終了し、プライマリ・コンテナ・データベースからAutonomous Data Guard構成が削除されて、それが標準のコンテナ・データベースになります。