44 レプリケーションの管理およびモニタリング
oidcmpre
)を使用して、一貫性のないデータを比較および調整する方法について説明します。レプリケーションの構成属性の詳細は、「レプリケーション構成属性の管理」を参照してください。
この章の内容は次のとおりです。
ノート:
一部の変更は、レプリケーション・サーバーが再起動されるまで有効になりません。
44.1 レプリケーションの管理およびモニタリングの概要
レプリケーションのインストールおよび構成後は、レプリケーションに関連する属性のデフォルト値を表示または変更できます。
属性およびそのコンテナの詳細は、「レプリケーション構成属性の管理」を参照してください。
この概要の項目は次のとおりです。
44.1.1 LDAPベースの部分レプリケーションの意味
LDAPベースの部分レプリケーションでは、レプリカのネーミング・コンテキスト・オブジェクトを定義することにより、レプリケートするものとしないものを変更できます。これらのオブジェクトのパラメータは、次の識別名を持つエントリに格納されます。
次に例を示します。
cn=namingcontext_ID,cn=replication namecontext, orclAgreementID=numeric_identifier_of_replication_agreement, orclReplicaId=unique_identifier_of_replica, cn=replication configuration
ノート:
ディレクトリ・レプリケーション・サーバーは、レプリカのネーミング・コンテキスト・オブジェクトを、サプライヤ側にある承諾から読み込むため、すべての変更をサプライヤ側およびコンシューマ側(オプション)のネーミング・コンテキスト・オブジェクトに適用する必要があります。
「ldapmodifyを使用したレプリカのネーミング・コンテキスト・オブジェクト・パラメータの変更の概要」を参照してください。
44.1.2 ワーカー・スレッドの管理について
レプリケーション・サーバーはマルチスレッド・プロセスです。
サプライヤ当たりの、次の専用ワーカー・スレッドの数を制御できます。
-
サプライヤからコンシューマへの変更ログの転送
-
転送された変更ログのコンシューマでの適用
サプライヤ当たりの転送スレッド数および適用スレッド数を設定できます。あるいは、自動調整(負荷に基づいてこの2つのタスクに割り当てるスレッド数を動的に変更)するようにレプリケーション・サーバーを構成することもできます。サーバーを自動調整するように設定した場合は、これらのタスク間で共有するスレッドの最大数を指定する必要があります。
このような数はロードに基づいて調整する必要があります。コマンド行から、ldapmodify
を使用してスレッドを構成します。
44.1.3 ディレクトリ・レプリケーションの変更ログ
Oracle Internet Directoryは、各変更をエントリとして変更ログ・ストアに記録します。各エントリには一意の変更番号があります。
コンシューマは、適用した最後の変更の変更番号を記録しておき、その番号よりも大きい変更番号の変更のみをサプライヤから取得します。
-
LDAPベース・レプリケーション承諾では、変更ログの処理は、変更ログの転送と変更ログの適用という2つのフェーズで構成されています。LDAPベース承諾ごとに、2つの変更ログ処理のステータス(各フェーズに1つ)があります。ディレクトリ・レプリケーション・サーバーは、最後に転送した変更番号を、レプリケーション承諾エントリの
orlcllastappliedchangenumber
属性のtransport
サブタイプに格納します。ディレクトリ・レプリケーション・サーバーは、最後に適用した変更番号を、レプリケーション承諾エントリのorllclastappliedchangenumber
属性のapply
サブタイプに格納します。orlcllastappliedchangenumber
属性の書式は、表43-2を参照してください。ノート:
Oracle Internet Directory 11g リリース1(11.1.1.7.0)以降では、LDAPレプリケーションのデータフローは適用キューを含む適用フェーズから構成されます。トランスポート・キューを含むトランスポート・フェーズは使用されなくなりました。「LDAPベースのレプリケーションのアーキテクチャ」を参照してください。
-
複数値属性を変更する場合、Oracle Internet Directoryでは通常、変更により1つの新しい値のみが追加されるときでも、その属性値をすべて含む変更ログが作成されます。ただし、数百万個の値を含む場合がある
member
およびuniquemember
では、この動作によりパフォーマンスの問題が生じます。member
およびuniquemember
については、Oracle Internet Directoryではそうせずに、追加または削除された値のみを含む変更ログを生成します。この動作は、DSE属性orclsimplemodchglogattributes
によって制御されます。
変更ログは、レプリケーション・サーバーがコンシュームした後、ガベージ・コレクタによってパージされます。
44.1.4 ディレクトリ・レプリケーションの変更ログのパーティション化の概要
Oracle Internet Directoryは、各変更をエントリとして変更ログ表に記録します。
この項には次のトピックが含まれます:
44.1.4.1 ディレクトリ・レプリケーションの変更ログのパーティション化について
変更ログ表には、通常、数千から数百万のレコードが含まれます。しかし、このような大容量の表には、次のように重要な考慮事項があります。
-
これらの表に対するデータの追加が発生する継続的な更新。
-
新しい変更レコードの継続的なレプリケーション検索。
-
不要なデータを削除するための定期的なパージ。
これらの要件に対処するため、Oracle Internet Directoryでは、変更ログ表のパーティション化の概念が導入されています。パーティション化によって、大規模な表を、より小規模で管理しやすいパーティションと呼ばれる複数の断片に分割できます。各パーティションには、その独自の名前、コンピューティング・リソースおよび記憶域特性があります。問合せが実行されると、処理が必要な行を保持するパーティションにリクエストが転送されます。これによって、問合せ実行のパフォーマンスが向上し、効率性が強化され、日々のメンテナンスの複雑性が簡略化されます。
ノート:
変更ログのパーティション化は、Oracle Database 11g Enterprise Edition以上のバージョンでサポートされます。
44.1.4.2 変更ログのパーティション化の方法
Oracle Internet Directoryでは、100
Kのパーティション範囲を定義して、変更ログ表のODS_CHG_LOG
をパーティション化できます。データベースでは100Kのレコードごとに新しいパーティションが作成されるため、各パーティションには100Kのレコードが含まれることになります。
パージが実行されると、個々のレコードではなくパーティションが削除されます。逆に言えば、すべての変更がパージされるわけではありません。パージは、変更ログの最大数が一定の間隔値に到達した場合にのみ発生します。
44.1.4.3 変更ログのパーティション化の構成
変更ログ表のパーティション化を構成するには、製品のアップグレード後またはインストール後に、明示的にoidchlogs.sqlスクリプトを実行する必要があります。このSQLスクリプトは、インストール・パッケージに附属しています。
ノート:
-
Oracle Internet Directoryのデフォルト・インストールでは、変更ログのパーティション化は有効になりません。
-
変更ログのパーティション化のためにoidchlogs.sqlスクリプトを実行する前に、すべてのOracle Internet Directoryインスタンスを停止する必要があります。
次のディレクトリに移動して、サービスの停止中にOracle Internet Directoryデータベース・ユーザーとしてSQLスクリプトを実行します。
$ORACLE_HOME
/
ldap/admin/oidchlogs.sql
パーティション化に成功すると、バックアップ・パーティション表ods_chg_log
として、chglog_
[timestamp
]という名前の表が作成されます。
44.1.5 管理者操作キュー
この項では、レプリケーションの管理者操作キュー、パージ・キューおよびリトライ・キューのロールについて説明します。
レプリケーションの管理者操作キュー、パージ・キューおよびリトライ・キューの役割の詳細は、「マルチマスター・レプリケーション・プロセスを使用したエントリの管理」を参照してください。競合解消におけるこれらのキューの役割の詳細は、「Oracleレプリケーションにおける競合の解消の概要」を参照してください。
44.1.5.1 キューの管理について
管理者操作キュー・ツールのManageHiq.retry
およびManageHiq.purge
により、管理者操作キューからリトライ・キューまたはパージ・キューにそれぞれ変更を移動できます。「管理者操作キューの管理」を参照してください。
44.1.5.3 管理者操作キュー・ツールで処理されるエントリ数
レプリケーション・サーバーが一度に処理できる変更ログの最大数を管理者操作キューのエントリ数が超える場合、一部のエントリが処理されません。
レプリケーション・サーバーが一度に処理できる変更ログの最大数は、次の2つの構成属性の最小数です。
-
レプリケーション構成セット内の
orclsizelimit
-
レプリケーションがアクティブであるOIDコンポーネントのインスタンス固有の構成エントリ内の
orclsizelimit
レプリケーション構成セット内のorclsizelimit
のデフォルト値は1000です。これを0に設定すると、デフォルト値の1000が採用されます。
Oracle Internet Directoryインスタンス固有のエントリ内のorclsizelimit
属性は、検索時に返されるエントリの最大数を指定します。デフォルト値は10000です。
一度に処理する変更ログの数を増やすには、両方の属性を同じ値(1000より大きい値)に設定する必要があります。
Oracle Internet Directoryサーバー・インスタンスのorclsizelimit
属性の設定値を大きくしすぎるとサーバーのパフォーマンスに影響を与えます。これはOracle Internet Directoryサーバー・インスタンスのorclsizelimit
が、検索時に返されるエントリの最大数も制御するためです。
44.1.6 パイロット・モードについて
パイロット・モードを使用して、アプリケーションを本番環境にデプロイする前にテストします。
通常、パイロット・モードは、本番ノードからの一方向レプリケーションを使用してローカル・ノードに設定します。レプリカはパイロット・モードですが、ローカル・ノードで発生するLDAPの変更はすべて追跡されます。パイロット・モードが終了すると、これらの変更はLDIFファイルに書き込まれます。アプリケーションが本番環境にデプロイされるときに、パイロット・レプリカで追加または変更されたすべてのエントリをldifファイルを使用して本番ノードに追加できます。
44.1.7 Oracleレプリケーションにおける競合の解消の概要
競合は、ディレクトリ・レプリケーション・サーバーがサプライヤからコンシューマにリモートの変更を適用しようとして失敗した場合、常に発生します。
この項では、様々なタイプのレプリケーションの競合、競合の自動解消およびその仕組みについて説明します。
この項には次のトピックが含まれます:
44.1.7.1 Oracleレプリケーションにおける競合の解消について
双方向およびマルチマスターLDAPベース・レプリケーションを使用すると、複数のディレクトリ・サーバーを更新できます。競合は、ディレクトリ・レプリケーション・サーバーがサプライヤからコンシューマにリモートの変更を適用しようとして失敗した場合、常に発生します。
通常、競合はWide Area Network上で発生する場合がある通信速度の低下や送信エラーが原因で発生する変更の時間的なずれが原因です。また、過去に発生した不整合がタイムリに解消されていない場合、引き続き競合が発生する可能性があります。
部分レプリケーションでは、ネーミング・コンテキストが含むから除外に変更されると、レプリケーション・サーバーによりコンシューマ側でネーミング・コンテキストが削除されます。同様に、ネーミング・コンテキストが除外から含むに変更されると、レプリケーション・サーバーで、サプライヤからコンシューマへのネーミング・コンテキスト全体が同期化されます。
競合を引き起こす可能性があるLDAP操作は次のとおりです。
-
追加
-
削除
-
変更
-
相対識別名または識別名の変更
44.1.7.2 レプリケーション競合が発生するレベル
競合には次の2つのタイプがあります。
-
エントリ・レベルの競合
-
属性レベルの競合
表44-1 レプリケーション競合のタイプ
レプリケーション競合のレベル | 説明 |
---|---|
エントリ・レベルの競合 |
ディレクトリ・レプリケーション・サーバーが、コンシューマに変更を適用するときに発生します。次のいずれかのタイプの変更がコンシューマで発生する可能性があります。
これらの競合は、解消するのが難しい場合があります。たとえば、次のような原因の場合は競合を解消するのが不可能な可能性があります。
存在する必要がないエントリが存在している場合は、以前に追加済であるか、最近識別名の操作変更があった可能性があります。 |
属性レベルの競合 |
2つのディレクトリが、同じ属性を異なる値で異なる時間に更新している場合に発生します。属性が単一値の場合、レプリケーション・プロセスは、競合および属性バージョン番号に含まれている変更のタイムスタンプを検証して、競合を解消します。レプリケーション構成設定エントリの属性 |
44.1.7.3 レプリケーション競合の自動解消
11gリリース1 (11.1.1.0.0)以降では、競合の自動解消を有効にできます。この機能を有効にすると、サプライヤのスキーマとコンシューマのスキーマが一致するときは、管理者操作キューの競合は自動的にパージ・キューに移動されます。
ldapmodify
コマンドを使用して、競合の自動解決を有効または無効にできます。
コマンド行を使用するには、レプリケーション構成セットのorclconflresolution
の値を変更します。
44.1.7.4 競合の自動解消の動作
ディレクトリ・レプリケーション・サーバーは、次の処理によって、発生した競合をすべて解消しようとします。
-
変更が適用されたときに、競合が検出されます。
-
レプリケーション・プロセスは、特定の待機期間が過ぎると、特定回数分または反復による変更の再適用を、特定期間試行します。
-
レプリケーション・プロセスが変更の適用に成功しないまま再試行制限に達した場合、変更に競合のフラグを付けた後、解消を試みます。解消規則(次の項で説明)に従って競合を解消できない場合は、優先順位の低い管理者操作キューにその変更を移動します。変更は、レプリケーション承諾された
orclHIQSchedule
パラメータに指定した時間単位に従って適用されます。ディレクトリ・レプリケーション・サーバーは、変更を移動する前にシステム管理者用のログ・ファイルに競合を書き込みます。ノート:
レプリケーション時に、スキーマ、カタログおよびグループ・エントリの競合の解消は行われません。これは、多数の複数値の属性の競合を解消しようとすると、パフォーマンスに重大な影響を及ぼす可能性があるためです。一度に複数のマスターからこのようなエントリの更新を行うことは、回避してください。
関連項目:
-
マルチマスター・レプリケーション・プロセスによるエントリの追加、削除、変更、および識別名と相対識別名の変更方法の詳細は、「レプリケーションの動作」を参照してください。
-
スキーマについて不明な点がある場合は、『Oracle Identity Managementリファレンス』のLDAPスキーマの概要に関する項を参照してください
-
カタログについて不明な点がある場合は、『Oracle Identity Managementリファレンス』の
catalog
コマンド行ツールのリファレンスを参照してください -
グループ・エントリについて不明な点がある場合は、12cリリース2 (12.2.1.3.0)ライブラリの『Oracle Fusion Middleware Oracle Identity Managerでのセルフ・サービス・タスクの実行』のグループ・エントリの管理に関する項を参照してください。
-
44.2 ODSMを使用したレプリケーションの管理およびモニタリング
ODSMを使用してレプリケーションを管理およびモニタリングできます。
「Oracle Directory Services Managerを使用したローカル変更ログの管理」を参照してください。
44.2.1 Oracle Directory Services Managerを使用したローカル変更ログの管理
Oracle Directory Services Managerでは、最近実行された500件の変更を、変更ログ番号別、発生した操作の種類別(追加、変更、削除など)および各変更が加えられたエントリ別に表示できます。特定の変更を指定して、その詳細を表示することもできます。
この項では、次の項目について説明します。
44.2.1.1 ODSMを使用したローカル変更ログの表示
次のようにOracle Directory Services Managerを使用して、変更ログを表示できます。
- タスク選択バーで、「拡張」を選択します。
- 「変更ログ」を拡張します(まだ拡張されていない場合)。左側のパネルに、直近の変更から順に最近の500件の変更が表示されます。
- 変更を選択してそのプロパティを表示します。
44.2.1.2 変更ログ・エントリのプロパティ
表44-2に、「変更ログ」ページに表示されるプロパティと、対応する変更ログ・エントリの属性を示します。
表44-2 「変更ログ」ページのプロパティ
プロパティ | 変更ログ属性 |
---|---|
変更番号 |
|
操作 |
|
ターゲットDN |
|
変更 |
|
グローバル一意識別子(GUID) |
|
親GUID |
|
変更再試行回数 |
|
変更者名 |
|
操作時間 |
|
サーバー名 |
|
44.3 コマンド行を使用したレプリケーションの管理およびモニタリングの概要
ldapmodify、ldapsearch、remtoolおよびコマンド行を使用して、レプリケーションを管理およびモニターする方法について理解します。
この項では、次の項目について説明します。
44.3.1 コマンド行を使用した変更ログ生成の有効化と無効化
変更ログ生成を有効化および無効化するには、ldapmodify
を使用して、インスタンス固有の属性であるorclgeneratechangelog
の値を変更します。変更ログ生成を有効化するにはこの値を1
に設定し、変更ログ生成を無効化するには0
に設定します。
コマンドは次のとおりです。
ldapmodify -D cn=orcladmin -q -p portNum -h hostname -f ldifFile
インスタンス固有のエントリ内のorclgeneratechangelog
属性の値を1
に変更するLDIFファイルは、次のようになります。
dn: cn=componentname,cn=osdldapd,cn=subconfigsubentry
changetype: modify
replace: orclgeneratechangelog
orclgeneratechangelog: 1
44.3.2 ldapsearchを使用した変更ログの表示の概要
44.3.2.1 ldapsearchを使用した変更ログの表示
コマンド行から変更ログを表示するには、ldapsearch
を使用します。表示する変更ログの変更番号または変更番号の範囲を検索フィルタに指定します。サプライヤからローカル・ホストに転送された変更ログを表示するには、サプライヤのレプリカIDも検索フィルタに指定します。
次の例を参考にしてください。
-
サプライヤからローカル・ノードに転送された変更ログの範囲を表示するには、次のように入力します。
ldapsearch -D cn=orcladmin -p port -q -b "cn=changelog" -s one \ "(&(objectclass=changeLogEntry)(servername=SUPPLIER_REPLICAID)\ (changeNumber>=FROMCHGNO)(changeNumber<=TOCHGNO))"
-
サプライヤからローカル・ノードに転送された単一の変更ログを表示するには、次のように入力します。
ldapsearch -D cn=orcladmin -p port -q -b "cn=changelog" -s one \ "(&(objectclass=changeLogEntry)(servername=SUPPLIER_REPLICAID)\ (changeNumber=CHGNO))"
-
ローカル・ノードで生成された変更ログの範囲を表示するには、次のように入力します。
ldapsearch -D cn=orcladmin -p port -q -b "cn=changelog" -s one \ "(&(objectclass=changeLogEntry)(changeNumber>=FROMCHGNO)(changeNumber<=TOCHGNO))"
-
ローカル・ノードで生成された単一の変更ログを表示するには、次のように入力します。
ldapsearch -D cn=orcladmin -p port -q -b "cn=changelog" -s one \ "(&(objectclass=changeLogEntry)(changeNumber=CHGNO))"
出力の一部の行には、セパレータとして文字列<@! !@>
が含まれる場合があります。
44.3.2.2 変更ログの重要な属性
表44-3に、変更ログの重要な属性を示します。
表44-3 変更ログの重要な属性
属性 | 説明 |
---|---|
|
変更番号 |
|
操作 |
|
ターゲットDN |
|
変更 |
|
グローバル一意識別子(GUID) |
|
親GUID |
|
変更再試行回数 |
|
変更者名 |
|
操作時間 |
|
サーバー名 |
|
クライアントIPアドレスの値など、その他の変更ログ情報 例: |
44.3.3 ldapmodifyを使用したレプリカ・サブエントリの属性の構成の概要
44.3.3.1 ldapmodifyを使用したレプリカ・サブエントリの属性の構成
レプリカ・サブエントリには、次の識別名があります
orclreplicaid=Replica _ID,cn=replication configuration
ldapmodifyを使用してレプリカ・サブエントリ属性を変更するためのコマンド行構文は、次のとおりです。
ldapmodify -D cn=orcladmin -q -p portNum -h hostname -f ldifFile
orclreplicastate
をゼロに設定するには、次のLDIFファイルを使用します。
dn: orcclreplicaid=Replica _ID,cn=replication configuration
changetype: modify
replace: orclreplicastate
orclreplicastate: 0
44.3.3.2 レプリカ・サブエントリの属性
表44-4に、ldapmodify
を使用して変更できるレプリカ・サブエントリの属性を示します。
表44-4 レプリカ・サブエントリの属性
説明 | 構成属性 |
---|---|
レプリカID |
|
レプリカ1次URI |
|
レプリカ2次URI |
|
レプリカ状態 |
|
レプリカ・タイプ |
|
44.3.4 remtoolを使用したレプリカのパイロット・モードの指定
エンタープライズの一部としてレプリカをデプロイする前に、これをパイロット・モードでテストできます。
パイロット・モードを開始および終了するには、remtool
コマンドを使用します。構文は次のとおりです。
remtool -pilotreplica begin -bind hostname:ldap_port
remtool -pilotreplica end -bind hostname:ldap_port [-bkup file_name]
remtool -pilotreplica beginを実行すると、次のようになります。
-
orclreplicatype
は2
(パイロット)に設定されます。 -
orclpilotmode
は1
に設定されます。 -
pilotstarttime
は現在の時刻に設定されます。
remtool -pilotreplica endを実行すると、次のようになります。
-
orclpilotmode
は0
に設定されます。
ldapmodify
を使用してこれらの属性を直接変更しないようにしてください。
関連項目:
remtool
の-pilotreplica
オプションの詳細は、『Oracle Identity Managementリファレンス』のremtool
コマンドのリファレンスを参照してください。
44.3.5 ldapmodifyを使用したレプリケーション承諾の属性の構成の概要
ldapmodify
を使用して、レプリケーション承諾属性を構成できます。
この項には次のトピックが含まれます:
44.3.5.2 ldapmodifyを使用したレプリケーション承諾の属性の構成
レプリケーション承諾には、次の識別名があります。
orclagreementid=Agreement_ID,orclreplicaid=Replica_ID,cn=replication configuration
ノート:
常に、レプリケーション承諾を削除または変更する前にレプリケーションを非アクティブ化します。unresolvable-reference.htmlを参照してください。
次のLDIFファイルは、レプリケーション承諾のorclHIQSchedule
属性の値を900分に変更して管理者操作キュー・スケジュールを変更します。
dn: orclagreementid=Agreement_ID,orclreplicaid=Replica_ID,cn=replication configuration changetype: modify replace: orclhiqschedule orclhiqschedule: 900
44.3.6 ldapmodifyを使用したレプリカのネーミング・コンテキスト・オブジェクト・パラメータの変更の概要
レプリケーション範囲はコマンド行から変更できます。
レプリケーション範囲を変更するには、レプリケーションのネーミング・コンテキスト・コンテナ・エントリの下のネーミング・コンテキスト・オブジェクト・エントリを作成または変更します。
この項には次のトピックが含まれます:
44.3.6.1 ldapmodifyを使用したレプリカのネーミング・コンテキスト・オブジェクト・パラメータの変更
レプリケーション範囲を変更するには、次のようなコマンド行を使用します。
ldapadd -p port_number -h host -f file.ldif
この場合、LDIFファイルを使用して承諾の範囲を設定します。
たとえば、次のLDIFファイルを使用して、レプリケーション範囲をcn=oraclecontext
に設定します。
dn: cn=includednamingcontext000001,cn=replication namecontext,orclagreementid=agreementid,orclreplicaid=replicaid,cn=replication configurationobjectclass: orclreplnamectxconfig orclincludednamingcontexts: cn=oraclecontext cn: includednamingcontext000001
次のファイルを使用して、レプリケーション範囲からEMEAおよびAPACグループと、userpasswordおよびauthpassword属性を除外します
dn: cn=includednamingcontext000002,cn=replication namecontext,orclagreementid=agreementid,orclreplicaid=replicaid,cn=replication configuration objectclass=orclreplnamectxconfig orclincludednamingcontexts: dc=com orclexcludednamingcontexts: cn=groups,l=emea,dc=xyz,dc=com orclexcludednamingcontexts: cn=groups,l=apac,dc=xyz,dc=com orclExcludedAttributes: userpassword orclExcludedAttributes: authpassword cn: includednamingcontext000002
レプリカのネーミング・コンテキスト・オブジェクト・パラメータは、『Oracle Identity Managementリファレンス』のOracleディレクトリ・レプリケーションのスキーマ要素に関する項を参照してください。
ノート:
レプリケーション・サーバーは、サプライヤ・レプリカからネーミング・コンテキスト・オブジェクトを読み取ります。
44.3.6.2 LDAPベースのレプリカのネーミング・コンテキスト・オブジェクトの追加
次の操作を実行する、LDAPベースのレプリカのネーミング・コンテキスト・オブジェクトを作成できます。
-
ou=Americas,cn=mycompany
ネーミング・コンテキストをレプリケート -
レプリケーションから
cn=customer profile, ou=Americas,cn=mycompany
ネーミング・コンテキストを除外 -
レプリケーションから
userpassword
属性を除外
次のステップに従って、ネーミング・コンテキスト・オブジェクトを追加します。
44.3.6.3 ネーミング・コンテキスト・オブジェクトの削除
「LDAPベースのレプリカのネーミング・コンテキスト・オブジェクトの追加」で作成したネーミング・コンテキスト・オブジェクトを削除するには、次のように入力します。
ldapdelete -D "cn=orcladmin" -q \ -h supplier_host -p supplier_host_port_number \ "cn=naming_context_identifier, cn=replication namecontext, \ orclagreementid=replication_agreement_identifier, \ orclreplicaid=supplier_replica_identifier, \ cn=replication configuration"
44.3.6.4 レプリカのネーミング・コンテキスト・オブジェクトのorclIncludedNamingContexts属性の変更
ディレクトリ・レプリケーション・サーバーは、レプリカのネーミング・コンテキスト・オブジェクトのorclIncludedNamingcontexts
属性の値を使用して、部分レプリケーションに含める最上位サブツリーを指定します。
この例では、含める対象ネーミング・コンテキストがc=us
に設定されます。これは、c=us
が部分レプリケーションに含められることを意味しています。
44.3.6.5 レプリカのネーミング・コンテキスト・オブジェクトのorclExcludedNamingContexts属性の変更
ディレクトリ・レプリケーション・サーバーは、レプリカのネーミング・コンテキスト・オブジェクトのorclExcludedNamingcontexts
属性の値を使用して、部分レプリケーションから除外する最上位サブツリーを指定します。
この例では、除外対象ネーミング・コンテキストがou=Europe,c=us
およびou=Americas,c=us
に設定されます。これは、この2つのネーミング・コンテキストが部分レプリケーションから除外されることを意味しています。
ノート:
orclexcludednamingcontexts
属性に指定されたサブツリーは、同一レプリカのネーミング・コンテキスト・オブジェクトで指定されるincludednamingcontext
のサブツリーである必要があります。
44.3.6.6 レプリカのネーミング・コンテキスト・オブジェクトのorclExcludedAttributes属性の変更
含めるネーミング・コンテキストに加えられた特定の変更を、属性レベルで部分レプリケーションから除外するように指定できます。ディレクトリ・レプリケーション・サーバーは、レプリカのネーミング・コンテキスト・オブジェクトのorclExcludedAttributes属性の値を使用して、除外する属性を判別します。
この例では、orclincludednamingcontexts属性に指定されたtelephonenumber
属性およびtitle
属性が、レプリケーションから除外されます。
44.3.7 ldapmodifyを使用したレプリケーション構成セットの属性の構成の概要
ldapmodify
を使用して、レプリケーション構成セットの属性を構成できます。
この項には次のトピックが含まれます:
44.3.7.1 ldapmodifyを使用したレプリケーション構成セットの属性の構成について
レプリケーション構成セットには、次の識別名があります。
cn=configset0,cn=osdrepld,cn=subconfigsubentry
たとえば、次のLDIFファイルでは、レプリケーション構成セットにorclreplusesasl;digest-md5
属性を追加して設定し、レプリケーションのバインド用SASLを有効にします。
dn: cn=configset0,cn=osdrepld,cn=subconfigsubentry changetype: modify add: orclreplusesasl;digest-md5 orclreplusesasl;digest-md5: 1
orclsizelimit
の変更の詳細は、「管理者操作キュー・ツールで処理されるエントリ数の管理」を参照してください。
関連項目:
44.3.7.2 レプリケーション構成属性およびデバッグ・レベル
表44-6に、ldapmodify
を使用して変更できるレプリケーション構成セットの属性を示します。
表44-6 レプリケーション構成の属性
説明 | 構成属性 | デフォルト値 |
---|---|---|
変更再試行回数 |
|
10 |
最大ワーカー数 |
|
20 |
自動チューニング・レプリケーション (変更した後、サーバーを再起動します。) |
|
1 |
サプライヤ当たりの適用スレッド数 |
|
5 |
サプライヤ当たりの移送スレッド数 |
o |
1 |
レプリケーション・サイクル当たりの最大プロセス・エントリ数 |
|
1000 |
レプリケーション競合の自動解決 |
|
1 |
スタック・ダンプの生成 (変更した後、サーバーを再起動します。) |
|
|
レプリケーション・バインド用SASL |
orc |
なし |
最大ログ・ファイル・サイズ(MB) |
|
1 |
ローテーション状態を保つログ・ファイルの最大数 |
|
100 |
デバッグ・レベル |
|
0 |
レプリケーション・ステータス |
|
|
アクティブ化/非アクティブ化 |
|
0 |
属性orcldebuglevel
は、表44-7に示す値の任意の組合せに設定できます。値は加算方式です。再起動は不要です。
表44-7 レプリケーションのデバッグ・レベル
デバッグ・レベル | orcldebuglevelの値 |
---|---|
レプリケーション・プロセスのトレース |
|
レプリケーション・パフォーマンス・ログ |
|
ファンクション・コールのトレース |
|
大容量トレースのデバッグ |
|
44.3.8 コマンド行を使用した競合解消メッセージのモニタリングの概要
44.3.8.1 コマンド行を使用した競合解消メッセージのモニタリング
競合がログに書き込まれた場合、それは、システムに備わった解消手順では競合を解消できないということを意味します。以前に適用されなかった変更によって新しいレプリケーション変更の競合が発生することを防止するために、ログを定期的にモニターすることが重要です。
レプリケーション変更の競合をモニターするには、レプリケーション・ログの内容を検証します。それぞれに付加されているタイムスタンプによって、各メッセージを識別できます。
競合解消メッセージは、ファイル$DOMAIN_HOME
/servers/OID/logs/
componentName
/oidrepld00-XXXX.log
に記録されます。この場合、XXXX
は0000からorclmaxlogfiles configured
の範囲の数値です。
各メッセージには、競合の理由、変更番号、サプライヤ・ノード、変更タイプ、ターゲットDNおよび結果が含まれています。いくつか例を挙げます。
これは、競合がレプリケーション・サーバーによって自動的に解消された競合解消メッセージです。
[2008-10-09T09:57:31-07:00] [OID] [NOTIFICATION:16] [] [OIDREPLD] [host: stacu14] [pid: 4280] [tid: 3] Worker(Transport)::[[************ Conflict Resolution Message ************ Conflict reason: Attempted to add an existing entry. Change number: 3696. Supplier: stacu14_lm5. Change type: Add. Target DN: dc=org. Result: Dropped a newer change entry. ]]
次は、管理者操作キューに移動された未解決の競合です。
[2008-10-09T10:03:28-07:00] [OID] [NOTIFICATION:16] [] [OIDREPLD] [host: stacu14] [pid: 4653] [tid: 13] Worker(Transport)::[[************ Conflict Resolution Message ************ Conflict reason: Attempted to delete a non-existent entry. Change number: 3698. Supplier: stacu14_lm5. Change type: Delete. Target DN: dc=imc,dc=org. Result: Change moved to low priority queue after failing on 10th retry. ]]
44.3.8.2 競合解消メッセージ
表44-8に、競合の理由、変更タイプおよび結果を示します。
表44-8 競合解消メッセージ
競合の理由 | 変更タイプ | 結果 |
---|---|---|
既存のエントリの追加が試行されました |
追加 |
新しい変更エントリが削除されました N番目の再試行に失敗した後、変更は低優先度のキューに移動されました 変更エントリより後に作成された重複するターゲット・エントリが削除されました。変更エントリを再度適用してください 新しい変更エントリが削除されました 変更エントリは、guidがターゲット・エントリのguidより大きいため削除されました 変更エントリは、guidがターゲット・エントリと同じ(変更エントリとターゲット・エントリが同一)であるため削除されました 変更エントリより大きいguidを持つ重複するターゲット・エントリは削除されました |
親エントリが存在しません |
追加 |
N番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
内部エラーが発生しました |
追加 削除 変更 moddn |
N番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
存在しないエントリの変更が試行されました |
変更 |
N番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
存在しないエントリの削除が試行されました |
削除 |
N番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
リーフ以外のエントリの削除が試行されました |
削除 |
N番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
存在しないエントリの移動が試行されました |
moddn |
N番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
既存のエントリへの移動が試行されました |
moddn |
N番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
存在しない別のエントリのmoddnの同期化が進行中です |
moddn |
移動しようとしているエントリより後に作成された既存のエントリが削除されました。エントリの移動が再試行されます |
ソース・エントリより新しい既存のエントリへの移動が試行されました |
moddn |
エントリの移動が再試行されます |
移動しようとしているエントリより古い既存のエントリへの移動が試行されました |
moddn |
ソース・エントリが削除され、変更が削除されました |
同時に作成された同じguidを持つ既存のエントリへの移動が試行されました |
moddn |
ソース・エントリが削除され、変更が削除されました |
移動しようとしているエントリより大きいguidを持つ既存のエントリへの移動が試行されました |
moddn |
重複するターゲット・エントリが削除され、変更が再適用されました |
移動しようとしているエントリより小さいguidを持つ既存のエントリへの移動が試行されました |
moddn |
ソース・エントリが削除され、変更が削除されました |
44.3.9 管理者操作キューの管理
レプリケーションの競合が発生すると、Oracle Internet Directoryレプリケーション・サーバーは変更をリトライ・キューに入れ、そこからの変更の適用を指定された回数試行します。指定された再試行回数の後に失敗した場合、レプリケーション・サーバーは変更を管理者操作キューに入れます。レプリケーション・サーバーは、管理者によるアクションを待ちながら、そこから長い間隔で変更適用プロセスを繰り返します。
管理者操作キュー・ツールのManageHiq.retry
およびManageHiq.purge
により、管理者操作キューからリトライ・キューまたはパージ・キューにそれぞれ変更を移動できます。パージ・キューに変更を移動すると、以降ログ・エントリに対する変更の再適用は試行されません。管理者操作キューの変更を処理するには、次の一般的なステップを実行してください。
- 管理者操作キューの変更を検証します。
- 比較調整ツールを使用して競合している変更を調整します(「一貫性のないデータのoidcmprecによる比較調整の概要」を参照してください)。
ManageHiq.retry
を使用してリトライ・キューに、またはManageHiq.purge
を使用してパージ・キューに変更を戻します。
関連項目:
管理者操作キュー・ツールの使用方法の詳細は、『Oracle Identity Managementリファレンス』のOracle Internet Directoryレプリケーション管理ツールに関する項を参照してください
44.3.10 remtool -pthputを使用したディレクトリ・レプリケーション・グループでのレプリケーションの進行状況のモニタリング
レプリケーション環境管理ツールremtool
を使用して、ディレクトリ・レプリケーション・グループでのレプリケーションの進行状況をモニターできます。
-pthput
オプションを指定してremtool
を起動すると、ツールは指定されたノードにバインドされ、ディレクトリ・レプリケーション・グループ内のすべてのノードに関する情報が収集されます。この情報は、指定された間隔で表示されます。
構文は次のとおりです。
remtool -pthput [-bind hostname:port] -interval time_in_seconds [-file filename]
bind
引数はオプションです。これを指定しない場合、remtool
からhostname
、port
を入力するように求められます。レプリケーションdnのパスワードの入力を求められます。
interval
パラメータは、オプション・パラメータです。値は秒で指定します。デフォルト値は60秒です。各時間隔が経過するたびに、ディレクトリ・レプリケーション・グループ内のサプライヤおよびコンシューマ・ノードごとに次の情報がツールに表示されます。
-
最後の時間隔でキューに入れられた変更、
q_chgs
-
最後に適用された変更番号、
LA_Chg#
-
最後の時間隔で適用された変更、
Appl_chgs
-
最後の3回の時間隔での平均スループット、
Avg_thput
file
パラメータを指定すると、コマンド行に表示される出力がそのファイルに記録されます。指定しないと、タイムスタンプに基づいた名前のファイルに出力が記録されます。
出力例
------------------------------------------------------------------------------ Directory Replication Group (DRG) details : --- ------------------ ----------------------- ----------------------- ----- Sl Replicaid Directory Information Supplier Information Repl. No. Type --- ------------------ ----------------------- ----------------------- ----- 001 adc2101322_nldap32 adc2101322.us.example.com:3070 adc2101322_nldap3 RW 002 adc2101322_nldap3 adc2101322.us.example.com:3061 adc2101322_nldap32 RW --- ------------------ ----------------------- ----------------------- ----- Queue Statistics : ------------ ------------- ----- ------- ------ ------ ------ --------- --------- -------------------------------- Supplier Consumer Queued Last Applied Applied Average Changes Change Number Changes Throughput Of 3 intervals ------------- ------------- ----- ------- ------ ------ ------ --------- --------- ----------------------------- adc2101322_nldap3 adc2101322_nldap32 0 134369 0 0 adc2101322_nldap32 adc2101322_nldap3 0 47342 0 0 ------------- ------------- ----- ------- ------ ------ ------ --------- --------- -------------------------- adc2101322_nldap3 adc2101322_nldap32 2286 136214 1845 615 adc2101322_nldap32 adc2101322_nldap3 0 47342 0 0 ------------- ------------- ----- ------- ------ ------ ------ --------- --------- ----------------------- adc2101322_nldap3 adc2101322_nldap32 1608 137886 1672 1172 adc2101322_nldap32 adc2101322_nldap3 0 47342 0 0 ------------- ------------- ----- ------- ------ ------ ------ --------- --------- ------------------------ adc2101322_nldap3 adc2101322_nldap32 189 140302 2416 1977 adc2101322_nldap32 adc2101322_nldap3 0 47342 0 0 ------------- ------------- ----- ------- ------ ------ ------ --------- --------- -----------------------
44.3.11 remtoolを使用したキュー統計の表示およびレプリケーションの検証について
レプリケーション環境管理ツールremtool
を使用すれば、レプリケーション・プロセスの状態をモニターできます。
remtool
を定期的に実行して、レプリケーション・プロセスが正常に実行されていることを確認できます。remtool
コマンドには、キュー統計を表示し、レプリケーションを検証するオプションがあります。
LDAPベースのレプリケーション承諾をモニタリングするためのremtool
オプションは、-pdipqstat
と-pverify
です。構文は次のとおりです。
remtool -pdispqstat [-v] [-bind hostname:port_number]
remtool -pverify [-v] [-bind hostname:port_number] [-hiqmax hiqmax] [-tbtmax tbtmax]
これらすべてのコマンドで、replication_dn_password
の入力を求められます。
最初に、-pdispqstat
オプションを指定してremtool
を実行します。DRGのキュー統計が表示されます。管理者操作キュー(HIQ)エントリの数および移送される変更ログ(ログTBP)の数が通常よりも多いかどうかを確認します。多い場合は、レプリケーションが本来よりもゆっくりと実行されています。-pverify
オプションを指定してremtool
を実行し、レプリケーション構成を検証します。
-pverify
オプションを使用したremtool
によりテストの失敗が報告された場合は、生成されるレポートをチェックし、レポートの提案に従い、失敗を修正します。
関連項目:
『Oracle Identity Managementリファレンス』のremtool
コマンドのリファレンス
44.3.12 管理者操作キュー・ツールで処理できるエントリの数の管理
一度に処理する変更ログの数を増やすには、レプリケーション構成セット内のorclsizelimit
と、レプリケーションが実行されているサーバー・インスタンス内のorclsizelimit
を同じ値(1000より大きい値)に設定する必要があります。ldapmodify
を使用して両方を変更します。
いずれの場合も、次のように入力します。
ldapmodify -D cn=orcladmin -q -p portNum -h hostname -f ldifFile
レプリケーション構成セットのorclsizelimit
を5000に設定するには、次のようなLDIFファイルを使用します。
dn: cn=configset0,cn=osdrepld,cn=subconfigsubentry changetype: modify replace: orclsizelimit orclsizelimit: 5000
サーバー・インスタンスのorclsizelimit
を5000に設定するには、次のようなLDIFファイルを使用します。
dn: cn=componentname,cn=osdldapd,cn=subconfigsubentry
changetype: modify
replace: orclsizelimit
orclsizelimit: 5000
Oracle Internet Directoryサーバー・インスタンスのorclsizelimit
パラメータの設定値を大きくしすぎるとサーバーのパフォーマンスに影響を与えます。これはorclsizelimit
が、検索時に返されるエントリの最大数も制御するためです。
44.3.13 orclEntryExclusionFilter
属性を使用したレプリケーション・フィルタリングの構成
11gリリース1 (11.1.1.9.0)以降のOracle Internet Directoryサーバーおよびディレクトリ・レプリケーション・サーバーでは、レプリケーション承諾のorclEntryExclusionFilter
属性で構成されたLDAPフィルタに基づいて、特定のエントリを除外できます。
orclEntryExclusionFilter
属性はオプションで、カッコで囲まれた有効なLDAPフィルタ文字列を指定する単一値属性です。詳細は、「レプリケーション承諾エントリの属性」を参照してください。
ノート:
orclEntryExclusionFilter
属性のLDAPフィルタ文字列では、非カタログ化属性と集合属性はサポートされません。指定しない場合、フィルタは適用されません。
orclEntryExclusionFilter
属性を使用したレプリケーション・フィルタリングは、一方向LDAPレプリケーションにのみ適用され、他のレプリケーション機能は変更されません。
orclEntryExclusionFilter
属性を使用してレプリケーション・フィルタリングを構成するには:
サプライヤでLDAPフィルタ(sn=smith)
に一致するすべてのエントリに対する後続の変更は、コンシューマにレプリケートされません。
44.4 一貫性のないデータのoidcmprecによる比較調整の概要
oidcmprec
ツールについて説明し、oidcmprec
の使用方法の例をいくつか示します。
ノート:
比較調整ツールoidcmprec
では、一方向認証または双方向認証はサポートされず、認証なしモードでのみ動作します。
この項では、次の項目について説明します。
-
関連項目:
操作、競合の例、競合解消規則を含む
oidcmprec
の完全な構文は、『Oracle Identity Managementリファレンス』のoidcmprecコマンドのリファレンスを参照してください。
44.4.1 一貫性のないデータのoidcmprecによる比較調整
ディレクトリ・レプリケーション・サーバーが一貫性のないデータを検出した場合、Oracle Internet Directory比較調整ツールを使用して、コンシューマのエントリをサプライヤのエントリと同期化させることができます。
次の一般的なステップを実行します。
比較調整ツールoidcmprec
を使用すると、2つのディレクトリを比較できます。これにより、競合が検出され、解消されます。2つのディレクトリのうち、1つのディレクトリはソース・ディレクトリ、つまり真のソースとみなされます。もう1つのディレクトリは、ソース・ディレクトリと同期する必要がある宛先ディレクトリです。比較対象となるディレクトリは、どのレプリケーション・グループのメンバーでもないディレクトリ、同じレプリケーション・グループのメンバーであるディレクトリ、または別のレプリケーション・グループのメンバーであるディレクトリです。
44.4.2 競合の例
oidcmprec
ツールは、様々なの競合シナリオを検出し、解消できます。
oidcmprec
ツールは、次の競合の例を検出し、解消できます。
-
ソース・ディレクトリ内のみのエントリ(entos)
-
宛先ディレクトリ内のみのエントリ(
entod
) -
ソース・ディレクトリ内のみの属性(
atros
) -
宛先ディレクトリ内のみの属性(
atrod
) -
異なる単一値属性(
svatrdif
) -
異なる複数値属性(
mvatrdif
) -
異なるエントリ識別名(
dndif
)dndif
の例は、一方のノードで実行されたmodrdn
またはmoddn
操作が、もう一方のノードにレプリケートされないときに、レプリケーション環境で発生する可能性があります。結果として、そのエントリは、orclguid
は同じでも、識別名が2つのノードで異なります。ツールでは、orclguid
属性を使用して、この競合を検出します。
oidcmprec
ツールは、次のスキーマ競合の例を検出し、解消できます。
-
オブジェクト・クラス定義が、ソース・ディレクトリにのみ存在(
odefos
) -
オブジェクト・クラス定義が、宛先ディレクトリにのみ存在(
odefod
) -
ソースおよび宛先ディレクトリで異なるオブジェクト・クラス定義(
odefdif
) -
属性定義が、ソース・ディレクトリにのみ存在(
adefos
) -
属性定義が、宛先ディレクトリにのみ存在(
adefod
) -
ソースおよび宛先ディレクトリで異なる属性定義(
adefdif
)
44.4.3 oidcmprecでサポートされる操作
このツールは、5つの操作をサポートします。各操作は、エントリを比較し、競合を検出し、オプションで競合を解消します。操作は、競合の解消方法に違いがあります。
操作は次のとおりです。
-
比較操作: 2つのディレクトリを比較し、変更をLDIFレコードとしてファイルに格納します。LDIFファイルは、宛先ディレクトリに適用でき、ソース・ディレクトリと同一にできます。ソース・ディレクトリ内のデータのみが有効とみなされます。
-
調整操作: 2つのディレクトリを比較し、宛先ディレクトリ側で、ソース・ディレクトリに一致させるために必要な変更を適用します。ディレクトリに対して加えられた変更はすべて、LDIF記録としてファイルに格納されます。ソース・ディレクトリ内のデータのみが有効とみなされます。
-
マージまたは双方向調整操作: 2つのディレクトリを比較し、ソース・ディレクトリまたは宛先ディレクトリで、2つを一致させるために必要な変更を適用します。両ディレクトリのデータは有効とみなされます。たとえば、エントリが宛先ディレクトリにのみ存在することがツールにより検出された場合、ツールはこのエントリをソースに追加します。この操作ではまた、ディレクトリに加えられた変更をすべて、LDIFレコードとしてファイルに記録します。
-
マージ・リハーサル操作: マージ操作と同様に2つのディレクトリを比較しますが、ディレクトリでの変更適用は行いません。かわりに、変更をLDIF記録としてファイルに格納します。ソース・ディレクトリと宛先ディレクトリに適用される変更は、2つの異なるファイルに格納されます。
-
ユーザー定義の比較調整操作: 競合の例ごとに選択した競合解消規則を使用します。各競合の例に使用できる競合解消規則のリストは、『Oracle Identity Managementリファレンス』を参照してください。
44.4.4 oidcmprecからの出力
oidcmprec
ツールは通常、複数の出力ファイルを生成します。oidcmprec
のオプションを使用して、ファイルの生成を抑止できます。
ファイルとこれに対応するオプションは次のとおりです。
-
filename
.rpt
: 比較されたすべてのエントリの識別名と比較結果が含まれます。logrpt=false
を使用してこのファイルの生成を抑止します。 -
filename
.s2d.ldif
: 宛先ディレクトリに適用された、または宛先ディレクトリに後から適用するために格納されたすべての変更が含まれます。名前は、宛先ディレクトリからソース・ディレクトリへの省略形です。logs2d=false
を使用してこのファイルの生成を抑止します。 -
filename
.d2s.ldif
: ソース・ディレクトリに適用された、またはソース・ディレクトリに後から適用するために格納されたすべての変更が含まれます。名前は、宛先ディレクトリからソース・ディレクトリへの省略形です。logd2s=false
を使用してこのファイルの生成を抑止します。 -
filename
.eos.rpt
: ソース・ディレクトリにのみ存在するエントリの識別名のリストが含まれます。スキーマが操作の対象に含まれている場合は、ソース・ディレクトリでのみ定義されている属性およびオブジェクト・クラスの名前のリストも含まれます。この名前は、ソース・ディレクトリでのみ使用可能なエントリの省略形です。logeos=false
を使用してこのファイルの生成を抑止します。 -
filename
.eod.rpt
: 宛先ディレクトリにのみ存在するエントリの識別名のリストが含まれます。スキーマが操作の対象に含まれている場合は、宛先ディレクトリでのみ定義されている属性およびオブジェクト・クラスの名前のリストも含まれます。名前は、宛先ディレクトリでのみ使用可能なエントリの省略形です。logeod=false
を使用してこのファイルの生成を抑止します。 -
filename
.dif.rpt
: 異なるすべてのエントリの識別名と、異なる属性の名前が含まれます。スキーマが操作の対象に含まれている場合は、定義が異なる属性およびオブジェクト・クラスの名前のリストも含まれます。このファイルはdifファイルと呼ばれます。logdif=false
を使用してこのファイルの生成を抑止します。 -
filename
.err
: すべてのエラー・メッセージが含まれます。このファイルは、errファイルと呼ばれます。logerr=false
を使用してこのファイルの生成を抑止します。
ツールによってロードされたエントリの合計数およびoidcmprec
の各キューのエントリの数をツールでダンプできます。エントリ数はファイルoidcmprec.log
に記録されます。qlogfreq=
frequency
引数を使用してoidcmprec
がこの情報を記録する頻度を指定します。使用できるfrequency
値は1から5000です。値が小さいほど間隔が短くなります。頻度の高いエントリ数の場合5から10の値を使用します。
44.4.5 oidcmprecの動作
レプリケーション識別名とレプリケーション識別名パスワードを資格証明として使用して、ツールは3つのタスクを実行します。まず、スキーマ情報をメモリーにロードします。次に、比較対象のエントリを収集し、それらを属性ごとに比較します。ツールは、スキーマ情報を使用して、属性ごとに使用する比較規則を判断します。次に、比較結果に基づき、必要な処置を行います。
これらの操作は、異なるスレッドによって実行されます。
-
識別名スレッドは、比較対象となるエントリを収集します。エントリの収集時に一度にツリー全体をフェッチすることはありません。最初にベース・エントリをフェッチして処理します。次に、ベース・エントリ直下の子をフェッチして処理し、さらにその下の子をフェッチして処理する、というように処理していきます。収集されたエントリはワーカー・スレッドに渡されます。識別名スレッドの数は、
dnthreads
引数を使用して制御できます。 -
ワーカー・スレッドは、エントリを属性ごとに比較し、競合解消規則を適用する作業を担当します。ワーカー・スレッドは、その後、エントリをログ・ライター・スレッドに渡します。ワーカー・スレッドの数は、
threads
引数を使用して制御できます。ワーカー・スレッドと識別名スレッドの合計数は、6×(CPU数)- 2に相当する最大値以下です。これを超える値を指定すると、ツールは、ワーカー・スレッドと識別名スレッドの数を、最大値を超えないように調整します。 -
ログ・ライター・スレッドは、「oidcmprecからの出力」に示した7つの出力ファイルすべてへのコンテンツの書込みを担当します。ログ・ライター・スレッドは1つのみです。この数は増やせません。
これらのスレッドは、メイン・スレッドによって生成、モニター、終了されます。メイン・スレッドは、コマンド行の引数とパラメータ・ファイルを処理し、別のスレッドを生成します。メイン・スレッドは、全操作の完了を検出すると、ただちにすべてのスレッドを終了し、接続をすべてクリーンアップします。
各スレッドは、ソース・ディレクトリと宛先ディレクトリへのLDAP接続を確立します。これらの接続は、すべての操作がスレッドによって完了されるまで、オープンのままです。なんらかの理由で接続がクローズされると、continueOnError
引数がTRUEの場合、ツールは接続を再確立します。ツールが接続を再確立できると、操作を続行します。
ノート:
continueOnError
引数を使用して、ツールがエラーの処理を続行するかどうかを指定します。この引数は、TRUE
にもFALSE
にも設定できます。デフォルトでは、TRUE
に設定されています。
44.4.6 ソース・ディレクトリと宛先ディレクトリの設定
source
オプションとdestination
オプションを使用して、ソース・ディレクトリと宛先ディレクトリを設定します。
次に示すように、ソース・オプションおよび宛先オプションを設定できます。
oidcmprec source=staqj13:3060 destination=staqj:3070 base="''" \ scope=subtree file=temp operation=compare
コマンド行でパスワードが指定されていないと、ツールがパスワードを要求します。
Enter replication DN password of the source directory : Enter replication DN password of the destination directory :
44.4.7 oidcmprec操作のDIT
base
、dns2Exclude
およびscope
オプションを使用して、比較と調整の対象となる領域を選択します。
次の例では、c=us,dc=mycom,dc=com
とc=uk,dc=mycom,dc=com
を除く、ディレクトリ全体を比較します。
oidcmprec base="''" \ dns2exclude="'c=us,dc=mycom,dc=com' 'c=uk,dc=mycom,dc=com'" \ operation=compare scope=subtree \ source=myhost1.mycom.com:3060 \ destination=myhost2.mycom.com:3060 \ threads=5 dnthreads=2 file=cmpres
次の例では、c=us,dc=mycom,dc=com
ツリーとc=uk,dc=myorg,dc=org
ツリーを除く、ネーミング・コンテキストdc=com
およびdc=org
を比較します。
oidcmprec base="'dc=com' 'dc=org'" \ dns2exclude="'c=us,dc=mycom,dc=com' 'c=uk,dc=myorg,dc=org'" \ operation=compare scope=subtree \ source=myhost1.mycom.com:3060 \ destination=myhost2.mycom.com:3060 \ threads=5 dnthreads=2 file=cmpres
44.4.8 操作の属性の選択
デフォルトでは、oidcmprec
は、操作属性のcreatorsname
、createtimestamp
、modifiersname
、modifytimestamp
、orclentrydn
およびorclnormdn
を除くすべての属性を比較します。
選択した操作に含める、または操作から除外する属性は、それぞれexcludedAttributes
またはincludedAttributes
を使用して制御できます。excludedAttributes
引数とincludedAttributes
引数により、パターン一致を制限できます。attributename
*
を使用すると、attributename
で始まるすべての属性を一致させることができます。attributename
;*
を使用すれば、attributename
のすべてのサブタイプも一致させることができます。
次の例では、標準の除外属性に加えて、authpassword
属性(サブタイプのあるものとないもの)、さらにuserpassword
属性とcategory
属性を除外します。
oidcmprec operation=compare scope=subtree base="'dc=com' 'dc=org'" \ source=myhost1.mycom.com:3060\ destination=myhost2.mycom.com:3060 \ exclattr="authpassword authpassword;* userpassword category" \ threads=5 dnthreads=2 file=compare
次の例では、比較操作に属性uid
、cn
、sn
、givenname
およびmail
のみを含めます。
oidcmprec operation=compare scope=subtree base="'dc=com'" \ source=myhost1.mycom.com:3060 \ destination=myhost2.mycom.com:3060 \ inclattr="uid cn sn givenname mail" \ file=compare
次の例では、orclguid
、creatorsname
およびmodifiersname
を除き、比較操作の対象となるすべての属性を含めます。この例ではまた、continueOnError=false
を設定することで、エラーが発生したら停止するように、ツールに指示しています。
oidcmprec operation=compare scope=subtree base="'dc=com'" \ source=myhost1.mycom.com:3060 \ destination=myhost2.mycom.com:3060 \ inclattr="*" exclattr="orclguid creatorsname modifiersname" \ file=compare contonerr=false
44.4.9 変更ログ生成の制御
oidcmprec
によって加えられた変更に対する変更ログの生成は、ルートDSEのorcldiprepository
属性によって決まります。ただし、変更ログ生成の動作は、generateChangeLog
引数を使用することで制御できます。
generateChangeLog
引数には、次の値を指定できます。
-
default
: ディレクトリ・サーバーの設定により、変更ログが生成されるかどうかが決まります。ルート・エントリのorcldiprepository
属性がtrue
に設定されている場合は、変更ログが生成されます。orcldiprepository
がfalse
に設定されている場合は、生成されません。ソース・ディレクトリと宛先ディレクトリの両方に同じルールが適用されます。default
が、gechglog
のデフォルト値です。 -
true
: ソース・ディレクトリと宛先ディレクトリに対する設定に関係なく、変更ログは常に生成されます。 -
false
: ソース・ディレクトリと宛先ディレクトリに対する設定に関係なく、変更ログは常に生成されません。
次の例では、generateChangeLog false
で、変更ログの生成を停止します。
oidcmprec operation=merge scope=subtree base="'dc=com'" \ source=myhost1.mycom.com:3060 \ destination=myhost2.mycom.com:3060 \ inclattr="*" exclattr="orclguid creatorsname modifiersname" \ file=merge genchglog=false
44.4.10 テキストまたはXMLパラメータ・ファイルでのoidcmprecコマンド行引数の指定
パラメータ・ファイルでoidcmprec
コマンド行引数を指定することもできます。
parameterFile
オプションを使用してテキスト・パラメータ・ファイルを指定するか、xmlparameterFile
オプションを使用してXMLパラメータ・ファイルを指定します。コマンド行とパラメータ・ファイルの両方で引数を指定した場合、コマンド行で指定した引数が、パラメータ・ファイルで指定した引数に優先します。次に例を示します。
oidcmprec paramfile=comp_param threads=4
この例では、次のサンプル・テキスト・パラメータ・ファイルを使用します。
############################################# #Parameter file for compare and reconcile tool #Creator : Admin #Date : 21-Mar-2012 #File Name : comp_param ############################################# operation=compare source=staqj13:3060/ods destination=staqj13:3070/ods base='("cn=oraclecontext" "c=uk,dc=example,dc=com" "c=us,dc=example,dc=com")' verbose=false force=true threads=6 dnthreads=2 exclattr=orclguid userpassword authpassword;* filename=cmp2012Feb01
この例では、ツールにより4つのワーカー・スレッドが生成され、コマンド行引数が優先されます。
次のXMLパラメータ・ファイルは、サンプル・テキスト・パラメータ・ファイルと同等です。
<?xml version="1.0" standalone="yes" ?> - <input> <operation>compare</operation> - <source> <host>staqj13</host> <port>3060</port> <binddn>cn=orcladmin</binddn> <password>source-password</password> </source> - <destination> <host>staqj13</host> <port>3070</port> <binddn>cn=orcladmin</binddn> <password>destination-password</password> </destination> <base> <dn>cn=oraclecontext</dn> <dn>c=uk,dc=example,dc=com</dn> <dn>c=us,dc=example,dc=com</dn> </base> <threads>6</threads> <dnthreads>2</dnthreads> <exclattr> <attribute>orclguid</attribute> <attribute>userpassword</attribute> <attribute>authpassword</attribute> <exclattr/> <force>true</force> <verbose>false</verbose> <filename>cmp2012Feb01</filename> </input>
44.4.11 oidcmprecにディレクトリ・スキーマを含める
ベース引数にcn=subschemasubentry
を含めると、oidcmprec
操作の対象にスキーマを含めることができます。
次に例を示します。
oidcmprec operation=merge scope=subtree \ base="'dc=com' 'cn=subschemasubentry'" \ source=myhost1.mycom.com:3060 \ destination=myhost2.mycom.com:3060 \ inclattr="*" exclattr="orclguid creatorsname modifiersname" \ file=merge genchglog=false
スキーマに加えてその他の識別名を含めた場合、oidcmprec
は、最初にスキーマで操作を実行します。
44.4.12 事前に定義された競合解消規則の無視
競合名と、コマンド行またはパラメータ・ファイルで使用する規則を指定することにより、事前に定義された競合解消規則を無視できます。
各操作の競合の例と競合解消規則の詳細は、『Oracle Identity Managementリファレンス』のoidcmprecコマンドのリファレンスを参照してください。
次の例では、競合dndif
およびmvatrdif
に使用される競合解消規則を、compare
操作に対してignore
に変更します。
oidcmprec operation=compare source=host1:3060 destination=host2:3070 \ base="''" scope=subtree file=temp operation=compare \ dndif=ignore mvatrdif=ignore
44.4.13 ユーザー定義の比較調整操作
次のコマンド行では、userdefinedcr
操作を使用しています。
事前に定義されたcompare
、reconcile
、merge
およびmerge dry run
操作に加えて、oidcmprec
にはユーザー定義の比較調整操作userdefinedcr
があり、競合解消規則引数を指定できます。-userdefinedcr
で指定しない競合解消規則はすべて、デフォルトがignore
に設定されます。次のコマンド行では、userdefinedcr
操作を使用しています。
oidcmprec operation=userdefinedcr scope=subtree \ base="'dc=com' 'dc=org'" \ source=myhost1.mycom.com:3060 \ destination=myhost2.mycom.com:3060 \ entos=add entod=ignore atros=add atrod=ignore \ svatrdif=usesrc mvatrdif=usesrc dndif=ignore \ threads=5 dnthreads=2 file=myreconcile
競合の例と競合解消規則の詳細は、『Oracle Identity Managementリファレンス』のoidcmprecコマンドのリファレンスを参照してください。
44.4.14 oidcmprecツールの既知の制限事項
oidcmprec
ツールには、次の制限事項があります。
-
LDIFレコードに対する変更をツリーの削除のために
filename
.s2d.ldif
またはfilename
.d2s.ldif
ファイルに記録する際、ツールはまず親レコードを記録し、次にその子のレコードを記録します。ldapmodify
コマンド行ツールを使用してこの変更を適用しようとすると、ディレクトリ・サーバーではリーフのないエントリの削除が許可されていないため、変更の適用は失敗します。ldapmodify
の失敗を防ぐには、ldapmodify
を実行する前に、ファイルを編集してレコードの順序を並べ替えます。 -
エントリに対して削除操作を実行する際、ツールはそのエントリとその子を削除します。ツールにより、エントリが削除されたことは記録されますが、その子も削除されたことは記録されません。
-
ツールには、複合相対識別名に関する制限があります。相対識別名には、次の例のように
+
で区切られた2つ以上のattribute
=
attrvalue
ペアがあります。uid=jpaul + cn=john paul + mail=john.paul@example.com,dc=oracle,dc=com
比較対象のディレクトリの1つに複合相対識別名が含まれている場合、ツールが推奨する
filename
.s2d.ldif
またはfilename
.d2s.ldif
ファイルのmodrdn
/moddn
の変更でdeleteoldrdn
値が正しくないことがあります。 -
oidcmprec
にフィルタを指定し、出力をldapmodify
の入力として使用する場合、まず出力を編集してエントリが正しい順序かどうかを確認します。特に、ツリー全体を移行する場合、ツリーのルートが最初のエントリであることを確認します。