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>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