プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Internet Directory管理者ガイド
11g リリース1(11.1.1)
B55919-08
  目次へ移動
目次

前
 
次
 

Q ローリング・アップグレードの実行

この付録では、現在の環境にディレクトリ・レプリケーション・グループ(DRG)が構成されている場合に、Oracle Internet Directoryのローリング・アップグレードを実行する方法について説明します。

DRGのOracleホーム・ディレクトリをアップグレードするには、DRGのすべてのレプリケーション・サーバーを停止し、各Oracleホームをそれぞれ最新バージョンにアップグレードする必要があります。レプリケーション・サーバーを停止しないと、Oracleホーム・ディレクトリをアップグレードするときに問題が発生する可能性があります。

このアップグレード・プロセスによる停止時間およびサービスの喪失を回避するには、ローリング・アップグレードの手順に従って、他のOracle Internet DirectoryノードおよびDRG内の対応するレプリケーション・サーバーが稼働したままの状態で、各Oracleホーム・ディレクトリを個別にアップグレードすることをお薦めします。

ローリング・アップグレードの実行後にDRG内のノードに一貫性のないデータが残されることを回避するため、Oracle Internet Directoryでは次の操作が実行されます。

  1. 着信LDAP更新リクエストを処理するOracle Internet Directoryマスター・ノードで、更新リクエストごとに変更ログ・エントリが生成されます。マスター・ノードは、DRGのどのノードでもかまいません(第Q.3項「ローリング・アップグレードの例」のノードA、BまたはC)。

  2. DRG内のノードがローリング・アップグレード操作の完了後に元どおり稼働するかぎり、LDAPリクエストの着信時にノードが停止しているか、アップグレード中であるかにかかわらず、後続の変更はDRG内の他のすべてのノードに適用されます。

    変更がターゲット・ノードに適用されると、適切な競合解消ロジックによって収束が保証されます。再試行ロジック(デフォルトではサイクル遅延付きで10回)によって、ターゲット・ノードの停止時などに、一時的な競合状態が処理されます。

この付録の内容は次のとおりです。

Q.1 ローリング・アップグレードの前提条件

ローリング・アップグレードの手順を開始する前に、Oracle Internet Directoryの現在のバージョンに応じて、DRGの各Oracleホームに次の個別パッチを適用します。これらのパッチによって、remtoolおよびoidrepldバイナリがアップグレードされます。

  • Oracle Internet Directoryバージョン11.1.1.2.0の場合、各OracleホームにOracle Bug#10431688の修正を適用します。

  • Oracle Internet Directoryバージョン11.1.1.3.0の場合、各OracleホームにOracle Bug#10431664の修正を適用します。

  • Oracle Internet Directoryバージョン11.1.1.4.0以上のリリースの場合、ローリング・アップグレードに前提条件パッチは必要ありません。

パッチ適用の詳細は、『Oracle Fusion Middlewareパッチ適用ガイド』を参照してください。

Q.2 ローリング・アップグレードの実行

