DBシステムでのOracle Data Guardの使用
Oracle Data Guardは、企業データの高可用性、データ保護および障害時リカバリを保証します。
Data Guard実装には、2つのデータベース(プライマリ・ロールに1つとスタンバイ・ロールに1つ)が必要です。Data Guardのアソシエーションは、2つのデータベース(プライマリ・データベースとスタンバイ・データベース)で構成されます。ほとんどのアプリケーションがプライマリ・データベースにアクセスし、スタンバイ・データベースは、トランザクション上の一貫性を持つ、プライマリ・データベースのコピーです。
Data Guardは、プライマリ・データベースからREDOデータを転送および適用することによってスタンバイ・データベースを維持します。プライマリ・データベースが使用できなくなった場合は、Data Guardを使用して、スタンバイ・データベースをプライマリ・ロールにスイッチオーバーまたはフェイルオーバーできます。
ノート:
OCIのスタンバイ・データベースは、フィジカル・スタンバイです。この記事では、コンソールを使用してDBシステム内のData Guardアソシエーションを管理する方法を説明します。
Data Guardの詳細は、Oracle Data Guardの概要を参照してください。
前提条件および一般情報
Data Guard実装には、2つのDBシステム(プライマリ・データベースを含むシステムとスタンバイ・データベースを含むシステム)が必要です。データベースに対してData Guardを有効にすると、スタンバイ・データベースを含む新しいDBシステムが作成され、プライマリ・データベースに関連付けられます。
ノート:
Data Guard構成は、プライマリ・データベースごとに1つのスタンバイ・データベースに制限されています。要件の詳細は次のとおりです:
- 両方のDBシステムが同じコンパートメントに含まれている必要があります。
- データベースのバージョンとエディションは同一である必要があります。23aiデータベースの場合、プライマリ・データベースとスタンバイ・データベースは同じメジャー・リリース・バージョンである必要がありますが、スタンバイ・データベースはより上位のマイナー・バージョンにできます。
- Data Guardでは、Oracle Database Standard Editionはサポートされていません。(Active Data Guardには、Enterprise Edition Extreme Performanceが必要です。)
- Data Guardアソシエーション内の各データベースは、Data Guardアソシエーションを含むDBシステム内の他のデータベースでは使用されていない一意の名前(
DB_UNIQUE_NAME
)の値を持つ必要があります。ただし、プライマリ・データベースとスタンバイ・データベースは、同じデータベース名DB_NAME
値を使用できます。 - データベース・エディションによって、Active Data Guard (ADG)を使用できるかどうかが決まります。ADGは、Enterprise Edition Extreme Performanceでのみ使用できます。BYOLライセンス・モデルを使用しており、ライセンスにADGが含まれていない場合は、Enterprise Edition Extreme Performance用にData Guardを構成する際に、ADGが有効になっていないことを確認する必要があります。あるいは、Enterprise EditionまたはEnterprise Edition High Performanceを使用することもできます。その場合、デフォルトでADGは有効になりません。データベースCLIでのOracle Data Guardの使用を参照してください。
- プライマリ・データベースとスタンバイ・データベースが同じリージョンにある場合は、両方が同じ仮想クラウド・ネットワーク(VCN)を使用する必要があります。
- プライマリ・データベースとスタンバイ・データベースが異なるリージョンにある場合は、データベースごとに仮想クラウド・ネットワーク(VCN)をピアリングする必要があります。RPCを使用したリモートVCNピアリングを参照してください。
- プライマリ・データベースとスタンバイ・データベースは異なるリージョンに配置できますが、同じレルムに存在する必要があります。
- プライマリ・データベースとスタンバイ・データベースの
SYS
パスワードおよびTDEウォレット・パスワードはすべて同じである必要があります。 - データベースでTDEキーにOCI Vaultを使用している場合、クロスリージョンData Guardもサポートされます。
- Data Guardアソシエーションの各DBシステムのサブネットに対してセキュリティ・リスト・イングレス・ルールおよびエグレス・ルールを構成して、該当するポート間でTCPトラフィックが移動できるようにします。作成するルールがステートフル(デフォルト)であることを確認します。
たとえば、プライマリDBシステムのサブネットでソースCIDR 10.0.0.0/24を使用し、スタンバイDBシステムのサブネットでソースCIDR 10.0.1.0/24を使用する場合は、次の例に示すようなルールを作成します。
ノート:
例のエグレス・ルールは、ポート1521に対してのみTCPトラフィックを有効にする方法を示します。これはData Guardが動作するための最小要件です。すべての送信ポート(0.0.0.0/0)でTCPトラフィックがすでに有効になっている場合は、これらの特定のエグレス・ルールを明示的に追加する必要はありません。既知の問題
- リージョン間のData Guardでは、スイッチオーバーの実行後は、新しいプライマリ・データベースでデータベースKMSキーをローテーションできません。
- リージョン間のData Guardでは、スイッチオーバーの実行後は、新しいプライマリ・データベースにPDBを作成できません。
プライマリDBシステムのサブネットのセキュリティ・リスト
Ingress Rules:
Stateless: No
Source: 10.0.1.0/24
IP Protocol: TCPSource Port Range: All
Destination Port Range: 1521
Allows: TCP traffic for ports: 1521
Egress Rules:
Stateless: No
Destination: 10.0.1.0/24
IP Protocol: TCP
Source Port Range: All
Destination Port Range: 1521
Allows: TCP traffic for ports: 1521
スタンバイDBシステムのサブネットのセキュリティ・リスト
Ingress Rules:
Stateless: No
Source: 10.0.0.0/24
IP Protocol: TCP
Source Port Range: All
Destination Port Range: 1521
Allows: TCP traffic for ports: 1521
Egress Rules:
Stateless: No
Destination: 10.0.0.0/24
IP Protocol: TCP
Source Port Range: All
Destination Port Range: 1521
Allows: TCP traffic for ports: 1521
ルールの作成および編集の詳細は、セキュリティ・リストを参照してください。
Oracle Data Guardの可用性ドメインおよびフォルト・ドメインに関する考慮事項
可用性とディザスタ・リカバリを向上させるために、スタンバイ・データベースが含まれるDBシステムは、プライマリ・データベースが含まれるDBシステムとは異なる可用性ドメインに配置することをお薦めします。あるデータベースでOracle Data Guardを有効にするが、(選択によって、または単一の可用性ドメイン・リージョンで作業しているために)スタンバイ・データベースがプライマリ・データベースと同じ可用性ドメインにある場合は、スタンバイ・データベースをプライマリ・データベースとは別のフォルト・ドメインに配置することをお薦めします。
ノート:
プライマリ・データベースとスタンバイ・データベースが2ノードのOracle RACデータベースであり、両方が同じ可用性ドメインにある場合、スタンバイ・データベースの2つのノードのいずれか1つのみを、プライマリ・データベースまたはスタンバイ・データベースからの他のノードを含まないフォルト・ドメインに配置できます。これは、各可用性ドメインには3つのフォルト・ドメインしかなく、プライマリ・データベースとスタンバイ・データベースには合計4つのノードがあるためです。可用性ドメインおよびフォルト・ドメインの詳細は、リージョンおよび可用性ドメインを参照してください。APIの使用
APIの使用およびリクエストの署名の詳細は、REST APIおよびセキュリティ資格証明を参照してください。SDKについては、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。
Data Guardアソシエーションを管理するには、次のAPI操作を使用します:
- CreateDataGuardAssociation
- GetDataGuardAssociation
- ListDataGuardAssociations
- SwitchoverDataGuardAssociation
- FailoverDataGuardAssociation
- ReinstateDataGuardAssociation
- TerminateDbSystem
データベース・サービスのAPIの完全なリストは、データベース・サービスAPIを参照してください。