RACLIを使用したリカバリ・アプライアンス間のレプリケーションの構成

この項では、アップストリーム(RA1)とダウンストリーム(RA2)の2つのリカバリ・アプライアンス間でレプリケーションを確立するためのRACLIタスクについて説明します。ほとんどのタスクは、admin_userアカウントを使用してアップストリーム(RA1)で実行されます。

リカバリ・アプライアンスへのバックアップが構成されて稼働している場合、初期タスクの多くがすでに完了している可能性があります。ただし、これが初回バックアップおよびレプリケーション用に構成された新しいインストールの場合は、それらのタスクが必要になります。

レプリケーション・ユーザーおよびレプリケーション・ウォレットは、racli create replication_serverおよびracli delete replication_server内で管理されます。リカバリ・アプライアンスのパートナ・ユーザーは、レプリケーション・ユーザー、レプリケーション・ウォレットおよびレプリケーション・サーバー・パラメータを管理します。

ノート:

リカバリ・アプライアンス23.1より前のバージョンおよびDBMS_RAでレプリケーションが確立されていた場合、今後はRACLIコマンドを使用することをお薦めします。RACLIレプリケーションにレプリケーションを変更するには、この項で後述するように、racli add ra_partnerおよびracli enable replication_managementを使用します。

これが完了すると、クライアント・データベースはバックアップをアップストリーム(RA1)に送信します。レプリケーションの一部としてRA1は、これらのバックアップをダウンストリーム(RA2)にも送信します。

ノート:

この場合のレプリケーション・サーバーはRA1にあります。作成されるレプリケーション・ユーザーは、RA2用です。

リカバリ・アプライアンス間のパートナシップにより、RACLIコマンドに対する制限された権限を持つリモート管理が可能になります。パートナーシップは、主にレプリケーションの管理、ラックの移行、およびステータスのチェックに使用されます。

タスク1: ポートが開いていることを確認します

ポートが開いていることを確認します。RA2へのパスを指定してRA1から、SSHコマンドを試行します:

ssh <RA2>

RA1へのパスを指定してRA2から、SSHコマンドを試行します:

ssh <RA1>

(ガイダンスのみ)タスク2: レプリケーションに必要なadmin_userユーザー・タイプを作成します。

ノート:

rootユーザーおよびrootパスワードが両方のリカバリ・アプライアンスで使用可能である場合は、このタスクをスキップできます。

まだadmin_userがなく、root認証が優先されない場合は、レプリケーションに使用するadmin_userユーザー・タイプを作成する必要があります。

どちらのリカバリ・アプライアンスにも、できれば同じ名前のadmin_user (OSユーザー)が必要です。

アップストリーム(RA1)とダウンストリーム(RA2)の両方で、次のコマンドを実行します:

racli add admin_user --user_name=REPL_ADMIN_NAME 

パスワードの入力を求められます。admin_userのパスワードには、特別な要件はありません。

ノート:

admin_userおよびパスワード(REPL_ADMIN_NAME)は、後でリカバリ・アプライアンス・パートナを追加するときに必要になるため、覚えておいてください。

admin_userが作成されたことを確認します。各リカバリ・アプライアンスで、次のコマンドを実行します:

racli list admin_user

タスク3: 2つのリカバリ・アプライアンス間のパートナシップを作成します。

一方向レプリケーションの場合は、アップストリーム(RA1)でダウンストリーム(RA2)の--admin_user資格証明へのパートナ接続を作成します。

racli add ra_partner --target_host=<RA2> 
[--partner_user=REPL_PARTNER_RA1 --partner_uid=UID] 
--admin_user=REPL_ADMIN_NAME --admin_key=VALUE
  • --target_hostには、ダウンストリーム・リカバリ・アプライアンスの最初のコンピュート・ノードの完全修飾ドメイン名(FQDN)を指定します。アップストリームRA1からコマンドを実行する場合、--target_hostはRA2です。
  • --partner_userには、指名されたパートナの名前を指定します。これはオプションであり、デフォルト値はrapartnerです。同じパートナ・ユーザーが両方のリカバリ・アプライアンスに作成されます。
  • --partner_uidには、パートナ・ユーザーの数値ユーザーID (UID)を指定します。クラウド・システムの場合、UID値は3000未満にする必要があります。
  • --admin_userには、タスク1で作成された管理ユーザーを指定します。これは、root、またはパスワードまたはSSHキーを使用してRA2にアクセスできる任意のadminユーザーにできます。クラウドベースのインスタンスでは必須ですが、オンプレミスではオプションです。
  • --admin_keyには、タスク1で取得したadminユーザーのSSHキーを指定します。クラウドベースのインスタンスの場合、または--admin_userが指定されている場合は必須です。

--target_hostのみが必要です。これは、ダウンストリームのリカバリ・アプライアンス(RA2)の最初のコンピュート・ノードのフルネームです。このコマンドは、1つのリカバリ・アプライアンスでのみ実行する必要があります。両方のリカバリ・アプライアンスでパートナ・オブジェクトが自動的に作成されます

タスク4: レプリケーション・サーバーを作成します。

この操作は、アップストリームのリカバリ・アプライアンス(RA1)から実行します。ダウンストリームのRA2レプリケーション・ユーザーの資格証明情報は、アップストリームのRA1のレプリケーション・ウォレットに格納されます。

このコマンドによって実行される操作:

  • RA2にレプリケーション・ユーザーが作成され、RA1にレプリケーション・ワレットが作成されます

  • TNSが更新されます

  • RA2がTLS対応の場合は、RA2から証明書がエクスポートされます

  • RA2がTLS対応の場合、RA1のウォレットに証明書がインポートされます

  • RA1にレプリケーション・サーバーが作成されます

  • --type=bidirectionalの場合、前述のすべての操作が反対方向に繰り返されます。

