28.5.5. レプリケーションの競合の解決
IdM ドメインデータと、証明書および鍵データの両方の変更は、IdM サーバーとレプリカ (および同様のパスで、IdM サーバーと Active Directory サーバー間) 間で複製されます。
レプリケーション操作は継続的に実行されますが、1 台の IdM サーバーで変更を同時に実行でき、別の IdM サーバーの同じエントリーに別の変更が加えられる可能性があります。レプリケーションがこれらのエントリーを処理し始めると、変更が照合されます。これは レプリケーションの競合 です。
すべてのディレクトリー変更操作には、サーバー固有の 変更状態番号 (CSN)が割り当てられ、レプリケーション中にそれらの変更が伝播される方法を追跡します。CSN には変更のタイムスタンプも含まれます。レプリケーションの競合がある場合、タイムスタンプを確認して最後の変更が優先されます。
最新の変更を受け入れるだけでは、属性値との競合の解決に有効です。ただし、一部の操作ではこのメソッドが不安定ですが、ディレクトリーツリーに影響します。modrdn、DN の変更、親および子エントリーの追加/削除などの一部の操作では、競合を解決する前に管理者のレビューが必要になります。
注記
レプリケーションの競合は、LDAP データベースの entries ディレクトリーを編集して解決されます。
レプリケーションの競合がある場合は、両方のエントリーがディレクトリーに追加され、
nsds5ReplConflict
属性が割り当てられます。これにより、競合のあるエントリーの検索が容易になります。
ldapsearch -x -D "cn=directory manager" -w password -b "dc=example,dc=com" "nsds5ReplConflict=*" \* nsds5ReplConflict
28.5.5.1. ネーミングの競合の解決
同じ DN を持つ IdM ドメインに 2 つのエントリーを追加すると、両方のエントリーがディレクトリーに追加されますが、この
nsuniqueid
属性を命名属性として使用するよう変更されます。以下に例を示します。
nsuniqueid=0a950601-435311e0-86a2f5bd-3cd26022+uid=jsmith,cn=users,cn=accounts,dc=example,dc=com
これらのエントリーは、IdM CLI で検索および表示することができますが、競合が解決され、DN が更新されるまで編集または削除できません。
競合を解決するには、以下を実行します。
- 別の naming 属性を使用してエントリーの名前を変更し、古い RDN を維持します。以下に例を示します。
ldapmodify -x -D "cn=directory manager" -w secret -h ipaserver.example.com -p 389 dn: nsuniqueid=66446001-1dd211b2+uid=jsmith,cn=users,cn=accounts,dc=example,dc=com changetype: modrdn newrdn: cn=TempValue deleteoldrdn: 0
- naming 属性の古い RDN 値と競合マーカー属性を削除します。以下に例を示します。
ldapmodify -x -D "cn=directory manager" -w secret -h ipaserver.example.com -p 389 dn: cn=TempValue,cn=users,cn=accounts,dc=example,dc=com changetype: modify delete: uid uid: jsmith - delete: nsds5ReplConflict -
注記一意の識別子属性nsuniqueid
は削除できません。 - エントリーの名前を目的の属性と値のペアに変更します。たとえば、以下のようになります。
ldapmodify -x -D "cn=directory manager" -w secret -h ipaserver.example.com -p 389 dn: cn=TempValue,dc=example,dc=com changetype: modrdn newrdn: uid=jsmith deleteoldrdn: 1
deleteoldrdn
属性の値を 1 に設定して、一時属性と値のペア cn=TempValue を削除します。この属性を保持するには、deleteoldrdn
属性の値を 0 に設定します。