41 レプリケーション・フェイルオーバーの設定
この章の内容は次のとおりです。
41.1 レプリケーション・フェイルオーバーの概要
10g (10.1.4.0.1)以降、Oracle Internet Directoryでは、1つのサプライヤからもう1つのサプライヤへのLDAPレプリケーションのフェイルオーバーをサポートしています。これには管理者操作が必要です。
次の各項では、レプリケーション・フェイルオーバーについて詳しく説明します。
41.1.1 レプリケーション・フェイルオーバーの使用例
この項では、レプリケーション・フェイルオーバー・シナリオについて説明します。
図41-1に、一般的なフェイルオーバーの使用例を示します。
図41-1 レプリケーション・フェイルオーバーの使用例

この使用例には、次の機能があります。
-
Apple、BananaおよびCandyは、同じDRG内のマルチマスター・レプリカです。
-
Damsonは、Bananaの読取り専用ファンアウト・レプリカです。つまり、一方向LDAPレプリケーションを使用した部分レプリカです。
-
Eggplantは、Bananaの更新可能なファンアウト・レプリカです。つまり、双方向LDAPレプリケーションを使用した部分レプリカです。
-
Bananaが停止すると、マルチマスターDRGとそのファンアウト・レプリカ間のレプリケーションは中断されます。
管理者は、EggplantとDamsonを新しいサプライヤのCandyに切り替えることができます。
41.1.2 サポートされているフェイルオーバー・トポロジのタイプ
この項では、Oracle Internet Directoryでサポートされるフェイルオーバー・トポロジのタイプについて説明します。
フェイルオーバー・トポロジは2つのタイプのみがサポートされています。
-
コンシューマと新規サプライヤは、どちらもLDAPベース・レプリケーションにより旧サプライヤに接続されます。これは、図41-2に示されています。ノード1とノード3はどちらも、ノード2とのLDAPレプリケーション承諾を持っています。ノード2は、ノード1の元のサプライヤです。ノード2が機能しなくなると、ノード1を新規のサプライヤ、ノード3にフェイルオーバーできます。
図41-2 LDAPにより旧サプライヤに接続されるコンシューマと新規サプライヤ
-
コンシューマは、LDAPベース承諾により旧サプライヤに接続され、旧サプライヤは同じアドバンスト・レプリケーション・グループ内で新規のサプライヤとして機能します。これは、図41-3に示されています。ノード2とノード3は、同じアドバンスト・レプリケーションDRG内にあります。ノード2は、ノード4の元のサプライヤです。ノード4が機能しなくなると、ノード4を新規のサプライヤ、ノード3にフェイルオーバーできます。
図41-3 同じディレクトリ・レプリケーション・グループ内の新旧のサプライヤ
41.1.3 レプリケーション・フェイルオーバーに関する制限事項と警告
この項では、レプリケーション・フェイルオーバーの使用に関する制限事項と警告について説明します。
-
Oracle Internet Directory 11gリリース1 (11.1.1.0.0)では、レプリケーション・フェイルオーバーには、管理者の操作が必要です。
-
フェイルオーバーの直後に、管理者はコンシューマと新規サプライヤを比較し、調整する必要があります。
-
新規の承諾は、旧承諾と同じタイプと方向のものであることが必要です。
-
2つのトポロジ・タイプのみがサポートされています。
-
サプライヤが機能しなくなると、直接接続しているレプリカは、同様にそのサプライヤに接続している別のレプリカに対してのみフェイルオーバーができます。
-
新規サプライヤと旧サプライヤ間の承諾のレプリケーション・フィルタリング・ポリシーは、旧サプライヤとコンシューマ間の承諾と一致させる必要があります。
-
ほとんどの場合、レプリカは元のレプリカ・タイプを維持する方法でフェイルオーバーする必要があります。図41-4に示した例では、ノード2は、ノード1とノート3の両方にとっての旧サプライヤであり、ノード1は読取り専用です。ノード2が機能しなくなった場合、理論上は、ノード1またはノード3のいずれかを新しいサプライヤ・ノードとして設定できます。しかし、ベスト・プラクティスは、ノード1をフェイルオーバーして、ノード3をサプライヤにすることです。この方法により、ノード1の元の読取り専用レプリカ・タイプが維持されます。
図41-4 レプリカ・タイプを維持するフェイルオーバー
-
新規の承諾が双方向承諾の場合、コンシューマをその新しいサプライヤと比較し、調整した後、新しいサプライヤと接続しているその他すべてのレプリカについても、新しいサプライヤと比較し、調整する必要があります。たとえば、図41-5では、ノード2にはノード3との双方向承諾があります。ノード3は、もう1つのレプリカ、ノード4に接続しています。ノード2が機能しなくなると、ノード3とノード1の双方向承諾を設定します。ノード3をノード1と比較、調整した後、ノード4もノード3と比較、調整し、レプリカを確実に同期化します。
図41-5 接続レプリカすべての比較および調整
41.1.4 レプリケーション・フェイルオーバーのタイプ
この項では、Oracle Internet Directoryでサポートされる2つのレプリケーション・フェイルオーバー・タイプについて説明します。
レプリケーション・フェイルオーバーには2つのタイプがあります。次のタイプです。
-
ステートレス
-
時間ベース
事前にフェイルオーバーを計画できない場合は、ステートレス・フェイルオーバーを使用します。ステートレス・レプリケーション・フェイルオーバーでは、レプリカの状態について想定は行いません。いつでも新しいサプライヤにフェイルオーバーできます。ステートレス・フェイルオーバーには、フェイルオーバー後、ノードを同期化するためにより多くの作業が必要です。
計画的なフェイルオーバーには、時間ベース・フェイルオーバーを使用します。時間ベース・フェイルオーバーは、フェイルオーバー後の作業が少なくなります。ただし、後続の想定がフェイルオーバー時に必ず当てはまるように、事前に時間を設定する必要があります。
-
ノードは大部分は同期化されます。
-
新規のサプライヤは、完全な同期化がすぐに実行できるように、変更ログを保存しています。
41.2 ステートレス・レプリケーション・フェイルオーバーの実行
この項では、ステートレス・レプリケーション・フェイルオーバーの実行方法について説明します。
この章は次のタスクで構成されます。
41.2.1 関連ノードでのすべてのディレクトリ・レプリケーション・サーバーの停止
新規サプライヤ、旧サプライヤおよびコンシューマ上のOracleディレクトリ・レプリケーション・サーバーを停止します。
すべてのディレクトリ・レプリケーション・サーバーを停止するには、次のコマンドを実行します。
oidctl connect=connStr server=oidrepld instance=1 componentname=oidComponentName \ flags="-h LdapHost -p LdapPort" stop
41.2.2 旧レプリケーション承諾の破棄と新規承諾の設定
旧サプライヤとコンシューマ間の古いレプリケーション承諾を破棄し、新規サプライヤとコンシューマ間の新規承諾を設定します。
このタスクは、レプリケーション環境管理ツールを使用して行います。次のように入力します。
remtool -pchgmaster [-v] [-bind consumer_host::port_number]
replication_dn_password
の入力を要求されます。
関連項目:
『Oracle Identity Managementリファレンス』のremtool
コマンド行ツールのリファレンス
41.2.3 最後に適用された変更番号の保存
新規サプライヤから最後に適用された変更番号を取得します。
一方向承諾の場合、次のコマンドを使用します。
ldapsearch -h new_supplier_host -p port_number -b "" \ -s base "objectclass=*" lastchangenumber
双方向承諾の場合、次のコマンドを使用します。
ldapsearch -h consumer_host -p port_number -b "" \ -s base "objectclass=*" lastchangenumber
この番号を保存します。
41.2.4 新規サプライヤとコンシューマの比較および調整
Oracle Internet Directory比較調整ツールを使用して、新規サプライヤとコンシューマを比較し、調整します。
一方向承諾の場合は、次のように入力します。
oidcmprec operation=reconcile \ source=new_supplier_host:port \ destination=consumer_host:port \ base='""' scope=sub
双方向承諾の場合は、次のように入力します。
oidcmprec operation=merge \ source=new_supplier_host:port\ destination=consumer_host:port/ \ base='""' scope=sub
ソースと宛先のレプリケーション識別名のパスワードを要求されます。
この例では、ディレクトリ全体がレプリケートされることを想定しており、したがって、base
は" "に設定されています。部分レプリケーションを使用する場合は、base
引数とdns2exclude
引数をoidcmprec
ツールに使用して、希望するDITを含めます。
関連項目:
『Oracle Identity Managementリファレンス』のoidcmprec
コマンド行ツールのリファレンス
41.2.6 旧サプライヤでの旧承諾のクリーンアップ
この項では、レプリケーション環境管理ツールを使用して、旧サプライヤで旧承諾をクリーンアップする手順について説明します。
「旧レプリケーション承諾の破棄と新規承諾の設定」の実行時に旧サプライヤが停止した場合、旧サプライヤ上の旧承諾はクリーンアップされません。ここで、レプリケーション環境管理ツールを使用して、これをクリーンアップします。次のように入力します。
remtool -pcleanup -agrmt [-v] [-bind consumer_host::port_number]
replication_dn_password
の入力を要求されます。
関連項目:
『Oracle Identity Managementリファレンス』のremtool
コマンド行ツールのリファレンス
41.3 時間ベース・レプリケーション・フェイルオーバーの実行
この項では、時間ベース・レプリケーション・フェイルオーバーの実行方法について説明します。
この項では、次の項目について説明します。
41.3.2 新規サプライヤの最後に適用された変更番号の保存
新規サプライヤから最後に適用された変更番号を取得します。
次のコマンドを入力します。
ldapsearch -h new_supplier_host -p port_number -D cn=orcladmin -q \ -b "" -s base "objectclass=*" lastchangenumber
この番号を保存します。
41.3.4 希望する期間が経過するまで待機
変更ログ・パージ構成エントリのorclpurgetargetage
の値未満の期間を待機します。
変更ログ・パージ構成エントリのorclpurgetargetage
の値未満の期間を待機します。
41.3.5 関連ノードでのすべてのディレクトリ・レプリケーション・サーバーの停止
新規サプライヤ、旧サプライヤおよびコンシューマ上のOracleディレクトリ・レプリケーション・サーバーを停止します。
次のコマンドを入力します。
oidctl connect=connStr server=oidrepld instance=1 \ componentname=oidComponentName \ flags="-h LdapHost -p LdapPort" stop
41.3.6 旧レプリケーション承諾の破棄と新規承諾の設定
旧サプライヤとコンシューマ間の古いレプリケーション承諾を破棄し、新規サプライヤとコンシューマ間の新規承諾を設定します。
このタスクは、レプリケーション環境管理ツールを次のように使用して行います。
remtool -pchgmaster [-v] [-bind hostname:port_number]
replication_dn_password
の入力を要求されます。
関連項目:
『Oracle Identity Managementリファレンス』のremtool
コマンド行ツールのリファレンス
41.3.7 新規承諾の最後に適用された変更番号の更新
この項では、新規サプライヤで新規承諾を変更する手順について説明します。
新規サプライヤで、最後に適用された変更番号が、「新規サプライヤの最後に適用された変更番号の保存」で取得した値になるように、次のように新規承諾を変更します。
41.3.8 旧サプライヤでの旧承諾のクリーンアップ
レプリケーション環境管理ツールを使用して、旧サプライヤ・ノードで旧承諾をクリーンアップできます。
「旧レプリケーション承諾の破棄と新規承諾の設定」の実行時に旧サプライヤが停止した場合、旧サプライヤ上の旧承諾はクリーンアップされません。ここで、レプリケーション環境管理ツールを使用して、これをクリーンアップします。次のように入力します。
remtool -pcleanup -agrmt [-v] [-bind hostname:port_number]
replication_dn_password
の入力を要求されます。
関連項目:
『Oracle Identity Managementリファレンス』のremtool
コマンド行ツールのリファレンス
41.3.9 関連ノードでのすべてのディレクトリ・レプリケーション・サーバーの起動
この項では、新規サプライヤ、旧サプライヤおよびコンシューマ上でOracleディレクトリ・レプリケーション・サーバーを起動する手順を示します。
次のコマンドを入力します。
oidctl connect=connStr server=oidrepld instance=1 \ componentname=oidComponentName \ flags="-h LdapHost -p LdapPort" start
関連項目:
-
『Oracle Identity Managementリファレンス』の
oidctl
コマンド行ツールのリファレンス