15 追加の高可用性計画の実装
レプリケーションに加えて、他の高可用性計画をリカバリ・アプライアンスとともに使用して、特定のシナリオでのデータ損失に対する保護を強化できます。
サイト障害およびシステムの停止に対してアプライアンスを保護するOracle最大可用性アーキテクチャ(MAA)のベスト・プラクティスは、リカバリ・アプライアンス・レプリケーションを使用して障害回復戦略を実装することです。レプリカ・アプライアンスを使用すると、保護されたデータベースのバックアップ、REDOおよびリストア操作は中断されることなく続行され、完全なデータ保護が維持されます。
組織に障害回復戦略がない場合、または既存の障害回復戦略にローカル・システムの高可用性を追加する場合は、リカバリ・アプライアンスのバックアップおよびREDOフェイルオーバー機能を使用できます。
高可用性(HA)および障害回復ソリューションのもう1つのコンポーネントは、Oracle Data Guardです。Oracle Data Guardは、保護されたデータベースの同期化されたスタンバイ・データベースを維持することによって、サービス中断および生じたデータ損失を最小限に抑えます。
関連項目:
-
バックアップおよびREDOフェイルオーバーの構成の詳細および手順は、「バックアップおよびREDOフェイルオーバー計画を使用した一時的な停止の管理」を参照してください
-
Oracle Data Guardの詳細は、「最大可用性: Oracle Data Guardと連携するリカバリ・アプライアンス」を参照してください
-
リカバリ・アプライアンス・レプリケーションの詳細は、「リカバリ・アプライアンスでのバックアップのレプリケート」を参照してください。
バックアップおよびREDOフェイルオーバー計画を使用した一時的な停止の管理
バックアップおよびREDOフェイルオーバーは、プライマリ・リカバリ・アプライアンスが停止したとき、または計画メンテナンスが必要なときに、保護されたデータベースがバックアップおよびREDOを一時的に代替リカバリ・アプライアンスに送ることを許可する高可用性機能です。これによって、保護されたデータベースのバックアップおよびREDOは中断することなく続行され、完全なデータ保護を維持できます。また、データベースのローカル・アーカイブ・ログの宛先が一杯になりデータベースに影響を与えることを防止します(代替のバックアップ宛先がない場合はそのようになることがあります)。
バックアップおよびREDOフェイルオーバー機能の概要
バックアップおよびREDOフェイルオーバーが構成されている環境で、保護されたデータベースは、通常の状況ではプライマリ・リカバリ・アプライアンスにバックアップおよびREDOを送信します。そのアプライアンスが使用できない場合、保護されたデータベースは、プライマリのサービスがリストアされるまで、バックアップおよびREDOを代替リカバリ・アプライアンスに送信します。
代替アプライアンスは、受信した一時バックアップから仮想完全バックアップを作成せず、バックアップ・ピースの格納のみを行います(増分バックアップおよびアーカイブ・ログ・バックアップ)。プライマリ・アプライアンスがオンラインに戻って機能するようになると、代替アプライアンスはすべての一時バックアップをプライマリ・アプライアンスに転送し、プライマリ・アプライアンスはそのバックアップを使用して対応する仮想完全バックアップを作成します。すべての仮想完全バックアップが作成されると、保護されたデータベースはプライマリ・アプライアンスへのバックアップおよびREDOの送信を再開します。代替アプライアンスは、プライマリ・アプライアンスに正常に転送して初めて、ローカル記憶域から一時バックアップ・ピースを削除します。
バックアップおよびREDOフェイルオーバーの構成
この項では、バックアップおよびREDOフェイルオーバーを構成する方法について説明します。基本的なワークフローは次のとおりです。
-
「バックアップおよびREDOフェイルオーバーのためのプライマリ・リカバリ・アプライアンスの構成」の説明に従って、プライマリ・リカバリ・アプライアンスを構成します。
-
「バックアップおよびREDOフェイルオーバーのための代替リカバリ・アプライアンスの構成」の説明に従って、代替リカバリ・アプライアンスを構成します。
-
「バックアップおよびREDOフェイルオーバーのためのレプリケーションの構成」の説明に従って、代替リカバリ・アプライアンスからプライマリ・リカバリ・アプライアンスへのレプリケーションを構成します。
-
「バックアップおよびREDOフェイルオーバーのための保護されたデータベースの構成」の説明に従って、バックアップを送信するために保護されたデータベースを構成します。
バックアップおよびREDOフェイルオーバーのためのプライマリ・リカバリ・アプライアンスの構成
バックアップおよびREDOフェイルオーバーのためにプライマリ・リカバリ・アプライアンスを構成するには、レプリケーション・シナリオのダウンストリーム・リカバリ・アプライアンスの設定用タスクの多くを実行します。
タスク1: プライマリ・リカバリ・アプライアンスでのVPCユーザー・アカウントおよびレプリケーション・ユーザー・アカウントの作成
racli add db_userに関する項の手順に従います。
たとえば、リカバリ・アプライアンスにrootとしてログインし、binディレクトリに変更し、次のコマンドを使用してVPCユーザーを作成します。
# ./racli add db_user --user_name=vpcuser --user_type=vpc
プロンプト表示されたら、vpcuser
ユーザーのパスワードを入力します。
CREATE SESSION
権限のあるレプリケーション・ユーザーrepuser_from_alternate
を作成するには、次のようにします。
CREATE USER repuser_from_alternate IDENTIFIED BY password;
GRANT CREATE SESSION TO repuser_from_alternate;
代替で作成されたuser_name
は、プライマリで作成されたVPCユーザーと同じである必要があります。ただし、パスワードは同じである必要はありません。
タスク2 プライマリ・リカバリ・アプライアンスでの保護ポリシーの作成
「保護ポリシーの作成」の手順に従います。store_and_forward
フィールドがNO
に設定されていることを確認します。
たとえば、次のPL/SQLプログラムを実行して、primary_brf
ポリシーを作成します。
BEGIN DBMS_RA.CREATE_PROTECTION_POLICY ( protection_policy_name => 'primary_brf', description => 'For protected dbs on primary', storage_location_name => 'delta', recovery_window_goal => INTERVAL '28' DAY, guaranteed_copy => 'NO', store_and_forward => 'NO'); END;
タスク3: プライマリ・リカバリ・アプライアンスでの保護ポリシーへのデータベースの追加
「保護されたデータベースの登録」の手順に従います。
たとえば、次のPL/SQLプログラムを実行して、orcl12
を前のタスクで作成したprimary_brf
ポリシーに追加します。
BEGIN DBMS_RA.ADD_DB ( db_unique_name => 'orcl12', protection_policy_name => 'primary_brf', reserved_space => '128G'); END;
タスク4: プライマリ・リカバリ・アプライアンスでのVPCユーザーおよびレプリケーション・ユーザーへのデータベース・アクセスの付与
「保護されたデータベースの登録」の手順に従います。
たとえば、次のPL/SQLプログラムを実行して、VPCユーザーvpcuser
およびレプリケーション・ユーザーrepuser_from_alternate
に、保護されたデータベースorcl12
で必要な権限を付与します。
BEGIN DBMS_RA.GRANT_DB_ACCESS ( username => 'vpcuser', db_unique_name => 'orcl12'); END; BEGIN DBMS_RA.GRANT_DB_ACCESS ( username => 'repuser_from_alternate', db_unique_name => 'orcl12'); END;
バックアップおよびREDOフェイルオーバーのための代替リカバリ・アプライアンスの構成
代替リカバリ・アプライアンスを構成するには、レプリケーション・シナリオのアップストリーム・リカバリ・アプライアンスの設定に類似したタスクを実行します。
タスク1 代替リカバリ・アプライアンスでのバックアップおよびREDOフェイルオーバーのための保護ポリシーの作成
「保護ポリシーの作成」の手順に従います。store_and_forward
フィールドをYES
に設定していることを確認します。
たとえば、次のPL/SQLプログラムを実行して、alt_brf
ポリシーを作成します。
BEGIN DBMS_RA.CREATE_PROTECTION_POLICY ( protection_policy_name => 'alt_brf', description => 'For protected dbs on alternate', storage_location_name => 'delta', recovery_window_goal => INTERVAL '28' DAY, guaranteed_copy => 'NO', store_and_forward => 'YES'); END;
タスク2: 代替リカバリ・アプライアンスでの保護ポリシーへのデータベースの追加
「保護されたデータベースの登録」の手順に従います。
たとえば、次のPL/SQLプログラムを実行して、orcl12
を前のタスクで作成したalt_brf
ポリシーに追加します。
BEGIN DBMS_RA.ADD_DB ( db_unique_name => 'orcl12', protection_policy_name => 'alt_brf', reserved_space => '128G'); END;
タスク3: 代替リカバリ・アプライアンスでのVPCユーザーへのデータベース・アクセスの付与
このユーザーは、「タスク1: プライマリ・リカバリ・アプライアンスでのVPCユーザー・アカウントおよびレプリケーション・ユーザー・アカウントの作成」で作成されました。
「保護されたデータベースの登録」の手順に従います。
たとえば、次のPL/SQLプログラムを実行して、VPCユーザーvpcuser
に保護されたデータベースorcl12
で必要な権限を付与します。
BEGIN DBMS_RA.GRANT_DB_ACCESS ( username => 'vpcuser', db_unique_name => 'orcl12'); END;
バックアップおよびREDOフェイルオーバーのレプリケーションの構成
プライマリ・リカバリ・アプライアンスおよび代替リカバリ・アプライアンスを構成した後、代替アプライアンスからプライマリ・アプライアンスへのレプリケーションの設定に類似したタスクを実行します。このシナリオでは、代替アプライアンスはアップストリーム・ロールを持ち、プライマリ・アプライアンスはダウンストリーム・ロールを持ちます。
タスク1: 代替リカバリ・アプライアンスでのOracleウォレットの構成
代替リカバリ・アプライアンスで、mkstore
ユーティリティを使用してOracle自動ログイン・ウォレットを作成し、「タスク1: プライマリ・リカバリ・アプライアンスでのVPCユーザー・アカウントおよびレプリケーション・ユーザー・アカウントの作成」で作成したレプリケーション・ユーザーの資格証明を追加します。代替リカバリ・アプライアンスは、プライマリ・リカバリ・アプライアンスへのログイン時にこれらの資格証明が必要となります。
代替リカバリ・アプライアンスで自動ログイン・ウォレットを構成するには:
-
次のコマンドを実行して、
/dbfs_repdbfs/REPLICATION
ディレクトリにOracleウォレットを作成します。mkstore -wrl /dbfs_repdbfs/REPLICATION -createALO
mkstore
ユーティリティにより、cwallet.sso
という名前のファイルが指定した場所に作成されます。 -
次のコマンドを実行して、レプリケーション・ユーザー資格証明を追加します。
mkstore -wrl wallet_location -createCredential serv_name rep_user pwd
プレースホルダは次のように定義されています。
-
wallet_location
は、前のステップでウォレットを作成したディレクトリです。 -
serv_name
は、Oracleネットワーク上でプライマリ・リカバリ・アプライアンスを識別するためにEZ接続記述子で使用するOracleネットワーク・サービス名です。 -
rep_user
は、レプリケーション・ユーザー・アカウントのユーザー名です。このユーザーは、「タスク1: プライマリ・リカバリ・アプライアンスでのVPCユーザー・アカウントおよびレプリケーション・ユーザー・アカウントの作成」で作成されました。レプリケーション・ユーザーは代替では作成されません。 -
pwd
は、レプリケーション・ユーザーrep_user
のセキュア・パスワードです。
たとえば、次のコマンドは、ポート
1522
およびデータベース名rapri
を使用するネット・サービス名rapribrf-scan.acme.com
と、レプリケーション・ユーザー名repuser_from_alternate
の資格証明を追加します。mkstore -wrl /dbfs_repdbfs/REPLICATION -createCredential \ "rapribrf-scan.acme.com:1522/rapri" "repuser_from_alternate" "pwd"
-
-
次のコマンドを実行して、このユーザーに資格証明が適切に追加されたことを確認します。
mkstore -wrl /dbfs_repdbfs/REPLICATION -listCredential Oracle Secret Store Tool : Version 12.1.0.1 Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. List credential (index: connect_string username) 1: rapribrf-scan.acme.com:1522/rapri repuser_from_alternate
結果にパスワードは表示されません。
タスク2: 代替リカバリ・アプライアンスでのレプリケーション・サーバー構成の作成
DBMS_RA.CREATE_REPLICATION_SERVER
を実行して、この代替リカバリ・アプライアンスが停止後にバックアップを転送するプライマリ・リカバリ・アプライアンスにレプリケーション・サーバー構成を作成します。
このタスクでは、次のことを想定しています。
-
raprimary_rep
というレプリケーション・サーバー構成を作成します。 -
代替リカバリ・アプライアンスで、レプリケーション・アカウント
repuser_from_alternate
を使用してプライマリ・リカバリ・アプライアンスにログインします。このアカウントは、「タスク1: プライマリ・リカバリ・アプライアンスでのVPCユーザー・アカウントおよびレプリケーション・ユーザー・アカウントの作成」で作成されました。 -
構成では、「タスク1: 代替リカバリ・アプライアンスでのOracleウォレットの構成」で作成したOracleウォレットに格納されているネット・サービス名
rapribrf-scan.acme.com:1522/rapri
を使用します。 -
Oracleウォレットは
/dbfs_repdbfs/REPLICATION
に格納されています。 -
すべてのリカバリ・アプライアンスに事前インストールされているリカバリ・アプライアンス・バックアップ・モジュールのファイル名は
/u01/app/oracle/product/12.1.0.2/dbh1/lib/libra.so
です。このモジュールは、SBTメディア管理ライブラリとして機能します。RMANは、リカバリ・アプライアンスにバックアップするためのチャネルを割当てまたは構成する際に、このモジュールを参照します(「リカバリ・アプライアンス・レプリケーションのための保護されたデータベースの構成」を参照)。
レプリケーション・サーバー構成を作成するには:
-
SQL*PlusまたはSQL Developerで、
RASYS
として代替リカバリ・アプライアンスのメタデータ・データベースに接続します。 -
プライマリ・リカバリ・アプライアンスに対して
DBMS_RA.CREATE_REPLICATION_SERVER
プロシージャを実行します。次の例では、プライマリ・リカバリ・アプライアンスに
raprimary_rep
というレプリケーション・サーバー構成を作成します。BEGIN DBMS_RA.CREATE_REPLICATION_SERVER ( replication_server_name => 'raprimary_rep', sbt_so_name => '/u01/app/oracle/product/12.1.0.2/dbh1/lib/libra.so', catalog_user_name => 'RASYS', wallet_alias => 'rapribrf-scan.acme.com:1522/rapri', wallet_path => 'file:/dbfs_repdbfs/REPLICATION'); END;
-
レプリケーション・サーバー構成の作成を確認します。
replication_server_name
は大文字に変換されて、格納されます。したがって、名前の問合せも大文字にする必要があります。たとえば、次の問合せを実行します。
SELECT COUNT(*) should_be_one FROM RA_REPLICATION_SERVER WHERE REPLICATION_SERVER_NAME = 'RAPRIMARY_REP'; SHOULD_BE_ONE ------------- 1
構成が正しく作成された場合、戻り値は
1
です。
タスク3: 代替リカバリ・アプライアンスのバックアップおよびREDOフェイルオーバーの保護ポリシーとの関連付け
レプリケーション・サーバー構成を保護ポリシーに割り当てることで、代替リカバリ・アプライアンスが停止後にバックアップを転送するプライマリ・リカバリ・アプライアンスを指定します。
このタスクでは、次のことを想定しています。
-
「タスク2: 代替リカバリ・アプライアンスでのレプリケーション・サーバー構成の作成」で作成した
raprimary_rep
というレプリケーション・サーバー構成を使用します。 -
レプリケーション・サーバー構成を、「タスク1: 代替リカバリ・アプライアンスでのバックアップおよびREDOフェイルオーバーのための保護ポリシーの作成」で作成した保護ポリシー
alt_brf
に追加します。
レプリケーション・サーバー構成をバックアップおよびREDOフェイルオーバー保護ポリシーに関連付けるには:
-
リカバリ・アプライアンス管理者として代替リカバリ・アプライアンスのメタデータ・データベースに接続していることを確認します。
-
バックアップおよびREDOフェイルオーバー保護ポリシーとレプリケーション・サーバー構成に対して、
DBMS_RA.ADD_REPLICATION_SERVER
プロシージャを実行します。たとえば、次のPL/SQLプログラムを実行します。
BEGIN DBMS_RA.ADD_REPLICATION_SERVER ( replication_server_name => 'raprimary_rep', protection_policy_name => 'alt_brf'); END;
関連項目:
バックアップおよびREDOフェイルオーバーのための保護されたデータベースの構成
バックアップおよびREDOフェイルオーバーのレプリケーションを構成した後、保護されたデータベースの管理者はこの項のタスクを実行して、保護されたデータベースが通常の状況ではバックアップをプライマリ・リカバリ・データベースに送信し、計画停止または計画外の停止の間は代替リカバリ・アプライアンスに送信できるようにする必要があります。
タスク1: ウォレットの場所を指定するsqlnet.oraの構成
sqlnet.oraファイルに、Oracleウォレットの場所が含まれていることを確認します。
次の例は、ウォレットの場所のエントリがどのように表示されるかを示しています。
SQLNET.WALLET_OVERRIDE = true WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/product/12.1.0/dbhome_1/dbs/zdlra) ) )
タスク2: sqlnet.oraで指定した場所での自動ログイン・ウォレットの作成
次の例では、「タスク1: ウォレットの場所を指定するsqlnet.oraの構成」で指定したディレクトリに自動ログイン・ウォレットを作成します。
$ mkstore -wrl /u01/app/oracle/product/12.1.0/dbhome_1/dbs/zdlra/ -createALO
タスク3: プライマリおよび代替リカバリ・アプライアンスの資格証明のウォレットへの追加
このタスクでは、保護されたデータベースの管理者は、「タスク1: プライマリ・リカバリ・アプライアンスでのVPCユーザー・アカウントおよびレプリケーション・ユーザー・アカウントの作成」で作成したVPCユーザーを使用して、プライマリおよび代替アプライアンスの資格証明をウォレットに追加します。
次の例では、プライマリ・アプライアンスrapribrf-scan.acme.com:1521/rapri:dedicated
および代替アプライアンスraaltbrf-scan.acme.com:1521/raalt:dedicated
のvpcuser
資格証明を、保護されたデータベース上のウォレットに追加します。
$ mkstore -wrl /u01/app/oracle/product/12.1.0/dbhome_1/dbs/zdlra/ -createCredential "rapribrf-scan.acme.com:1521/rapri:dedicated" "vpcuser" "pwd" $ mkstore -wrl /u01/app/oracle/product/12.1.0/dbhome_1/dbs/zdlra/ -createCredential "raaltbrf-scan.acme.com:1521/raalt:dedicated" "vpcuser" "pwd"
タスク4: データベースの代替リカバリ・アプライアンスへの登録および制御ファイルのバックアップ
このタスクでは、保護されたデータベースの管理者がステップ1および2を実行し、リカバリ・アプライアンス管理者がステップ3を実行します。
データベースを登録し、制御ファイルをバックアップするには:
-
RMANを使用して、保護されたデータベースには
TARGET
として、代替リカバリ・アプライアンス・カタログにはCATALOG
として接続し、REGISTER DATABASE
コマンドを実行します。 -
REGISTER DATABASE
コマンドが完了した後、現在の制御ファイルを代替アプライアンスにバックアップします。BACKUP DEVICE TYPE SBT CURRENT CONTROLFILE;
-
制御ファイルのバックアップが代替アプライアンスからプライマリ・アプライアンスにレプリケートされたことを確認します。
タスク5: データベースがプライマリ・リカバリ・アプライアンスに登録されていることの確認
このステップでは、保護されたデータベースがプライマリ・アプライアンスに登録されていることを確認します。前のタスクでデータベースが代替アプライアンスに登録されるときにレプリケーションが構成されるため、データベースはプライマリ・アプライアンスに自動的に登録される必要があります。
プライマリ・アプライアンスへの登録を確認するには:
-
RMANで、CATALOG接続文字列にプライマリ・アプライアンス資格証明を使用して、データベースに接続します。
rman TARGET / CATALOG /@rapribrf-scan.acme.com:1521/rapri:dedicated
-
REGISTER DATABASE
コマンドを実行します。次のエラーが表示されます。
RMAN-20002: target database already registered in recovery catalog
ノート:
-
保護されたデータベースの管理者は、プライマリ・アプライアンスが使用できないときにバックアップを代替リカバリ・アプライアンスに送り、プライマリ・アプライアンスが機能するようになったらバックアップをプライマリ・アプライアンスにリダイレクトする、別の
RMAN
バックアップ・スクリプトを作成する必要もあります。このスクリプトは代替リカバリ・アプライアンス・カタログに接続する必要があり、credential_alias
を代替アプライアンスに設定したCONFIGURE CHANNEL
またはALLOCATE CHANNEL
コマンドが必要です。リカバリ・アプライアンスのRMANバックアップ・スクリプトを作成する方法の例は、Zero Data Loss Recovery Appliance保護されたデータベースの構成ガイドを参照してください。 -
プライマリ・アプライアンスの停止中にリアルタイムREDOを代替リカバリ・アプライアンスに送信するには、プライマリ・アプライアンスへの接続に使用するログ・アーカイブ宛先の
ALTERNATE
として追加のログ・アーカイブ宛先を定義する必要があります。接続文字列は、プライマリ・アプライアンスに必要な接続文字列と同様に、Oracle自動ログイン・ウォレットに定義して、同じVPCユーザー(パスワードは異なる場合がありますが)を使用する必要があります。ALTERNATE
属性を使用して代替リモート宛先に自動的にフェイルオーバーする方法の例は、Data Guard概要および管理を参照してください。
ダウンストリーム・リカバリ・アプライアンスへのDRフェイルオーバーの実装
この項では、ダウンストリーム・リカバリ・アプライアンスにバックアップ操作およびREDOトランスポートの透過的フェイルオーバーを行うために保護されたデータベースを構成するステップについて説明します。
障害回復の一環として、保護されたデータベースは、アップストリーム・リカバリ・アプライアンスが使用できなくなった場合に、バックアップ・ファイルおよびREDOトランスポートを送信するためのターゲットとしてダウンストリーム・リカバリ・アプライアンスにフェイルオーバーします。
わかりやすくするために、この例では次のことを想定しています。
- リアルタイムREDOトランスポートが有効な場合、エラーを受信し、アップストリーム・リカバリ・アプライアンスへのREDOの送信を停止します。1分以内に、リアルタイムREDOトランスポートはダウンストリーム・リカバリ・アプライアンスに接続し、そこでREDOの送信を再開します。
- 保護されたデータベースの例の名前は
CDB122DR
です。これは、1つのプラガブル・データベースを持つコンテナ・データベースです。 - アップストリーム・リカバリ・アプライアンスの例の名前は
RAHADR1
です。 - ダウンストリーム・リカバリ・アプライアンスの例の名前は
RAHADR2
です。 HADR_COMMON_VPCUSER
という共通VPCユーザーを両方のリカバリ・アプライアンス上に作成済で、両方に同じパスワードを使用する必要があります。HADR_LOCAL_VPCUSER
というローカルVPCユーザーを両方のリカバリ・アプライアンス上に作成済ですが、パスワードは2つの間で異なっていてもかまいません。RAHADR1
とRAHADR2
の間のレプリケーション・サーバーは、VPCユーザーREPUSER_FROM_HADR1
を使用しています。
プライマリ・データベースとスタンバイ・データベースを持つData Guard設定を使用する場合、dbid
とdbname
が同じであるため、それぞれに異なるdb_unique_name
が必要です。一意性を保証するには、プライマリおよびスタンバイで一意の制御ファイルautobackup
形式を使用します。形式は、RMAN構成設定を使用して指定できます。デフォルトのControlfile Autobackup Format
は次のとおりです:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F';
プライマリ・データベースとスタンバイ・データベースの両方のデフォルト形式にdb_unique_name
を追加します:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '<db_unique_name>_%F';
db_unique_name
は、v$database
から取得されます。
select db_unique_name from v$database;
フェイルオーバーの設定および構成
この項では、フェイルオーバーのために後で使用するリカバリ・アプライアンスのVPCユーザーを設定します。このユーザーは、必要なネットワーク構成ファイルを変更し、レプリケーション・サーバーを構成し、保護ポリシーを作成し、保護されたデータベースを登録し、アップストリームおよびダウンストリーム・リカバリ・アプライアンスにいくつかの権限を追加します。
VPCユーザーの作成
このタスクでは、アップストリームおよびダウンストリーム・リカバリ・アプライアンスにデータベースVPCユーザー・アカウントを作成します。
アカウントの作成時には、次のパスワードの要件に注意してください。
- 最初のVPCユーザー(
HADR_LOCAL_VPCUSER
)アカウントは、他の保護されたデータベースで使用でき、リカバリ・アプライアンスRAHADR1とRAHADR2で異なるパスワードを持つことができます。 - 2番目のVPCユーザー(
HADR_COMMON_VPCUSER
)アカウントは、リカバリ・アプライアンスRAHADR1とRAHADR2の両方で同じパスワードを使用する必要があり、他の保護されたデータベースで使用できます
この個別の例には、次の条件が適用されます。
- リカバリ・アプライアンスRAHADR1は、以前に
rahadr1
のDB_UNIQUE_NAME
でインストールされています。 - リカバリ・アプライアンスRAHADR2は、以前に
rahadr2
のDB_UNIQUE_NAME
でインストールされています。
トランスポート・フェイルオーバーの構成の変更
このタスクでは、ダウンストリーム・リカバリ・アプライアンスへの透過的フェイルオーバーに使用されるOracleネットワーク構成ファイルを変更します。
レプリケーション・サーバーの構成
このタスクでは、リカバリ・アプライアンスRAHADR1からRAHADR2にデータベース・バックアップを送信するレプリケーション・サーバーを構成します。
アップストリームおよびダウンストリーム・リカバリ・アプライアンスの構成
このタスクでは、ダウンストリームとアップストリームのリカバリ・アプライアンス上で保護されたデータベースの保護ポリシーを構成し、保護ポリシーをレプリケーション・サーバーに追加します。
たとえば、CBR122DRデータベースなどによって使用される保護ポリシーがそれぞれのリカバリ・アプライアンスに存在しない場合、このステップによって作成されます。保護ポリシー名は、ダウンストリームとアップストリームのリカバリ・アプライアンス間で一意である必要はありません。
RAHADR1とRAHADR2の間の循環参照を回避するために、RAHADR2からの保護ポリシーはレプリケーション・サーバーに追加されませんが、RAHADR1からの保護ポリシーは追加されます。保護ポリシー内のすべてのデータベースがレプリケートされます。
ノート: RAHADR2は通常CDB122DRデータベースからREDOを受け入れないため、CDB122DRデータベースがアイドル状態の場合、保護されていないデータ・ウィンドウ・パラメータを1.25日に設定して、falseアラートの発生を回避します。
アップストリーム・リカバリ・アプライアンスでの保護されたデータベースの登録
このタスクでは、ウォレットを構成し、VPCユーザー資格証明を追加し、それらの資格証明をテストし、保護されたデータベースをアップストリーム・リカバリ・アプライアンスに登録します。RACデータベースの場合は、保護されたデータベースが実行されている各ホストでこのステップを実行する必要があります。
バックアップ操作
このタスクでは、backup_database
スクリプトを起動します。
次のRMANコマンドは、保護されたデータベースで実行する必要があり、すべてのRMANバックアップ操作に使用する必要があります。
ノート:
スクリプトが実行されると、チャネル割当てによって、ログインしているリカバリ・アプライアンスとリカバリ・アプライアンス・データベース名が示されます。リアルタイムREDOトランスポート
保護されたデータベースのリアルタイムREDOトランスポートは、アップストリーム・リカバリ・アプライアンスを定期的に使用するように構成できますが、アップストリーム・リカバリ・アプライアンスが使用できないときにダウンストリーム・リカバリ・アプライアンスにフェイルオーバーできます。アップストリーム・リカバリ・アプライアンスが再度使用可能になると、REDOトランスポートはダウンストリームの使用からアップストリームの使用に自動的に変更されます。
リアルタイムREDOトランスポート用のVPCユーザーの構成
このタスクでは、REDOトランスポート用のVPCユーザーを設定し、(1) Data Guard Brokerのパラメータの有効化と、(2)ログ・アーカイブ・パラメータの有効化を行います。
HADRのレプリケーション・モード
レプリケートされたリカバリ・アプライアンスを含む高可用性障害回復シナリオを示します。
図15-1では、2つのデータ・センターが示されており、1つはローカルで1つはリモートです。それぞれのデータ・センターには、レプリケーション・ペア、つまり双方向レプリケーションとして構成されたリカバリ・アプライアンスRA-xとRA-yがあります。
ローカル・データ・センターのデータベースは、通常どおり、バックアップおよびREDOログをRA-xに送信します。次に、RA-xは、バックアップおよびREDOログをリモート・ローカル・データ・センターのRA-yにレプリケートします。ローカルRA-xがオフラインになると、バックアップとREDOはリモートRA-yにリダイレクトされ、両方のデータ・センターへの完全リカバリが可能になります。RA-xがオンラインに戻ると、リモートRA-yはバックアップをローカルRA-xにレプリケートして、現在の状態と同期させます。
この例では、リモート・データ・センターのデータベースからRA-yへのバックアップは、ローカル・データ・センターのRA-xにレプリケートされません。
Data Guardの場所を問わないバックアップ・モード
場所を問わないバックアップがData Guardをどのようにサポートしているかを示します。
図15-2に、ローカルとリモートの2つのデータ・センターを示します。ここで、プライマリ・サイト(アップストリーム)はローカルRA-xであり、スタンバイ・サイト(ダウンストリーム)はリモートRA-yです。ローカル・データ・センターのデータベースは、通常どおり、プライマリ・バックアップおよびログをRA-xに送信します。request_only
モードでは、アップストリームとダウンストリームの間にアクティブなレプリケーションはありません。レプリケーションは、停止後にギャップを埋めるためにアップストリームRA-xによってバックアップが要求された場合にのみ発生します。Data GuardおよびREDOログは、リモート・データベースとローカル・データベースの同期を維持します。
フェイルオーバーまたはスイッチオーバーが実行されると、リモート・データベースが新しいプライマリになり、REDOをバックアップしてRA-yに送信します。一方、レプリケーションの逆向きは、バックアップおよびログに対してRA-yからRA-xに自動的に行われます。RA-yの同期に必要なすべてのバックアップはRA-xからレプリケートされますが、新しいプライマリ・バックアップおよびREDOはRA-yに通常どおりにレプリケートされます。最初の完全バックアップはレプリケートされないため、WANの消費が削減されます。
Data Guardの一般的なユースケースでは、1つのデータベースでのみバックアップを作成します。これは、バックアップが影響を受ける可能性がある本番ワークロードがプライマリ・データベースで実行されている場合です。かわりに、スタンバイ・データベースからそのリカバリ・アプライアンス(RA-y)にバックアップが作成されます。RA-yからRA-xへのレプリケーションでは、同期が維持されます。
Data GuardのRequest_Onlyモード
レプリケーションのrequest_only
モードでData Guardがどのようにサポートされるかを示します。
request_only
モードの目的は、リカバリ・アプライアンスがオフライン期間後などにバックアップのギャップを埋めるために、ペアの2番目のリカバリ・アプライアンスからバックアップをリクエストできるようにすることです。図15-3に、ローカルとリモートの2つのデータ・センターを示します。ここで、プライマリ・サイトはローカルRA-xであり、スタンバイ・サイトはリモートRA-yです。バックアップはプライマリ・データベースとスタンバイ・データベースで作成され、それぞれがそれぞれのローカル・リカバリ・アプライアンスに保存されます。request_only
モードでは、RA-xからRA-yへのレプリケーション・トラフィックは発生しません。Data GuardおよびREDOログは、リモート・データベースとローカル・データベースの同期を維持します。
レプリケーション・サーバーは、双方向レプリケーション用に構成されています。add_replication_server
を使用すると、RA-yは通常どおり保護ポリシーを取得します。ただし、RA-xのadd_replication_server
には、REQUEST_ONLY=TRUE
の保護ポリシーがあります。
プライマリ(ローカル)からセカンダリ(リモート)へのスイッチオーバーが発生した場合、RA-xからRA-yへのレプリケーション・トラフィックは発生しません。ただし、RA-xカタログではRA-yバックアップとの同期が維持されます。RA-xがオフラインの場合、スタンバイ・バックアップは引き続きRA-yに送信され、両方のデータ・センターへの完全リカバリが可能です。RA-xがオンラインに戻ると、RA-xは現在の状態と同期するために、RA-yから欠落しているバックアップを要求します。
新しいデータ・センターへの移行時のレプリケーション読取り専用モード
レプリケーション読取り専用モードで、あるデータ・センターから別のデータ・センターへの移行がどのようにサポートされているか、およびダウンストリーム・リカバリ・アプライアンス上の既存のバックアップにアップストリーム・リカバリ・アプライアンスから読取り専用でアクセスする方法を示します。
図15-4に、RA-xにバックアップするローカル・データ・センターのデータベースを示します。この例では、すべてのローカル・データベースをリモート・データ・センターに移動する必要があり、RA-xは廃止されます。
リモート・データ・センターのデータベースは、RA-xからクローニングすることで作成されます。次に、レプリケーション・サーバーがアップストリームとしてRA-yに作成され、ダウンストリームとしてRA-xに作成されます。RA-yでは、READ_ONLY=TRUE
を使用して保護ポリシーがレプリケーション・サーバーに追加されます。
リモート・データ・センターのデータベースがRA-yへのバックアップを開始します。データベースをリカバリする必要がある場合、RA-xのバックアップが不要になってRA-xが廃止されるまで、ローカル・データ・センターRA-xのバックアップはRA-yを介してアクセス可能なままになります。