ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Internet Directory管理者ガイド
11g リリース1(11.1.1)
B55919-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

41 レプリケーション・フェイルオーバーの設定

この章の項目は次のとおりです。

41.1 レプリケーション・フェイルオーバーの概要

10g(10.1.4.0.1)以降、Oracle Internet Directoryでは、1つのサプライヤからもう1つのサプライヤへのLDAPレプリケーションのフェイルオーバーをサポートしています。これには管理者操作が必要です。図41-1に、一般的なフェイルオーバーの使用例を示します。

図41-1 レプリケーション・フェイルオーバーの使用例

テキストで説明します

この使用例には、次の機能があります。

フェイルオーバー・トポロジは2つのタイプのみがサポートされています。

41.1.1 レプリケーション・フェイルオーバーに関する制限事項と警告

この項では、レプリケーション・フェイルオーバーの使用に関する制限事項と警告について説明します。

  • Oracle Internet Directory 11g リリース1(11.1.1)では、レプリケーション・フェイルオーバーには、管理者の操作が必要です。

  • フェイルオーバーの直後に、管理者はコンシューマと新規サプライヤを比較し、調整する必要があります。

  • 新規の承諾は、旧承諾と同じタイプと方向のものであることが必要です。

  • 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.2 使用するレプリケーション・フェイルオーバーのタイプの決定

レプリケーション・フェイルオーバーには2つのタイプがあります。次のタイプです。

  • ステートレス

  • 時間ベース

事前にフェイルオーバーを計画できない場合は、ステートレス・フェイルオーバーを使用します。ステートレス・レプリケーション・フェイルオーバーでは、レプリカの状態について想定は行いません。いつでも新しいサプライヤにフェイルオーバーできます。ステートレス・フェイルオーバーには、フェイルオーバー後、ノードを同期化するためにより多くの作業が必要です。

計画的なフェイルオーバーには、時間ベース・フェイルオーバーを使用します。時間ベース・フェイルオーバーは、フェイルオーバー後の作業が少なくなります。ただし、後続の想定がフェイルオーバー時に必ず当てはまるように、事前に時間を設定する必要があります。

  • ノードは大部分は同期化されます。

  • 新規のサプライヤは、完全な同期化がすぐに実行できるように、変更ログを保存しています。

41.2 ステートレス・レプリケーション・フェイルオーバーの実行

この項では、ステートレス・レプリケーション・フェイルオーバーの実行方法について説明します。次のタスクを説明します。

41.2.1 タスク1: 関連ノードでのすべてのディレクトリ・レプリケーション・サーバーの停止

新規サプライヤ、旧サプライヤおよびコンシューマ上のOracleディレクトリ・レプリケーション・サーバーを、次のように入力することにより停止します。

oidctl connect=connStr server=oidrepld instance=1 componentname=oidComponentName \
 flags="-h LdapHost -p LdapPort" stop

41.2.2 タスク2: 旧レプリケーション承諾の破棄と新規承諾の設定

旧サプライヤとコンシューマ間の古いレプリケーション承諾を破棄し、新規サプライヤとコンシューマ間の新規承諾を設定します。このタスクは、レプリケーション環境管理ツールを使用して行います。次のように入力します。

remtool -pchgmaster [-v] [-bind consumer_host::port_number]

replication_dn_passwordの入力を要求されます。


関連項目:

『Oracle Fusion Middleware Oracle Identity Managementリファレンス』remtoolコマンドライン・ツールのリファレンスを参照してください


41.2.3 タスク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 タスク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 Fusion Middleware Oracle Identity Managementリファレンス』oidcmprecコマンドライン・ツールのリファレンス


41.2.5 タスク5: 新規承諾の最後に適用された変更番号の更新

新規サプライヤ側で、検索の結果見つかった最後に適用された変更番号を使用して、新規の承諾を変更します。この手順は、次のとおりです。

  1. 「タスク3: 最後に適用された変更番号の保存」で取得した最後の変更番号により、LDIFファイルを作成します。

    一方向承諾の場合、次のようになります。

    dn: agreement_dn
    changetype: modify
    replace: orclLastAppliedChangeNumber;apply$new_supplier_host$consumer_host
     orclLastAppliedChangeNumber;apply$new_supplier_host$consumer_host: 
     last_change_number_retrieved.
    -
    replace: orclLastAppliedChangeNumber;transport$new_supplier_host$consumer_host
    orclLastAppliedChangeNumber;transport$new_supplier_host$consumer_host: 
     last_change_number_retrieved_from_new_supplier
    

    双方向承諾の場合、次のようになります。

    dn: agreement_dn
    changetype: modify
    replace: orclLastAppliedChangeNumber;apply$new_supplier_host$consumer_host
    orclLastAppliedChangeNumber;apply$new_supplier_host$consumer_host: 
     last_change_number_retrieved_from_new_supplier
    -
    replace: orclLastAppliedChangeNumber;transport$new_supplier$consumer
    orclLastAppliedChangeNumber;transport$new_supplier$consumer: 
     last_change_number_retrieved_from_new_supplier   
    -
    replace: orclLastAppliedChangeNumber;apply$consumer_host$new_supplier_host
    orclLastAppliedChangeNumber;apply$consumer_host$new_supplier_host: 
     last_change_number_retrieved_from_consumer      
    -
    replace: orclLastAppliedChangeNumber;transport$consumer_host$new_supplier_host
    orclLastAppliedChangeNumber;transport$consumer_host$new_supplier_host:
     last_change_number_retrieved_from_consumer
    
  2. ldapmodifyを使用して承諾を変更する方法は次のとおりです。

    ldapmodify -D "cn=orcladmin" -q -h host_name -p port_number -f LDIF_file
    

