この章では、Oracle Internet Directoryのレプリケーションの監視および管理方法を説明します。レプリケーションの構成属性の詳細は、第39章「レプリケーション構成属性の管理」を参照してください。
この章の項目は次のとおりです。
注意: 一部の変更は、レプリケーション・サーバーが再起動されるまで有効になりません。 |
レプリケーションのインストールおよび構成後は、レプリケーションに関連する属性のデフォルト値を表示または変更できます。属性およびそのコンテナの詳細は、第39章「レプリケーション構成属性の管理」を参照してください。
この概要の項目は次のとおりです。
LDAPベースの部分レプリケーションでは、レプリカのネーミング・コンテキスト・オブジェクトを定義することにより、レプリケートするものとしないものを変更できます。これらのオブジェクトのパラメータは、次の識別名を持つエントリに格納されます。
cn=namingcontext_ID,cn=replication namecontext, orclAgreementID=numeric_identifier_of_replication_agreement, orclReplicaId=unique_identifier_of_replica, cn=replication configuration
注意: ディレクトリ・レプリケーション・サーバーは、レプリカのネーミング・コンテキスト・オブジェクトを、サプライヤ側にある承諾から読み込むため、すべての変更をサプライヤ側およびコンシューマ側(オプション)のネーミング・コンテキスト・オブジェクトに適用する必要があります。 |
「Fusion Middleware Controlを使用したレプリカのネーミング・コンテキスト・オブジェクトの表示と変更」および「ldapmodifyを使用したレプリカのネーミング・コンテキスト・オブジェクト・パラメータの変更」を参照してください。
レプリケーション・サーバーはマルチスレッド・プロセスです。サプライヤ当たりの、次の専用ワーカー・スレッドの数を制御できます。
サプライヤからコンシューマへの変更ログの転送
転送された変更ログのコンシューマでの適用
サプライヤ当たりの転送スレッド数および適用スレッド数を設定できます。あるいは、自動調整(負荷に基づいてこの2つのタスクに割り当てるスレッド数を動的に変更)するようにレプリケーション・サーバーを構成することもできます。サーバーを自動調整するように設定した場合は、これらのタスク間で共有するスレッドの最大数を指定する必要があります。
表40-1は、ワーカー・スレッドを制御するOracle Enterprise Manager Fusion Middleware Controlのパラメータおよび構成属性を示しています。これらは、レプリケーション構成セットの属性です。
このような数はロードに基づいて調整する必要があります。Oracle Enterprise Manager Fusion Middleware Controlで「共有プロパティ」ページの「レプリケーション」タブを使用してスレッドを構成します。コマンドラインからldapmodify
を使用します。
Oracle Internet Directoryは、各変更をエントリとして変更ログ・ストアに記録します。各エントリは一意の変更番号を持ちます。コンシューマは、最後に適用した変更の番号を記録しておき、その番号よりも大きい番号を持つ変更のみをサプライヤから取得します。
LDAPベース・レプリケーション承諾では、変更ログの処理は、変更ログの転送と変更ログの適用という2つのフェーズで構成されています。LDAPベース承諾ごとに、2つの変更ログ処理のステータス(各フェーズに1つ)があります。ディレクトリ・レプリケーション・サーバーは、最後に転送した変更番号を、レプリケーション承諾エントリのorlcllastappliedchangenumber
属性のtransport
サブタイプに格納します。ディレクトリ・レプリケーション・サーバーは、最後に適用した変更番号を、レプリケーション承諾エントリのorllclastappliedchangenumber
属性のapply
サブタイプに格納します。orlcllastappliedchangenumber
属性の書式は、表39-2「レプリケーション承諾エントリの属性」を参照してください。
Oracle Databaseアドバンスト・レプリケーション・ベースのレプリケーション承諾では、ディレクトリ・レプリケーション・サーバーによって、最後に転送された変更番号がchangestatus
エントリのchangenumber
属性に格納されます。changenumber
属性は、次のようになります。
changenumber=last_applied_change_number, supplier=supplier_node, consumer=consumer_node
たとえば、コンシューマが最後に適用した変更の番号が250の場合、それ以降サプライヤから取得する変更の番号は、250より大きい番号である必要があります。
変更ログは、レプリケーション・サーバーがコンシュームした後、ガベージ・コレクタによってパージされます。
レプリケーションの管理者操作キュー、パージ・キューおよびリトライ・キューのロールの詳細は、「レプリケーション・プロセス」を参照してください。競合解消におけるこれらのキューのロールの詳細は、「Oracleレプリケーションにおける競合の解消」を参照してください。
管理者操作キュー・ツールのManageHiq.retry
およびManageHiq.purge
により、管理者操作キューからリトライ・キューまたはパージ・キューにそれぞれ変更を移動できます。「ManageHiq.retryおよびManageHiq.purgeを使用した管理者操作キューの管理」を参照してください。
Oracle Enterprise Manager Fusion Middleware Controlのレプリケーション・ウィザードまたはコマンドラインを使用して、キュー統計を表示できます。「Fusion Middleware Controlを使用したLDAPベースのレプリケーション承諾のキュー統計の表示」および「ldapsearchを使用した変更ログの表示」を参照してください。
レプリケーション・サーバーが一度に処理できる変更ログの最大数を管理者操作キューのエントリ数が超える場合、一部のエントリが処理されません。
レプリケーション・サーバーが一度に処理できる変更ログの最大数は、次の2つの構成属性の最小数です。
レプリケーション構成セット内のorclsizelimit
のデフォルト値は1000です。これを0に設定すると、デフォルト値の1000が採用されます。
Oracle Internet Directoryインスタンス固有のエントリ内のorclsizelimit
属性は、検索時に返されるエントリの最大数を指定します。(このデフォルト値も1000です。)
一度に処理する変更ログの数を増やすには、両方の属性を同じ値(1000より大きい値)に設定する必要があります。
Oracle Internet Directoryサーバー・インスタンスのorclsizelimit
パラメータの設定値を大きくしすぎるとサーバーのパフォーマンスに影響を与えます。これはOracle Internet Directoryサーバー・インスタンスのorclsizelimit
が、検索時に返されるエントリの最大数も制御するためです。
パイロット・モードを使用して、アプリケーションを本番環境にデプロイする前にテストします。通常、パイロット・モードは、本番ノードからの一方向レプリケーションを使用してローカル・ノードに設定します。レプリカはパイロット・モードですが、ローカル・ノードで発生するLDAPの変更はすべて追跡されます。パイロット・モードが終了すると、これらの変更はLDIFファイルに書き込まれます。アプリケーションが本番環境にデプロイされるときに、パイロット・レプリカで追加または変更されたすべてのエントリをldifファイルを使用して本番ノードに追加できます。
Oracle Databaseアドバンスト・レプリケーション・ベースのレプリケーションと双方向およびマルチマスターのLDAPベース・レプリケーションにより、複数のディレクトリ・サーバーに対する更新が可能になります。競合は、ディレクトリ・レプリケーション・サーバーがサプライヤからコンシューマにリモートの変更を適用しようとして失敗した場合、常に発生します。
通常、競合はWide Area Network上で発生する場合がある通信速度の低下や送信エラーが原因で発生する変更の時間的なずれが原因です。また、過去に発生した不整合がタイムリに解消されていない場合、引き続き競合が発生する可能性があります。
部分レプリケーションでは、ネーミング・コンテキストが含むから除外に変更されると、レプリケーション・サーバーによりコンシューマ側でネーミング・コンテキストが削除されます。同様に、ネーミング・コンテキストが除外から含むに変更されると、レプリケーション・サーバーで、サプライヤからコンシューマへのネーミング・コンテキスト全体が同期化されます。
追加
削除
変更
相対識別名または識別名の変更
エントリ・レベルの競合
属性レベルの競合
表40-2 レプリケーション競合のタイプ
レプリケーション競合のレベル | 説明 |
---|---|
エントリ・レベルの競合 |
ディレクトリ・レプリケーション・サーバーが、コンシューマに変更を適用するときに発生します。次のいずれかのタイプの変更がコンシューマで発生する可能性があります。
これらの競合は、解消するのが難しい場合があります。たとえば、次のような原因の場合は競合を解消するのが不可能な可能性があります。
存在する必要がないエントリが存在している場合は、以前に追加済であるか、最近識別名の操作変更があった可能性があります。 |
属性レベルの競合 |
2つのディレクトリが、同じ属性を異なる値で異なる時間に更新している場合に発生します。属性が単一値の場合、レプリケーション・プロセスは、競合に含まれている変更のタイムスタンプを検証して、競合を解消します。 |
11gリリース1(11.1.1)では、競合の自動解消を有効にできます。この機能を有効にすると、サプライヤのスキーマとコンシューマのスキーマが一致するときは、管理者操作キューの競合は自動的にパージ・キューに移動されます。
Oracle Enterprise Manager Fusion Middleware Controlまたはldapmodify
コマンドのどちらを使用しても、競合の自動解消を有効または無効にできます。Oracle Enterprise Manager Fusion Middleware Controlを使用するには、「共有プロパティ」ページの「レプリケーション」タブでレプリケーション構成パラメータ「レプリケーション競合の自動解決」を変更します。コマンドラインを使用するには、レプリケーション構成セットのorclconflresolution
の値を変更します。
ディレクトリ・レプリケーション・サーバーは、次の処理によって、発生した競合をすべて解消しようとします。
変更が適用されたときに、競合が検出されます。
レプリケーション・プロセスは、特定の待機期間が過ぎると、特定回数分または反復による変更の再適用を、特定期間試行します。
レプリケーション・プロセスが変更の適用に成功しないまま再試行制限に達した場合、変更に競合のフラグを付けた後、解消を試みます。解消規則(次の項で説明)に従って競合を解消できない場合は、優先順位の低い管理者操作キューにその変更を移動します。変更は、レプリケーション承諾されたorclHIQSchedule
パラメータに指定した時間単位に従って適用されます。ディレクトリ・レプリケーション・サーバーは、変更を移動する前にシステム管理者用のログ・ファイルに競合を書き込みます。
注意: レプリケーション時に、スキーマ、カタログおよびグループ・エントリの競合の解消は行われません。これは、多数の複数値の属性の競合を解消しようとすると、パフォーマンスに重大な影響を及ぼす可能性があるためです。一度に複数のマスターからこのようなエントリの更新を行うことは、回避してください。 |
関連項目:
|
Oracle Enterprise Manager Fusion Middleware Controlを使用してレプリケーションを管理および監視できます。この項の項目は次のとおりです。
Fusion Middleware Controlを使用したレプリカのネーミング・コンテキスト・オブジェクトの表示と変更
Fusion Middleware Controlレプリケーション・ウィザードを使用したLDAPベースのレプリケーション設定の表示または変更
Fusion Middleware Controlレプリケーション・ウィザードを使用したLDAPベースのレプリケーション承諾の削除
Fusion Middleware Controlを使用したレプリケーション・サーバーのアクティブ化または非アクティブ化
次のように、Oracle Enterprise Manager Fusion Middleware Controlを使用して変更ログ生成を有効または無効にできます。
「Oracle Internet Directory」メニューから「管理」を選択し、「サーバー・プロパティ」を選択します。
「パフォーマンス」タブを選択します。
「変更ログの生成の有効化」を選択または選択を解除します。
構成を変更した後、「適用」を選択します。
Oracle Directory Services Managerでは、最近実行された500件の変更を、変更ログ番号別、発生した操作の種類別(追加、変更、削除など)および各変更が加えられたエントリ別に表示することができます。特定の変更を指定して、その詳細を表示することもできます。
次のようにOracle Directory Services Managerを使用して、変更ログを表示できます。
タスク選択バーで、「拡張」を選択します。
「変更ログ」を拡張します(まだ拡張されていない場合)。左側のパネルに、直近の変更から順に最近の500件の変更が表示されます。
変更を選択してそのプロパティを表示します。
表40-3に、「変更ログ」ページに表示されるプロパティと、対応する変更ログ・エントリの属性を示します。
レプリカのネーミング・コンテキスト・オブジェクトのパラメータを追加、削除、表示および変更するには、Oracle Enterprise Manager Fusion Middleware Controlのレプリケーション・ウィザードで次のように実行します。
ホームページの「Oracle Internet Directory」メニューから、「管理」、「レプリケーション管理」の順に選択します。
レプリケーション識別名アカウントへのログインを要求されます。ホスト、ポート、レプリケーション識別名およびレプリケーション識別名のパスワードを入力します。
「レプリケーション承諾」ページに各レプリケーション承諾に関する情報(名前、タイプ、サプライヤ、コンシューマ、ステータス)が表示されます。編集するレプリケーション承諾の名前を選択し、「編集」アイコンをクリックします。画面の下部に3つのタブが表示されます。
「有効範囲」タブで、有効範囲の設定を変更できます。
プライマリ・ネーミング・コンテキストを追加するには、「プライマリ・ネーミング・コンテキスト」フィールドの上にある「作成」ボタンをクリックします。
プライマリ・ネーミング・コンテキストを変更するには、「プライマリ・ネーミング・コンテキスト」フィールドの上の「編集」ボタンをクリックし、別のコンテナを選択します。
セカンダリ・ネーミング・コンテキストを除外するには、除外するものを「セカンダリ・ネーミング・コンテキスト」フィールドで選択し、「除外」をクリックして「除外されたセカンダリ・ネーミング・コンテキスト」フィールドに移動します。
セカンダリ・ネーミング・コンテキストを含めるには、含めるものを「除外されたセカンダリ・ネーミング・コンテキスト」フィールドで選択し、「含む」をクリックして「セカンダリ・ネーミング・コンテキスト」フィールドに移動します。
属性を除外するには、除外するものを「属性」フィールドで選択し、「除外」をクリックして「除外された属性」フィールドに移動します。
属性を包含するには、包含するものを「除外された属性」フィールドで選択し、「含む」をクリックして「属性」フィールドに移動します。
変更内容を適用するには、「適用」をクリックします。
加えた変更内容を反映させるには、レプリケーション・サーバーを起動または再起動する必要があります。一方向レプリケーションの場合は、コンシューマで再起動する必要があります。双方向またはマルチマスター・レプリケーション承諾の場合は、レプリケーション承諾の各ノードでレプリケーション・サーバーを再起動する必要があります。それには、ナビゲーション・ツリーのOracle Internet Directoryノードを選択し、次に「Oracle Internet Directory」のメニューから「可用性」を選択します。
レプリケーションを設定する際、レプリケーション承諾とレプリカ・サブエントリを作成します。次のように、Oracle Enterprise Manager Fusion Middleware Controlのレプリケーション・ウィザードを使用して設定を表示または変更できます。
ホームページの「Oracle Internet Directory」メニューから、「管理」、「レプリケーション管理」の順に選択します。
レプリケーション識別名アカウントへのログインを要求されます。ホスト、ポート、レプリケーション識別名およびレプリケーション識別名のパスワードを入力します。
レプリケーション承諾のキュー統計を表示するには、レプリケーション承諾を選択して「キュー統計」を選択し、「Fusion Middleware Controlを使用したLDAPベースのレプリケーション承諾のキュー統計の表示」に記載のとおり進めます。
レプリケーション承諾を表示または編集するには、編集するレプリケーション承諾の名前を選択し、「編集」アイコンをクリックします。画面の下部に3つのタブが表示されます。
レプリケーション構成を表示または編集するには、「レプリケーション構成」タブを選択します。
複数のLDAP操作の実行に同じ接続をレプリケーション・サーバーで使用する場合は、「LDAP接続」フィールドで、「キープ・アライブ」を選択します。サーバーでそれぞれのLDAP操作について新規の接続を開始するには、「常に新規の接続を使用」を選択します。
「レプリケーション頻度」を入力します。
「管理者操作キュー・スケジュール」を入力します。これは、ディレクトリ・レプリケーション・サーバーが変更適用プロセスを繰り返す間隔(分単位)です。
「適用」をクリックして変更を適用するか、「取消」をクリックして変更を破棄します。
有効範囲の設定を表示または変更するには、「有効範囲」タブをクリックします。「Fusion Middleware Controlを使用したレプリカのネーミング・コンテキスト・オブジェクトの表示と変更」に記載のとおり進めます。
各ノードのタイプ、ホスト、ポート、ユーザー名およびパスワードを表示するには、レプリケーション定義の編集ページの「レプリカ」タブをクリックします。
ノードのレプリカ1次URI、レプリカ2次URIまたはレプリカ状態を表示または編集するには、次のようにします。
「レプリカ」タブを選択し、サプライヤまたはコンシューマの横の「+」をクリックします。
「レプリカ1次URI」または「レプリカ2次URI」フィールドに必要な変更を行います。
リストから「レプリカ状態」を選択します。
「適用」をクリックして変更を適用するか、「取消」をクリックして変更を破棄します。
ノードをマルチマスター・レプリケーション・グループのプライマリ・ノードにするには、次のようにします。
「レプリカ」タブをクリックしてノードを選択します。
「プライマリ・ノードの作成」アイコンをクリックします。
「適用」をクリックして既存のディレクトリ・レプリケーション・グループにノードを追加するか、「取消」をクリックして変更を破棄します。
マルチマスター・レプリケーション・グループにノードを追加するには、次のようにします。
「レプリカ」タブを選択します。
「作成」アイコンをクリックします。
ポップアップ・ウィンドウで、新しいノードのホスト、ポートおよびレプリケーション識別名のパスワードの詳細を指定します。「追加」をクリックします。
「適用」をクリックして既存のディレクトリ・レプリケーション・グループにノードを追加するか、「取消」をクリックして変更を破棄します。
3つ以上のノードを含むマルチマスター・レプリケーション・グループからノードを削除するには、次のようにします。
「レプリカ」タブを選択します。
マルチマスター・レプリケーション・デプロイメントから削除するレプリカをクリックします。「削除」アイコンが有効になります。
「削除」をクリックします。
「適用」をクリックして、ディレクトリ・レプリケーション・グループ(DRG)からノードを削除します。
一方向、双方向またはマルチマスターLDAPレプリカを削除するには、Oracle Enterprise Manager Fusion Middleware Controlのレプリケーション・ウィザードを使用します。
ホームページの「Oracle Internet Directory」メニューから、「管理」、「レプリケーション管理」の順に選択します。「レプリケーション承諾」ページに各レプリケーション承諾に関する情報(名前、タイプ、サプライヤ、コンシューマおよびステータス)が表示されます。
レプリケーション識別名アカウントへのログインを要求されます。ホスト、ポート、レプリケーション識別名およびレプリケーション識別名のパスワードを入力します。
レプリケーション承諾を削除するには、承諾の名前を選択してから、「削除」アイコンをクリックします。「削除」ポップアップが表示された後、「削除」をクリックします。
ほとんどのレプリケーション構成セットの属性は、Fusion Middleware Controlの「共有プロパティ」ページの「レプリケーション」タブを使用して構成できます。「Oracle Internet Directory」メニューから「管理」を選択し、「共有プロパティ」を選択してから、「レプリケーション」を選択します。構成を変更した後、「適用」を選択します。表40-4に、「共有プロパティ」ページの「レプリケーション・コンフィグセット」セクションのフィールド間の対応関係を示します。これらの属性の詳細は、表39-5を参照してください。
「自動チューニング・レプリケーション」または「スタック・ダンプの生成」を変更した後、サーバーを再起動します。
関連項目:
|
レプリケーション・ウィザードを使用してレプリケーションを設定する場合、レプリケーション・サーバーは、これを構成したOracle Internet Directoryインスタンス上で自動的にアクティブになります。必要な場合、構成を変更せずに、レプリケーションを非アクティブ化してから再度アクティブ化できます。また、あるインスタンスでレプリケーションを非アクティブ化してから、同じデータベースを共有する別のOracle Internet Directoryインスタンス上で再度アクティブ化することもできます。Oracle Enterprise Manager Fusion Middleware Controlを使用してレプリケーションをアクティブ化または非アクティブ化するには、Fusion Middleware Controlの「共有プロパティ」ページで、「レプリケーション」タブの「レプリケーション・サーバー・ステータス」セクションを使用します。
属性を次のように構成します。
「Oracle Internet Directory」メニューから「管理」を選択し、「共有プロパティ」を選択してから、「レプリケーション」を選択します。
ページの「レプリケーション・サーバー・ステータス」セクションで、アクティブ化または非アクティブ化するOracle Internet Directoryコンポーネントを「レプリケーションをアクティブ化」リストから選択します。このリストには、同じデータベースを共有するWeblogic Serverドメイン内のすべてのOracle Internet Directoryコンポーネントが表示されます。
選択したOracle Internet Directoryコンポーネントのレプリケーション・ステータスが非アクティブである場合、「アクティブ化」をクリックしてアクティブ化できます。レプリケーション・ステータスがアクティブである場合、「非アクティブ化」をクリックしてアクティブ化できます。これ以外をクリックする必要はありません。1つのインスタンスでレプリケーションをアクティブにすると、このレプリケーションは前にアクティブであったインスタンスでは自動的に非アクティブになります。
注意: ページの上部にある「元に戻す」および「適用」ボタンは、レプリケーション・サーバー・ステータスには影響しません。 |
表40-5に、ページの「レプリケーション・サーバー・ステータス」セクションのフィールドと構成属性間の対応関係を示します。これらの属性の詳細は、表39-4「レプリケーション構成セットの属性」を参照してください。
レプリケーションのデバッグ・レベルは、Fusion Middleware Controlの「共有プロパティ」ページで、「レプリケーション」タブの「デバッグ・レベル」セクションを使用して構成できます。
orcldebuglevel
属性の詳細は、表39-4「レプリケーション構成セットの属性」を参照してください。
デバッグ・レベルを次のように構成します。
「Oracle Internet Directory」メニューから「管理」を選択し、「共有プロパティ」を選択してから、「レプリケーション」を選択します。
「レプリケーション・プロセス」、「ファンクション・コールのトレース」、「レプリケーション・パフォーマンス・ログ」および「大容量トレースのデバッグ」の任意の組合せを選択します。
「適用」を選択します。
レプリカ詳細は、Fusion Middleware Controlの「共有プロパティ」ページで、「レプリケーション」タブの「レプリカ詳細」セクションを使用して変更できます。
表40-6に、「レプリカ詳細」セクションのフィールドとレプリカ・サブエントリの属性の対応関係を示します。これらの属性の詳細は、表39-1「レプリカ・サブエントリの属性」を参照してください。
orclreplicastate
の値の詳細は、「LDAPのレプリカ状態」を参照してください。
レプリカ詳細を構成するには、「Oracle Internet Directory」メニューから「管理」を選択し、「共有プロパティ」を選択してから、「レプリケーション」を選択します。構成を変更した後、「適用」を選択します。
「レプリカ状態」の選択肢は、「ブートストラップ」、「オンライン」および「DBコピーAddNode」です。
「レプリカ・タイプ」の選択肢は、「読取り/書込み」、「読取り専用」および「パイロット」です。
LDAPレプリカの統計は、次のようにOracle Enterprise Manager Fusion Middleware Controlのレプリケーション・ウィザードを使用して表示します。
ホームページの「Oracle Internet Directory」メニューから、「管理」、「レプリケーション管理」の順に選択します。
レプリケーション識別名アカウントへのログインを要求されます。ホスト、ポート、レプリケーション識別名およびレプリケーション識別名のパスワードを入力します。
「レプリケーション承諾」ページに各レプリケーション承諾に関する情報が表示されます。キュー統計を表示するレプリケーション承諾の名前をクリックし、「キュー統計」アイコンをクリックします。
ページの下部に次の統計が表示されます。
新規の変更
変更の再試行
変更のパージ
HIQの変更
前回適用された変更
前回移送された変更
一度に処理する変更ログの数を増やすには、レプリケーション構成セット内のorclsizelimit
と、レプリケーションが実行されているサーバー・インスタンス内のorclsizelimit
を同じ値(1000より大きい値)に設定する必要があります。
レプリケーション構成セット内のorclsizelimit
を変更するには、Fusion Middleware Controlを使用します。
「Oracle Internet Directory」メニューから「管理」を選択し、「共有プロパティ」を選択します。
「レプリケーション」を選択します。
「レプリケーション・サイクル当たりに処理する最大項目数」パラメータを変更します。
「適用」を選択します。
サーバー・インスタンス内のorclsizelimit
を変更するには、Oracle Enterprise Manager Fusion Middleware Controlを使用します。
「Oracle Internet Directory」メニューから「管理」を選択し、「サーバー・プロパティ」を選択します。
「一般」を選択します。
「検索で返される最大エントリ数」の値を変更します。
「適用」を選択します。
Oracle Internet Directoryサーバー・インスタンスのorclsizelimit
パラメータの設定値を大きくしすぎるとサーバーのパフォーマンスに影響を与えます。これはorclsizelimit
が、検索時に返されるエントリの最大数も制御するためです。
次のように、Oracle Enterprise Manager Fusion Middleware Controlを使用して、レプリケーション・ログ内の競合解決メッセージを表示できます。
「Oracle Internet Directory」メニューから、「監視中」、「ログ」を選択します。「ログ・メッセージ」ページが表示されます。
「ログ・ファイル」をクリックします。「ログ・ファイル」ページが表示されます。
「レプリケーション・ログ」を選択します。
関連項目:
|
この項の項目は次のとおりです。
変更ログ生成を有効化および無効化するには、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
modify: orclgeneratechangelog
orclgeneratechangelog: 1
コマンドラインから変更ログを表示するには、ldapsearch
を使用します。表示する変更ログの変更番号または変更番号の範囲を検索フィルタに指定します。サプライヤからローカル・ホストに転送された変更ログを表示するには、サプライヤのレプリカIDも検索フィルタに指定します。
たとえば、サプライヤからローカル・ノードに転送された変更ログの範囲を表示するには、次のように入力します。
ldapsearch -D cn=orcladmin -p port -q -b "cn=changelogs" -s one \
"(&(objectclass=changeLogEntry)(servername=SUPPLIER_REPLICAID)\
(changeNumber>=FROMCHGNO)(changeNumber<=TOCHGNO))"
サプライヤからローカル・ノードに転送された単一の変更ログを表示するには、次のように入力します。
ldapsearch -D cn=orcladmin -p port -q -b "cn=changelogs" -s one \
"(&(objectclass=changeLogEntry)(servername=SUPPLIER_REPLICAID)\
(changeNumber=CHGNO))"
ローカル・ノードで生成された変更ログの範囲を表示するには、次のように入力します。
ldapsearch -D cn=orcladmin -p port -q -b "cn=changelogs" -s one \
"(&(objectclass=changeLogEntry)(changeNumber>=FROMCHGNO)(changeNumber<=TOCHGNO))"
ローカル・ノードで生成された単一の変更ログを表示するには、次のように入力します。
ldapsearch -D cn=orcladmin -p port -q -b "cn=changelogs" -s one \
"(&(objectclass=changeLogEntry)(changeNumber=CHGNO))"
出力の一部の行には、セパレータとして文字列<@! !@>
が含まれる場合があります。
表40-7に、変更ログの重要な属性を示します。
orclreplicaid=Replica _ID,cn=replication configuration
表40-8に、ldapmodify
を使用して変更できるレプリカ・サブエントリの属性を示します。コマンドライン構文は次のとおりです。
ldapmodify -D cn=orcladmin -q -p portNum -h hostname -f ldifFile
表D-1「LDAPのレプリカ状態」に、orclreplicastate
の値の詳細を示します。値として0、1、2、6または8を設定できます。表D-1にリストされている他のorclreplicastate
の値は、ブートストラップ時にレプリケーション・サーバーによって設定される読取り専用値です。
orclreplicastate
をゼロに設定するには、次のLDIFファイルを使用します。
dn: orcclreplicaid=Replica _ID,cn=replication configuration
changetype: modify
modify: orclreplicastate
orclreplicastate: 0
エンタープライズの一部としてレプリカをデプロイする前に、これをパイロット・モードでテストできます。パイロット・モードを開始および終了するには、remtool
コマンドを使用します。構文は次のとおりです。
remtool -pilotreplica begin -bind hostname:ldap_port
remtool -pilotreplica end -bind hostname:ldap_port [-bkup file_name]
remtool -pilotreplica beginを実行すると、次のようになります。
remtool -pilotreplica endを実行すると、次のようになります。
orclpilotmode
は0
に設定されます。
ldapmodify
を使用してこれらの属性を直接変更しないようにしてください。
関連項目: remtool の-pilotreplica オプションの詳細は、『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のremtool コマンドのリファレンスを参照してください。 |
レプリケーション承諾には、次の識別名があります。
orclagreementid=Agreement_ID,orclreplicaid=Replica_ID,cn=replication configuration
表40-9に、ldapmodify
を使用して変更できるレプリケーション承諾の属性を示します。詳細は、表39-2「レプリケーション承諾エントリの属性」を参照してください。
表40-9 レプリケーション承諾のオプション
説明 | 構成属性 | デフォルト値 |
---|---|---|
1 |
||
10 |
||
ディレクトリ・レプリケーション・サーバーをディレクトリ・サーバーに常時接続するか、変更ログ処理が行われるたびに接続するか |
1 |
次のLDIFファイルは、レプリケーション承諾のorclHIQSchedule
属性の値を15分に変更して管理者操作キュー・スケジュールを変更します。
dn: orclagreementid=Agreement_ID,orclreplicaid=Replica_ID,cn=replication configuration changetype: modify modify: orclhiqschedule orclhiqschedule: 15
レプリケーション範囲はコマンドラインから変更できます。これを行うには、レプリケーションのネーミング・コンテキスト・コンテナ・エントリの下のネーミング・コンテキスト・オブジェクト・エントリを作成または変更します。次を参照してください。
レプリケーション範囲を変更するには、次のようなコマンドラインを使用します。
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 Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のレプリケーション・スキーマ要素に関する項を参照してください。
注意: レプリケーション・サーバーは、サプライヤ・レプリカからネーミング・コンテキスト・オブジェクトを読み取ります。 |
例40-1 LDAPベースのレプリカのネーミング・コンテキスト・オブジェクトの追加
この例では、次の処理を行うネーミング・コンテキスト・オブジェクトを作成します。
ou=Americas,cn=mycompany
ネーミング・コンテキストをレプリケート
レプリケーションからcn=customer profile, ou=Americas,cn=mycompany
ネーミング・コンテキストを除外
レプリケーションからuserpassword
属性を除外
手順は、次のとおりです。
サンプル・ファイルmod.ldif
を、次のように編集します。
dn: cn=naming_context_identifier, cn=replication namecontext, orclagreementid=replication_agreement_identifier, orclreplicaid=supplier_replica_identifier,cn=replication configuration orclincludednamingcontexts: ou=Americas,cn=mycompany orclexcludednamingcontexts: cn=customer profile, ou=Americas, cn=mycompany orclexcludedattributes: userpassword objectclass: top objectclass: orclreplnamectxconfig
ldapaddを使用して、部分レプリケーションのネーミング・コンテキスト・オブジェクトをサプライヤに追加します。
ldapadd -D "cn=orcladmin" -q -h supplier_host \ -p port_number -f mod.ldif
例40-2 ネーミング・コンテキスト・オブジェクトの削除
例40-1で作成したネーミング・コンテキスト・オブジェクトを削除するには、次のように入力します。
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"
例40-3 レプリカのネーミング・コンテキスト・オブジェクトのororclIncludedNamingContexts属性の変更
ディレクトリ・レプリケーション・サーバーは、レプリカのネーミング・コンテキスト・オブジェクトのorclIncludedNamingcontexts
属性の値を使用して、部分レプリケーションに含める最上位サブツリーを指定します。
この例では、含める対象ネーミング・コンテキストがc=us
に設定されます。これは、c=us
が部分レプリケーションに含められることを意味しています。
サンプル・ファイルmod.ldif
を、次のように編集します。
DN:cn=naming_context_identifier,cn=replication namecontext, orclagreementid=replication_agreement_identifier, orclreplicaid=supplier_replica_identifier,cn=replication configuration Changetype:modify Replace: orclIncludedNamingcontexts orclIncludedNamingcontexts: c=us
ldapmodifyを使用して、レプリケーション承諾のorclupdateschedule属性を更新します。
ldapmodify -D "cn=orcladmin" -q -h supplier_host -p port -f mod.ldif
ディレクトリ・レプリケーション・サーバーを再起動します。
例40-4 レプリカのネーミング・コンテキスト・オブジェクトのororclExcludedNamingContexts属性の変更
ディレクトリ・レプリケーション・サーバーは、レプリカのネーミング・コンテキスト・オブジェクトのorclExcludedNamingcontexts
属性の値を使用して、部分レプリケーションから除外する最上位サブツリーを指定します。
この例では、除外対象ネーミング・コンテキストがou=Europe,c=us
およびou=Americas,c=us
に設定されます。これは、この2つのネーミング・コンテキストが部分レプリケーションから除外されることを意味しています。
サンプル・ファイルmod.ldif
を、次のように編集します。
DN:cn=naming_context_identifier, cn=replication namecontext, orclagreementid=replication_agreement_identifier, orclreplicaid=supplier_replica_identifier,cn=replication configuration Changetype:modify Replace: orclExcludedNamingcontexts orclExcludedNamingcontexts: ou=Europe, c=us orclExcludedNamingcontexts: ou=Americas, c=us
ldapmodifyを使用して、レプリケーション承諾のorclupdateschedule属性を更新します。
ldapmodify -D "cn=orcladmin" -q -h supplier_host -p port -f mod.ldif
ディレクトリ・レプリケーション・サーバーを再起動します。
注意: orclexcludednamingcontexts 属性に指定されたサブツリーは、同一レプリカのネーミング・コンテキスト・オブジェクトで指定されるincludednamingcontext のサブツリーである必要があります。 |
例40-5 レプリカのネーミング・コンテキスト・オブジェクトのorclExcludedAttributes属性の変更
含めるネーミング・コンテキストに加えられた特定の変更を、属性レベルで部分レプリケーションから除外するように指定できます。ディレクトリ・レプリケーション・サーバーは、レプリカのネーミング・コンテキスト・オブジェクトのorclExcludedAttributes属性の値を使用して、除外する属性を判別します。
この例では、orclincludednamingcontexts属性に指定されたtelephonenumber
属性およびtitle
属性が、レプリケーションから除外されます。
サンプル・ファイルmod.ldif
を、次のように編集します。
DN:cn=naming_context_identifier, cn=replication namecontext, orclagreementid=replication_agreement_identifier, orclreplicaid=supplier_replica_identifier,cn=replication configuration Changetype:modify Replace: orclExcludedAttributes orclExcludedAttributes: telephonenumber orclExcludedAttributes: title
ldapmodifyを使用して、レプリケーション承諾のorclupdateschedule属性を更新します。
ldapmodify -D "cn=orcladmin" -q -h my_host -p port -f mod.ldif
cn=configset0,cn=osdrepld,cn=subconfigsubentry
表40-10に、ldapmodify
を使用して変更できるレプリケーション構成セットの属性を示します。
表40-10 レプリケーション構成の属性
説明 | 構成属性 | デフォルト値 |
---|---|---|
10 |
||
20 |
||
(変更した後、サーバーを再起動します。) |
1 |
|
|
5 |
|
サプライヤ当たりの移送スレッド数 |
1 |
|
1000 |
||
1 |
||
(変更した後、サーバーを再起動します。) |
||
なし |
||
1 |
||
100 |
||
0 |
||
0 |
たとえば、次のLDIFファイルでは、レプリケーション構成セットにorclreplusesasl;digest-md5
属性を追加して設定し、レプリケーションのバインド用SASLを有効にします。
dn: cn=configset0,cn=osdrepld,cn=subconfigsubentry changetype: modify add: orclreplusesasl;digest-md5 orclreplusesasl;digest-md5: 1
orclsizelimit
の変更の詳細は、「コマンドラインを使用した管理者操作キュー・ツールで処理されるエントリ数の管理」を参照してください。
属性orcldebuglevel
は、表40-11に示す値の任意の組合せに設定できます。値は加算方式です。再起動は不要です。
表40-11 レプリケーションのデバッグ・レベル
デバッグ・レベル | orcldebuglevelの値 |
---|---|
レプリケーション・プロセスのトレース |
|
レプリケーション・パフォーマンス・ログ |
|
ファンクション・コールのトレース |
|
大容量トレースのデバッグ |
|
競合がログに書き込まれた場合、それは、システムに備わった解消手順では競合を解消できないということを意味します。以前に適用されなかった変更によって新しいレプリケーション変更の競合が発生することを防止するために、ログを定期的に監視することが重要です。
レプリケーション変更の競合を監視するには、レプリケーション・ログの内容を検証します。それぞれに付加されているタイムスタンプによって、各メッセージを識別できます。
競合解消メッセージは、ファイルORACLE_INSTANCE
/diagnostics/logs/OID/
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. ]]
競合の理由、変更タイプおよび結果には次のようなものがあります。
表40-12 競合解消メッセージ
競合の理由 | 変更タイプ | 結果 |
---|---|---|
既存のエントリの追加が試行されました |
追加 |
新しい変更エントリが削除されました %d番目の再試行に失敗した後、変更は低優先度のキューに移動されました 変更エントリより後に作成された重複するターゲット・エントリが削除されました。変更エントリを再度適用してください 新しい変更エントリが削除されました 変更エントリは、guidがターゲット・エントリのguidより大きいため削除されました 変更エントリは、guidがターゲット・エントリと同じ(変更エントリとターゲット・エントリが同一)であるため削除されました 変更エントリより大きいguidを持つ重複するターゲット・エントリは削除されました |
親エントリが存在しません |
追加 |
%d番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
内部エラーが発生しました |
追加 削除 変更 moddn |
%d番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
存在しないエントリの変更が試行されました |
変更 |
%d番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
存在しないエントリの削除が試行されました |
削除 |
%d番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
リーフ以外のエントリの削除が試行されました |
削除 |
%d番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
存在しないエントリの移動が試行されました |
moddn |
%d番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
既存のエントリへの移動が試行されました |
moddn |
%d番目の再試行に失敗した後、変更は低優先度のキューに移動されました |
存在しない別のエントリのmoddnの同期化が進行中です |
moddn |
移動しようとしているエントリより後に作成された既存のエントリが削除されました。エントリの移動が再試行されます |
ソース・エントリより新しい既存のエントリへの移動が試行されました |
moddn |
エントリの移動が再試行されます |
移動しようとしているエントリより古い既存のエントリへの移動が試行されました |
moddn |
ソース・エントリが削除され、変更が削除されました |
同時に作成された同じguidを持つ既存のエントリへの移動が試行されました |
moddn |
ソース・エントリが削除され、変更が削除されました |
移動しようとしているエントリより大きいguidを持つ既存のエントリへの移動が試行されました |
moddn |
重複するターゲット・エントリが削除され、変更が再適用されました |
移動しようとしているエントリより小さいguidを持つ既存のエントリへの移動が試行されました |
moddn |
ソース・エントリが削除され、変更が削除されました |
レプリケーションの競合が発生すると、Oracle Internet Directoryレプリケーション・サーバーは変更をリトライ・キューに入れ、そこからの変更の適用を指定された回数試行します。指定された再試行回数の後に失敗した場合、レプリケーション・サーバーは変更を管理者操作キューに入れます。レプリケーション・サーバーは、管理者によるアクションを待ちながら、そこから長い間隔で変更適用プロセスを繰り返します。
管理者操作キュー・ツールのManageHiq.retry
およびManageHiq.purge
により、管理者操作キューからリトライ・キューまたはパージ・キューにそれぞれ変更を移動できます。パージ・キューに変更を移動すると、以降ログ・エントリに対する変更の再適用は試行されません。管理者操作キューの変更を処理するには、次の一般的な手順を実行してください。
管理者操作キューの変更を検証します。
比較調整ツールを使用して競合している変更を調整します(「一貫性のないデータのoidcmprecによる比較調整」を参照してください)。
ManageHiq.retry
を使用してリトライ・キューに、またはManageHiq.purge
を使用してパージ・キューに変更を戻します。
関連項目: 管理者操作キュー・ツールの使用方法は、『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のレプリケーション・ツールに関する章を参照してください。 |
レプリケーション環境管理ツール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]
Oracle Databaseアドバンスト・レプリケーション・ベースのレプリケーション承諾の場合、remtool
オプションは、-dipqstat
と-asrverify
です。
構文は次のとおりです。
remtool -dispqstat [-connect repl_admin_name@net_service_name] [-v]
remtool -asrverify [-connect repl_admin_name@net_service_name] [-v]
これらすべてのコマンドで、replication_dn_password
の入力を求められます。
最初に、レプリケーション・タイプに応じてremtool
を-pdispqstat
または-dispqstat
オプションとともに実行します。DRGのキュー統計が表示されます。管理者操作キュー(HIQ)エントリと、転送される変更ログ(ログTBP)の数が通常より多いかどうかをチェックします。多い場合は、レプリケーションの実行速度が本来よりも遅いことを意味します。レプリケーション・タイプに応じてremtool
を-pverify
または-asrverify
オプションとともに実行し、レプリケーション構成を検証します。
-pverify
または-asrverify
オプションを使用したremtool
によりテストの失敗が報告された場合は、生成されるレポートをチェックし、レポートの提案に従い、失敗を修正します。
関連項目: 『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のremtool コマンドのリファレンス |
一度に処理する変更ログの数を増やすには、レプリケーション構成セット内の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 modify: orclsizelimit orclsizelimit: 5000
サーバー・インスタンスのorclsizelimit
を5000に設定するには、次のようなLDIFファイルを使用します。
dn: cn=componentname,cn=osdldapd,cn=subconfigsubentry
changetype: modify
modify: orclsizelimit
orclsizelimit: 5000
Oracle Internet Directoryサーバー・インスタンスのorclsizelimit
パラメータの設定値を大きくしすぎるとサーバーのパフォーマンスに影響を与えます。これはorclsizelimit
が、検索時に返されるエントリの最大数も制御するためです。
Oracle Databaseアドバンスト・レプリケーション・ベースのレプリケーションを使用するDRGのすべてのノードに対するレプリケーション管理者のデータベース・アカウントのパスワードは、レプリケーション環境管理ツールのremtool
に-chgpwd
引数を使用して変更できます。この引数を使用するには、次のように入力します。
remtool -chgpwd
remtool
ユーティリティを実行すると、MDSグローバル名(つまり、マスター定義サイトの名前)、現行のパスワードおよび新規パスワードを要求するプロンプトが表示されます。さらに、新規パスワードの確認を要求されます。誤った現行のパスワードを入力した場合は、再びレプリケーション環境管理ツールを実行する必要があります。
remtool
に-pchgpwd
引数を使用して、レプリカのレプリケーション識別名のパスワードを変更することもできます。
レプリケーション・ウォレットの$ORACLE_HOME/OID/admin
内でのみパスワードを変更するには、remtool
に-pchgwalpwd
引数を使用します。この引数を使用するには、次のように入力します。
remtool -pchgwalpwd
関連項目: このツールの使用方法の詳細は、『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のremtool コマンドライン・ツールのリファレンスを参照してください。 |
ディレクトリ・レプリケーション・サーバーが一貫性のないデータを検出した場合、Oracle Internet Directory比較調整ツールを使用して、コンシューマのエントリをサプライヤのエントリと同期化させることができます。その場合、次の一般的な手順を実行します。
サプライヤとコンシューマを、読取り専用モードに設定します。「サーバー・モードの変更」の手順のいずれかを使用します。
サプライヤとコンシューマが安定した状態、つまり変更の供給も適用も行っていない状態にあることを確認します。安定した状態にない場合は、更新が完了するまで待ちます。
コンシューマ上の一貫性のないエントリまたはサブツリーを識別します。
Oracle Internet Directory比較調整ツールを使用して、コンシューマ上の一貫性のないエントリまたはサブツリーを修正します。
サプライヤとコンシューマを、読取り/書込みモードに戻します。
関連項目: Oracle Internet Directory比較調整ツールの構文と動作の説明は、『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のoidcmprec コマンドライン・ツールのリファレンスを参照してください。 |
比較調整ツールoidcmprec
を使用すれば、2つのディレクトリを比較できます。このツールは、競合を検出し、解消します。2つのディレクトリのうち、一方のディレクトリはソース・ディレクトリ、つまり真のソースとみなされます。もう一方のディレクトリは、宛先ディレクトリで、ソース・ディレクトリと同期させる必要があります。比較対象となるディレクトリは、どのレプリケーション・グループのメンバーでもないディレクトリ、同じレプリケーション・グループのメンバーまたは別のレプリケーション・グループのメンバーです。
この項では、oidcmprec
ツールの概要と、oidcmprec
の使用例のいくつかについて説明します。この項の項目は次のとおりです。
関連項目: 操作、競合の例、競合解消規則を含むoidcmprec の完全な構文は、『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のoidcmprecコマンド・リファレンスを参照してください。 |
oidcmprec
ツールは、次の競合の例を検出し、解消できます。
ソース・ディレクトリ内のみのエントリ(entos)
宛先ディレクトリ内のみのエントリ(entod
)
ソース・ディレクトリ内のみの属性(atros
)
宛先ディレクトリ内のみの属性(atrod
)
異なる単一値属性(svatrdif
)
異なる複数値属性(mvatrdif
)
異なるエントリ識別名(dndif
)
dndif
の例は、一方のノードで実行されたmodrdn
またはmoddn
操作が、もう一方のノードにレプリケートされないときに、レプリケーション環境で発生する可能性があります。結果として、そのエントリは、orclguid
は同じでも、識別名が2つのノードで異なります。ツールでは、orclguid
属性を使用して、この競合を検出します。
oidcmprec
ツールは、次のスキーマ競合の例を検出し、解消できます。
オブジェクト・クラス定義が、ソース・ディレクトリにのみ存在(odefos
)
オブジェクト・クラス定義が、宛先ディレクトリにのみ存在(odefod
)
ソースおよび宛先ディレクトリで異なるオブジェクト・クラス定義(odefdif
)
属性定義が、ソース・ディレクトリにのみ存在(adefos
)
属性定義が、宛先ディレクトリにのみ存在(adefod
)
ソースおよび宛先ディレクトリで異なる属性定義(adefdif
)
このツールは、5つの操作をサポートします。各操作は、エントリを比較し、競合を検出し、オプションで競合を解消します。操作は、競合の解消方法に違いがあります。操作は次のとおりです。
比較操作: 2つのディレクトリを比較し、変更をLDIFレコードとしてファイルに格納します。LDIFファイルは、宛先ディレクトリに適用でき、ソース・ディレクトリと同一にできます。ソース・ディレクトリ内のデータのみが有効とみなされます。
調整操作: 2つのディレクトリを比較し、宛先ディレクトリ側で、ソース・ディレクトリに一致させるために必要な変更を適用します。ディレクトリに対して加えられた変更はすべて、LDIF記録としてファイルに格納されます。ソース・ディレクトリ内のデータのみが有効とみなされます。
マージまたは双方向調整操作: 2つのディレクトリを比較し、ソース・ディレクトリまたは宛先ディレクトリで、2つを一致させるために必要な変更を適用します。両ディレクトリのデータは有効とみなされます。たとえば、エントリが宛先ディレクトリにのみ存在することがツールにより検出された場合、ツールはこのエントリをソースに追加します。この操作ではまた、ディレクトリに加えられた変更をすべて、LDIFレコードとしてファイルに記録します。
マージ・リハーサル操作: マージ操作と同様に2つのディレクトリを比較しますが、ディレクトリでの変更適用は行いません。かわりに、変更をLDIF記録としてファイルに格納します。ソース・ディレクトリと宛先ディレクトリに適用される変更は、2つの異なるファイルに格納されます。
ユーザー定義の比較調整操作: 競合の例ごとに選択した競合解消規則を使用します。各競合の例に使用できる競合解消規則のリストは、『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』を参照してください。
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の値を使用します。
レプリケーション識別名とレプリケーション識別名パスワードを資格証明として使用して、ツールは3つのタスクを実行します。まず、スキーマ情報をメモリーにロードします。次に、比較対象のエントリを収集し、それらを属性ごとに比較します。ツールは、スキーマ情報を使用して、属性ごとに使用する比較規則を判断します。次に、比較結果に基づき、必要な処置を行います。これらの操作は、異なるスレッドによって実行されます。
識別名スレッドは、比較対象のエントリの収集を担当します。エントリの収集中、スレッドはツリー全体を一度にフェッチしません。まず、ベース・エントリをフェッチして処理します。次に、ベース・エントリ直下の子をフェッチして処理し、さらにその下の子という具合に処理していきます。収集されたエントリは、ワーカー・スレッドに渡されます。識別名スレッドの数は、dnthreads
引数を使用して制御できます。
ワーカー・スレッドは、エントリを属性ごとに比較し、競合解消規則を適用する作業を担当します。ワーカー・スレッドは、その後、エントリをログ・ライター・スレッドに渡します。ワーカー・スレッドの数は、threads
引数を使用して制御できます。ワーカー・スレッドと識別名スレッドの合計数は、6×(CPU数)- 2に相当する最大値以下です。これを超える値を指定すると、ツールは、ワーカー・スレッドと識別名スレッドの数を、最大値を超えないように調整します。
ログ・ライター・スレッドは、「oidcmprecからの出力」に示した7つの出力ファイルすべてへのコンテンツの書込みを担当します。ログ・ライター・スレッドは1つのみです。この数は増やせません。
これらのスレッドは、メイン・スレッドによって生成、監視、終了されます。メイン・スレッドは、コマンドラインの引数とパラメータ・ファイルを処理し、別のスレッドを生成します。メイン・スレッドは、全操作の完了を検出すると、ただちにすべてのスレッドを終了し、接続をすべてクリーンアップします。
各スレッドは、ソース・ディレクトリと宛先ディレクトリへのLDAP接続を確立します。これらの接続は、すべての操作がスレッドによって完了されるまで、オープンのままです。なんらかの理由で接続がクローズされると、continueOnError
引数がTRUEの場合、ツールは接続を再確立します。ツールが接続を再確立できると、操作を続行します。
注意: continueOnError 引数を使用して、ツールがエラーの処理を続行するかどうかを指定します。この引数は、TRUE にもFALSE にも設定できます。デフォルトでは、TRUE に設定されています。 |
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 :
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
デフォルトでは、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
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
oidcmprec
コマンドラインで指定可能な引数はすべて、パラメータ・ファイルに格納することもできます。テキスト・パラメータ・ファイルは、parameterFile
オプションを使用して指定します。XMLパラメータ・ファイルは、xmlparameterFile
オプションを使用して指定します。コマンドラインとパラメータ・ファイルの両方で引数を指定した場合、コマンドラインで指定した引数が、パラメータ・ファイルで指定した引数に優先します。次に例を示します。
oidcmprec paramfile=comp_param threads=4
この例では、次のサンプル・テキスト・パラメータ・ファイルを使用します。
############################################# #Parameter file for compare and reconcile tool #Creator : John #Date : 21-Mar-2006 #File Name : comp_param ############################################# operation=compare source=staqj13:3060/ods destination=staqj13:3070/ods base='("cn=oraclecontext" "c=uk,dc=mycom,dc=com" "c=us,dc=mycom,dc=com")' verbose=false force=true threads=6 dnthreads=2 excludedAttributes=orclguid userpassword authpassword authpassword;* filename=cmp2006Feb01
この例では、ツールにより4つのワーカー・スレッドが生成されます。ここではコマンドライン引数が優先されます。
次は、サンプル・テキスト・パラメータ・ファイルと同等のXMLパラメータ・ファイルです。
<?xml version="1.0" standalone="yes" ?> - <input> <operation>compare</operation> - <source> <host>staqj13</host> <port>3070</port> </source> - <destination> <host>staqj13</host> <port>3070</port> </destination> <base> <dn>cn=oraclecontext</dn> <dn>c=uk,dc=mycom,dc=com</dn> <dn>c=us,dc=mycom,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>cmp2006Feb01</filename> </input>
ベース引数に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
は、最初にスキーマで操作を実行します。
各操作の競合の例と競合解消規則については、『Oracle Fusion Middleware 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
事前に定義された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 Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のoidcmprecコマンド・リファレンスを参照してください。
oidcmprec
ツールには、次の制限事項があります。
LDIFレコードに対する変更をツリーの削除のためにfilename
.s2d.ldif
またはfilename
.d2s.ldif
ファイルに記録する際、ツールはまず親レコードを記録し、次にその子のレコードを記録します。ldapmodify
コマンドライン・ツールを使用してこの変更を適用しようとすると、ディレクトリ・サーバーではリーフのないエントリの削除が許可されていないため、変更の適用は失敗します。ldapmodify
の失敗を防ぐには、ldapmodify
を実行する前に、ファイルを編集してレコードの順序を並べ替えます。
エントリに対して削除操作を実行する際、ツールはそのエントリとその子を削除します。ツールにより、エントリが削除されたことは記録されますが、その子も削除されたことは記録されません。
ツールには、複合相対識別名に関して制限事項があります。これらは、+
で区切られた複数の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
の入力として使用する場合、まず出力を編集してエントリが正しい順序かどうかを確認します。特に、ツリー全体を移行する場合、ツリーのルートが最初のエントリであることを確認します。