Oracle Internet Directory DRGをアップグレードする手順は、次のとおりです。

  1. アップグレードする最初のノード上のレプリケーション・サーバーを停止します。

  2. 最初のノードから他の各ノードへのレプリケーションを次のように一時停止します。

    remtool -psuspendrepl -fromnode first_node_host:first_node_port
    

    このコマンドは、すべてのOracle Internet DirectoryノードのレプリカIDおよびそれらの各ディレクトリ・バージョン番号をリストします。要求されたとおりに他の各ノードのレプリカIDを指定するか、または他のすべてのノードへのレプリケーションを一時停止するallを入力します。

    remtoolの詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』を参照してください。

  3. DRGの最初のノードから他のすべてのノードへのレプリケーションが一時停止されたことを検証するには、次のldapsearchコマンドを実行します。

    ldapsearch -h first_node_host -p OID_port  -b "" -s base "(objectclass=orclReplAgreementEntry)" orcllastappliedchangenumber
    

    最初のノードから他のノードへのorcllastappliedchangenumberをサブタイプ・ステータスで探します。この値は0で、次の形式となります。

    orcllastappliedchangenumber;status$replica_id_of_first_node$replica_id_of_other_node;transport
    

    および

    orcllastappliedchangenumber;apply;status$replica_id_of_first_node$replica_id_of_other_node
    

    矛盾がある場合は、手順2を繰り返します。

  4. アップグレードしようとしているノード上でOracle Internet Directoryを停止します。

  5. 『Oracle Fusion Middlewareパッチ適用ガイド』の説明に従って、ノードにパッチを適用して現在のリリースに移行します。

  6. アップグレードしたばかりのノード上でOracle Internet Directoryを起動します。

  7. 他のノードはまだアップグレードされていないため、最初のノードと他のノードとの間のレプリケーションは再開しないでください。

  8. アップグレードする2番目のノードでレプリケーション・サーバーを停止します。

  9. 2番目のノードから、まだアップグレードされていない各ノードへのレプリケーションは一時停止します。

    remtool -psuspendrepl -fromnode second_node_host:second_node_port
    

    このコマンドは、すべてのOracle Internet DirectoryノードのレプリカIDおよびそれらの各ディレクトリ・バージョン番号をリストします。まだアップグレードされていない他の各ノードのレプリカIDを指定する必要があります。

  10. 手順3と同じコマンドを2番目のノードに使用して、アップグレードしようとしているノードから、まだアップグレードされていないその他の各ノードへのレプリケーションが一時停止されていることを検証します。

  11. アップグレードしようとしているノード上でOracle Internet Directoryを停止します。

  12. 『Oracle Fusion Middlewareパッチ適用ガイド』の説明に従って、ノードにパッチを適用して現在のリリースに移行します。

  13. アップグレードしたばかりのノード上でOracle Internet Directoryを起動します。

  14. これで、2つのノードがアップグレードされたため、最初のアップグレード済ノードから2番目のアップグレード済ノードへのレプリケーションを再開します。

    remtool -presumerepl -fromnode  first_upgraded_replica_host:port -tonode second_upgraded_replica_host:port
    
  15. 次のldapsearchコマンドを実行して、DRGの最初のアップグレード済ノードから2番目のアップグレード済ノードへのレプリケーションが再開されたことを検証します。

    ldapsearch -p OID_port -h first_upgraded_OID_host -b "" -s sub"(objectclass=orclReplAgreementEntry)" orcllastappliedchangenumber
    

    最初のアップグレード済Oracle Internet Directoryノードから2番目のアップグレード済ノードへのorcllastappliedchangenumberをサブタイプ・ステータスで探します。値は1となっているはずです。

    このldapsearchコマンドを、以前アップグレードした他のすべてのノードに対して繰り返します。矛盾がある場合は、手順14を繰り返します。

  16. 2番目のアップグレード済レプリカでレプリケーション・サーバーを起動します。

  17. アップグレードする3番目のノードでレプリケーション・サーバーを停止します。

  18. 3番目のノードから、まだアップグレードされていない各ノード'(ある場合)へのレプリケーションを一時停止します。

  19. 3番目のノードから、まだアップグレードされていない各ノードへのレプリケーションが一時停止されたことを検証します。

  20. アップグレードする3番目のノード上でOracle Internet Directoryおよびその他のプロセスを停止します。

  21. 『Oracle Fusion Middlewareパッチ適用ガイド』の説明に従って、ノードにパッチを適用して現在のリリースに移行します。

  22. 3番目のノードでOracle Internet Directoryを起動します。

  23. すでにアップグレードした各ノードから3番目のノードへのレプリケーションを再開します。

  24. 各アップグレード済ノードから3番目のノードへのレプリケーションが再開されたことを検証します。

  25. 3番目のノードでレプリケーションを開始します。

DRGのすべてのノードに対してこの手順を繰り返します。

ノードをアップグレードする前に、そのノードから、まだアップグレードされていない各ノード'へのレプリケーションを一時停止し、一時停止されていることを検証します。アップグレードしようとしているノード上でOracle Internet Directoryを停止します。ノードをアップグレードします。アップグレードしたばかりノードでOracle Internet Directoryを起動します。すでにアップグレードしたノードから、アップグレードしたばかりのノードへのレプリケーションを再開します。アップグレードしたばかりノードでレプリケーションを開始します。

Q.3 ローリング・アップグレードの例

次の例には、マルチマスターDRGに3つのOracle Internet DirectoryノードA、B、Cが含まれます。ローリング・アップグレードの手順を使用して、すべてのノードを現在のリリースにアップグレードする必要があります。この例では、最初にノードAを、次にノードB、ノードCの順にアップグレードします。


注意:

ローリング・アップグレードの手順を開始する前に、第Q.1項「ローリング・アップグレードの前提条件」の説明に従って、必要なパッチを適用します。