41.2.6 タスク6: 旧サプライヤでの旧承諾のクリーンアップ

「タスク2: 旧レプリケーション承諾の破棄と新規承諾の設定」の実行時に旧サプライヤが停止した場合、旧サプライヤ上の旧承諾はクリーンアップされません。ここで、レプリケーション環境管理ツールを使用して、これをクリーンアップします。次のように入力します。

remtool -pcleanup -agrmt [-v] [-bind consumer_host::port_number]        

replication_dn_passwordの入力を要求されます。


関連項目:

『Oracle Fusion Middleware Oracle Identity Managementリファレンス』remtoolコマンドライン・ツールのリファレンスを参照してください


41.2.7 タスク7: 関連ノードでのすべてのディレクトリ・レプリケーション・サーバーの起動

新規サプライヤ、旧サプライヤおよびコンシューマ上のOracleディレクトリ・レプリケーション・サーバーを、次のように入力することにより起動します。

oidctl connect=connStr server=oidrepld instance=1 \
   name=instance_name componentname=component_name \
   flags="-h LdapHost -p LdapPort" start

41.3 時間ベース・レプリケーション・フェイルオーバーの実行

この項では、時間ベース・レプリケーション・フェイルオーバーの実行方法について説明します。この項の内容は、次のとおりです。

41.3.1 タスク1: 新規サプライヤでの変更ログ・ガベージ・コレクション・オブジェクトの構成

新規サプライヤ上で、希望する期間(たとえば、24時間)の変更ログを保存するように変更ログ・パージ構成エントリを構成する手順は、次のとおりです。

  1. 次のようなLDIFファイルを作成します。

    dn: cn=changelog purgeconfig,cn=purgeconfig,cn=subconfigsubentry
    changetype:modify
    replace: orclpurgetargetage
    orclpurgetargetage: 24
    
  2. LDIFファイルを適用するために、次のように入力します。

    ldapmodify -D "cn=orcladmin" -q -p port -h host -f LDIF_file
    

41.3.2 タスク2: 新規サプライヤの最後に適用された変更番号の保存

新規サプライヤから最後に適用された変更番号を、次のように取得します。

ldapsearch -h new_supplier_host -p port_number -D cn=orcladmin -q \
   -b "" -s base "objectclass=*" lastchangenumber

この番号を保存します。

41.3.3 タスク3: 新規サプライヤでの変更ログ再生成の有効化

新規サプライヤで変更ログ再生成を、次のようにして有効化します。

  1. 次のようなLDIFファイルを作成します。

    dn: 
    changetype: modify
    replace: orcldiprepository
    orcldiprepository: TRUE
    
  2. LDIFファイルを適用するために、次のように入力します。

    ldapmodify -D "cn=orcladmin" -q -h host_name -p port_number -f LDIF_file
    

41.3.4 タスク4: 希望する期間が経過するのを待機

変更ログ・パージ構成エントリのorclpurgetargetageの値未満の期間を待機します。

41.3.5 タスク5: 関連ノードでのすべてのディレクトリ・レプリケーション・サーバーの停止

新規サプライヤ、旧サプライヤおよびコンシューマ上のOracleディレクトリ・レプリケーション・サーバーを、次のように入力することにより停止します。

oidctl connect=connStr server=oidrepld instance=1 \
 componentname=oidComponentName \
 flags="-h LdapHost -p LdapPort" stop

41.3.6 タスク6: 旧レプリケーション承諾の破棄と新規承諾の設定

旧サプライヤとコンシューマ間の古いレプリケーション承諾を破棄し、新規サプライヤとコンシューマ間の新規承諾を設定します。このタスクは、レプリケーション環境管理ツールを次のように使用して行います。

remtool -pchgmaster [-v] [-bind hostname:port_number]

replication_dn_passwordの入力を要求されます。


関連項目:

『Oracle Fusion Middleware Oracle Identity Managementリファレンス』remtoolコマンドライン・ツールのリファレンスを参照してください


41.3.7 タスク7: 新規承諾の最後に適用された変更番号の更新

新規サプライヤで、最後に適用された変更番号が、「タスク2: 新規サプライヤの最後に適用された変更番号の保存」で取得した値になるように、次のように新規承諾を変更します。

  1. 取得した最後に適用された変更番号を使用して、次のようなLDIFファイルを作成します。

    dn: agreement_dn
    changetype: modify
    replace: orclLastAppliedChangeNumber
    orclLastAppliedChangeNumber: last_change_number_retrieved
    
  2. ldapmodifyを使用して、LDIFファイルを承諾に適用します。

    ldapmodify -D "cn=orcladmin" -q -h host_name -p port_number -f LDIF_file
    

41.3.8 タスク8: 旧サプライヤでの旧承諾のクリーンアップ

「タスク6: 旧レプリケーション承諾の破棄と新規承諾の設定」の実行時に旧サプライヤが停止した場合、旧サプライヤ上の旧承諾はクリーンアップされません。ここで、レプリケーション環境管理ツールを使用して、これをクリーンアップします。次のように入力します。

remtool -pcleanup -agrmt [-v] [-bind hostname:port_number]

replication_dn_passwordの入力を要求されます。


関連項目:

『Oracle Fusion Middleware Oracle Identity Managementリファレンス』remtoolコマンドライン・ツールのリファレンスを参照してください


41.3.9 タスク9: 関連ノードでのすべてのディレクトリ・レプリケーション・サーバーの起動

新規サプライヤ、旧サプライヤおよびコンシューマ上のOracleディレクトリ・レプリケーション・サーバーを、次のように入力することにより起動します。

oidctl connect=connStr server=oidrepld instance=1  \
 componentname=oidComponentName \
 flags="-h LdapHost -p LdapPort" start

関連項目: