9 追加の高可用性計画の実装
レプリケーションに加えて、他の高可用性計画をリカバリ・アプライアンスとともに使用して、特定のシナリオでのデータ損失に対する保護を強化できます。
サイト障害およびシステムの停止に対してアプライアンスを保護するOracle最大可用性アーキテクチャ(MAA)のベスト・プラクティスは、リカバリ・アプライアンス・レプリケーションを使用して障害回復戦略を実装することです。レプリカ・アプライアンスを使用すると、保護されたデータベースのバックアップ、REDOおよびリストア操作は中断されることなく続行され、完全なデータ保護が維持されます。
組織に障害回復戦略がない場合、または既存の障害回復戦略にローカル・システムの高可用性を追加する場合は、リカバリ・アプライアンスのバックアップおよびREDOフェイルオーバー機能を使用できます。この機能は、リカバリ・アプライアンス・ソフトウェア更新12.1.1.1.8から使用可能です。
高可用性(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ユーザー・アカウントおよびレプリケーション・ユーザー・アカウントの作成
「仮想プライベート・カタログ・アカウントの作成」の手順に従います。
たとえば、リカバリ・アプライアンスにrootとしてログインし、binディレクトリに変更し、次のコマンドを使用してVPCユーザーを作成します。
# ./racli add vpc_user --user_name=vpcuser
プロンプト表示されたら、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 プライマリ・リカバリ・アプライアンスでの保護ポリシーの作成
「DBMS_RAを使用した保護ポリシーの作成」の手順に従います。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: プライマリ・リカバリ・アプライアンスでの保護ポリシーへのデータベースの追加
「DBMS_RAを使用した保護されたデータベースのメタデータの追加」の手順に従います。
たとえば、次の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ユーザーおよびレプリケーション・ユーザーへのデータベース・アクセスの付与
「DBMS_RAを使用したリカバリ・アプライアンス・アカウントへのデータベース・アクセスの付与」の手順に従います。
たとえば、次の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フェイルオーバーのための保護ポリシーの作成
「DBMS_RAを使用した保護ポリシーの作成」の手順に従います。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: 代替リカバリ・アプライアンスでの保護ポリシーへのデータベースの追加
「DBMS_RAを使用した保護されたデータベースのメタデータの追加」の手順に従います。
たとえば、次の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ユーザー・アカウントおよびレプリケーション・ユーザー・アカウントの作成」で作成されました。
「DBMS_RAを使用したリカバリ・アプライアンス・アカウントへのデータベース・アクセスの付与」の手順に従います。
たとえば、次の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
を使用しています。
フェイルオーバーの設定および構成
この項では、フェイルオーバーのために後で使用するリカバリ・アプライアンスの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コマンドを使用する必要があります。
注意:
スクリプトが実行されると、チャネル割当てによって、ログインしているリカバリ・アプライアンスとリカバリ・アプライアンス・データベース名が示されます。バックアップ・ピースのギャップの解消
アップストリーム・リカバリ・アプライアンス(RAHADR1)が再度使用可能になった場合、ダウンストリーム・リカバリ・アプライアンス(RAHADR2)にフェイルオーバーしたバックアップをRAHADR1に転送して、仮想完全バックアップのギャップを解決する必要があります。
RAHADR1でORDERING_WAIT
状態のINDEX_BACKUP
タスクとしてギャップが示されるのは、ダウンストリームとして構成されたRAHADR2との通常のカタログ調整によって仮想完全バックアップ・メタデータが存在しているためですが、バックアップはまだアップストリーム・リカバリ・アプライアンス上に物理的に存在するわけではありません。
この操作を実行するPL/SQLスクリプトtkrmrshadr.sql
。RA_POPULATE_BACKUP_PIECE
プロシージャをデータベースにロードします。その後、スクリプトはORDERING_WAIT
状態のINDEX_BACKUP
タスクを検索するために15分ごとに実行されるDBMS_SCHEDULER_JOB
を作成します。ダウンストリームRAHADR2からアップストリーム・リカバリ・アプライアンスRAHADR1に転送する必要のあるバックアップ・ピースを決定します。DBMS_RA.POPULATE_BACKUP_PIECE
コマンドを使用すると、可能な場合にバックアップ・ピースがパラレルで転送されます。
最初の問合せは非常に高速です。ただし、ピースが見つかった場合、DBMS_RA.POPULATE_BACKUP_PIECE
コールの結果としてRAHADR1で作成されるINDEX_BACKUP
タスクにより、ジョブは長時間実行される可能性があります。
tkrmrshadr.sql
のMD5SUMは、beb79a1bdd61c91b34e0d777f75c2227
です。
$ md5sum tkrmrshadr.sql beb79a1bdd61c91b34e0d777f75c2227 tkrmrshadr.sql
---------------**************** -------------------
Installing tkrmrshadr.sql
- Install the script into all RAs participating in HADR.
- The script only needs to be installed once:
- As rasys: sqlplus rasys/<rasyspwd> @<full_dir_location_of_script>/tkrmrshadr.sql
---------------**************** -------------------
リアルタイムREDOトランスポート
保護されたデータベースのリアルタイムREDOトランスポートは、アップストリーム・リカバリ・アプライアンスを定期的に使用するように構成できますが、アップストリーム・リカバリ・アプライアンスが使用できないときにダウンストリーム・リカバリ・アプライアンスにフェイルオーバーできます。アップストリーム・リカバリ・アプライアンスが再度使用可能になると、REDOトランスポートはダウンストリームの使用からアップストリームの使用に自動的に変更されます。
リアルタイムREDOトランスポート用のVPCユーザーの構成
このタスクでは、REDOトランスポート用のVPCユーザーを設定し、(1) Data Guard Brokerのパラメータの有効化と、(2)ログ・アーカイブ・パラメータの有効化を行います。