ノードをアップグレードする手順は、次のとおりです。

  1. ノードAでレプリケーション・サーバーを停止します。

  2. ノードAからノードBとノードC両方へのレプリケーションを一時停止します。次に例を示します。

    remtool -psuspendrepl  -fromnode  HostA:PortA
    

    このコマンドは、3つすべてのOracle Internet DirectoryノードのレプリカIDを表示します。ノードBのレプリカIDをremtoolへの入力として指定します。または、allを入力して、remtoolでBおよびCのレプリカIDが自動的に選択されるようにすることもできます。

  3. 次のldapsearchコマンドを実行して、ノードAからノードBへのレプリケーションが一時停止されていることを検証します。

    ldapsearch -p  PortA  -h  hostA  -b  "" -s  base "(objectclass=orclReplAgreementEntry)" orcllastappliedchangenumber
    

    サブタイプstatusorcllastappliedchangenumber属性を探します。この属性の値は0で、次の形式となります。

    orcllastappliedchangenumber;apply;status$replica_id_of_node A$replica_id_of_node_B
    orcllastappliedchangenumber:status$replicaid_of_node_A$replicaid_of_nodeB;transport
    

    このステータス値に矛盾がある場合は、手順2を繰り返します。

    同様に、ノードAからノードCへのレプリケーションが一時停止されていることを検証します。

  4. ノードAでOracle Internet Directoryおよびその他のプロセスを停止します。

  5. ノードAでパッチセット・アシスタント(PSA)を実行してノードを現在のリリースにアップグレードします。

  6. ノードAでOracle Internet Directoryとレプリケーション・サーバーを起動します。ノードAがレプリケーションを再開する必要があるノードはないことに注意してください。

  7. ノードBでレプリケーション・サーバーを停止します。

  8. 次のコマンドを実行して、ノードBからノードCへのレプリケーションを一時停止します。

    remtool -psuspendrepl -fromnode HostB:PortB -tonode HostC:PortC
    
  9. 次のldapsearchコマンドを実行して、ノードBからノードCへのレプリケーションが一時停止されていることを検証します。

    ldapsearch -p  PortB  -h  hostB  -b  "" -s  base "(objectclass=orclReplAgreementEntry)" orcllastappliedchangenumber
    

    サブタイプstatusorcllastappliedchangenumberを探します。値が0で、次の形式となっているはずです。

    orcllastappliedchangenumber;apply;status$replica_id_of_node_B$replica_id_of_node_C
    orcllastappliedchangenumber:status$replicaid_of_node_B$replicaid_of_node_C;transport
    

    このステータス値に矛盾がある場合は、手順8を繰り返します。

  10. ノードBでOracle Internet Directoryおよびその他のプロセスを停止します。

  11. ノードBでPSAを実行してノードを現在のリリースにアップグレードします。

  12. ノードBのOracle Internet Directoryを起動して、次のようにノードAからノードBへのレプリケーションを再開します。

     remtool -presumerepl -fromnode HostA:PortA -tonode HostB:PortB
    
  13. 次のldapsearchコマンドを実行して、ノードAからノードBへのレプリケーションが再開されたことを検証します。

    ldapsearch -p OID_port -h hostA -b "" -s base "(objectclass= orclReplAgreementEntry)" orcllastappliedchangenumber
    

    アップグレード済ノードAからノードBへのorcllastappliedchangenumberをサブタイプstatusで探します。値は1となっているはずです。

    このステータス値に矛盾がある場合は、手順12を繰り返します。

  14. ノードBでレプリケーション・サーバーを起動します。

  15. ノードCでレプリケーション・サーバーを停止します。

  16. ノードCでOracle Internet Directoryおよびその他のプロセスを停止します。他にアップグレードするノードはないため、レプリケーションを一時停止する必要はありません。

  17. ノードCでPSAを実行してノードを現在のリリースにアップグレードします。

  18. ノードCのOracle Internet Directoryを起動して、次のようにノードAからノードCへのレプリケーションを再開します。

    remtool -presumerepl -fromnode HostA:PortA -tonode HostC:PortC
    

    ノードBからノードCへのレプリケーションを再開します。

    remtool -presumerepl -fromnode HostB:PortB -tonode HostC:PortC
    
  19. 手順13と同様に、ノードAとノードBでldapsearchを実行して、レプリケーションが正常に再開されたことを検証します。次のレプリケーションを検証します。

    • ノードAからノードC

    • ノードBからノードC

  20. ノードCでレプリケーション・サーバーを起動します。