ノート:

このracli create replication_serverコマンドでは、レプリケーション・ユーザーのパスワード・プロンプトが表示されます。レプリケーション・ウォレットが存在しない場合は作成されます。レプリケーション・ユーザーとレプリケーション・ウォレットを個別に作成する必要はありません。

これにより、すべてのレプリケーション・オブジェクトおよび証明書管理が自動的に処理されます。実行後は、レプリケーション・インフラストラクチャが配置されますが、データはまだフローしません。

racli create replication_server --target_host=PATH2TARGET 
[--type=bidirectional] 
  • --target_hostには、ペアにするターゲット・リカバリ・アプライアンスの最初のノードへのフルパスを指定します。
  • --type=bidirectionalで、双方向レプリケーションを指定します。一方向レプリケーションが必要な場合は、この引数を指定しないでください。

racli list listenerコマンドは、TCPまたはTCPSのどちらが使用されているかに関する情報を表示します。

例1: 双方向レプリケーション。

racli create replication_server --target_host=<RA2> --type=bidirectional

例2: ダウンストリームのリカバリ・アプライアンスでのみTLSが有効になっている一方向レプリケーション。

racli create replication_server --target_host=<RA2>

例2: ダウンストリームのリカバリ・アプライアンスでのみTLSが有効になっている双方向レプリケーション。

racli create replication_server --target_host=<RA2> --type=bidirectional

ノート:

このタスクの後、レプリケーションはRACLIコマンドを使用して完全に管理されます

(ガイダンスのみ)タスク5: 保護されたデータベースを追加します。

アップストリームおよびダウンストリームの両方のリカバリ・アプライアンスの保護ポリシーにデータベースを追加する必要があります。アップストリームは、クライアントからすでにバックアップを受け取っているため、データベースがすでに追加されています。

レプリケーションを有効にする前に、保護ポリシーに少なくとも1つのデータベースを追加する必要があります。

他の方法(DBMS_RA APIまたはEnterprise Manager Cloud Control)で保護ポリシーがデータベースに割り当てられていない場合は、次のようなコマンドを発行します。

racli add protected_db --db_unique_name=<yourDB>  
--protection_policy_name=<YOUR_POLICY> --reserved_space=10G

ノート:

保護された各データベースには、1つのポリシーのみを設定できます。2つの異なる保護ポリシーへの同じデータベースの割当てはサポートされていません。rasysとして、dbms_ra.update_dbを実行して保護ポリシーを適切に更新する必要があります。

既存のバックアップがすべて削除されるため、racli delete protected_dbを実行しないでください

(ガイダンスのみ)タスク6: 保護されたデータベースへのアクセスを付与します

ノート:

2025年10月より前のRA 23.1 PSUでは、レプリケーション・ユーザーに明示的にアクセス権が付与される必要があります。後述の説明を参照してください。

RA23.1 PSU 2025以降では、レプリケーション・サーバーの作成時にアクセスが自動的に付与されます。

一方向および双方向レプリケーションの場合、これをアップストリームのリカバリ・アプライアンスで実行してアクセス権を付与します。

racli grant db_access --db_unique_name=test_db --username=rep_user_from_radb01_to_radb02 

また、双方向レプリケーションの場合は、ダウンストリームRA2から実行します:

racli grant db_access --db_unique_name=test_db --username=rep_user_from_radb02_to_radb01 

コマンドracli list replication_serverは、レプリケーション・ユーザー名を表示します。

タスク7: クライアント・マシンまたはExadata Databaseにログインします。

データベースを登録し、バックアップを実行する必要があります。バックアップが実行されたかどうかを検証するには、次の手順に従います。

racli list protected_db [ --db_unique_name=DB_NAME | --all ] [ --long ]
 
 
Created log /opt/oracle.RecoveryAppliance/log/racli_list_protected_db.log​
Thu Nov  6 18:06:13 2025: Start: List Protected Database ​
DEMO_DB ​
DB UNIQUE NAME:                exadb1
DB KEY:                        5678
DBID:                          1234
TENANT NAME:                   DEFAULT_TENANT ​
TENANT IDENTIFIER:             0 ​
POLICY NAME:                   REPL_PROD_RA01_to_RA02 ​
SPACE USAGE:                   789
ACTIVE INCIDENT COUNT:         0​
Thu Nov  6 18:06:13 2025: End:List Protected Database​

出力を確認します:

  • SPACE USAGEは0ではない必要があります
  • DB KEYはnullではない必要があります

タスク8: レプリケーション・サーバーを追加します

一方向および双方向レプリケーションの場合は、アップストリームのリカバリ・アプライアンスでこれを実行します。

racli list replication_server
racli add replication_server 
--replication_server_name=<REPL_SERVER> --protection_policy_name=<YOUR_POLICY>
また、双方向レプリケーションの場合は、ダウンストリームRA2から実行します:
racli list replication_server

racli add replication_server 
--replication_server_name=<REPL_SERVER> --protection_policy_name=<YOUR_POLICY>
  • --replication_server_nameでは、racli list replication_serverからの出力を使用します。
  • --protection_policy_nameでは、以前のタスクで指定された保護ポリシーを使用します。

レプリケーションを初めて設定する場合は、レプリケーション・サーバーを停止して起動するコマンドを発行します。

racli stop replication_server --replication_server_name=rep_server_from_radb02_to_radb01
 
racli start replication_server --replication_server_name= rep_server_from_radb02_to_radb01