検索

第4章 ディレクトリーエントリーの変更の追跡

download PDF
これは、エントリーに変更が加えられるタイミングを追跡するのに役立ちます。Directory Server が追跡するエントリーの変更には、以下の 2 つの側面があります。
  • 変更シーケンス番号を使用してデータベースへの変更を追跡します。これは、レプリケーションおよび同期で使用されるシーケンス番号の変更に類似しています。通常のディレクトリー操作はすべて、シーケンス番号がトリガーされます。
  • 作成および変更の情報を割り当てます。これらの属性は、エントリーを作成して直近に変更したユーザーの名前と、エントリーの作成および修正時のタイムスタンプを記録します。
注記
エントリー USN、時間および名前の変更、および時間および作成はすべて操作属性であり、通常の ldapsearch では返されません。操作属性の検索実行に関する詳細は、「操作属性の検索」を参照してください。

4.1. 更新シーケンス番号でデータベースへの変更の追跡

USN プラグインは、LDAP クライアントがデータベース内のものが変更されたことを通知する方法を提供します。

4.1.1. エントリーシーケンス番号の概要

USN プラグインが有効な場合は、エントリーに対して書き込み操作を実行するたびに、エントリーに割り当てられるシーケンス番号 (USN) を更新します。書き込み操作には、add、modify、modrdn、および delete 操作が含まれます。エクスポート操作などの内部データベース操作は、更新シーケンスでカウントされません。 USN カウンターは、最近割り当てられた USN を追跡します。

4.1.1.1. ローカルおよびグローバルの USN

USN は、単一のエントリーではなく、データベース全体に対してグローバルに評価されます。USN は、データベースまたはディレクトリーの変更を追跡するために単に上向きにチェックするという点で、レプリケーションと同期の変更シーケンス番号に似ています。ただし、エントリー USN は CSN と別個に維持され、USN は複製されません。
このエントリーには、entryUSN オペレーション属性のエントリーへの最後の変更の変更番号が表示されます。(操作属性の検索実行に関する詳細は、「操作属性の検索」 を参照してください。)

例4.1 エントリー USN の例

 dn: uid=jsmith,ou=People,dc=example,dc=com
 mail: jsmith@example.com
 uid: jsmith
 givenName: John
 objectClass: top
 objectClass: person
 objectClass: organizationalPerson
 objectClass: inetorgperson
 sn: Smith
 cn: John Smith
 userPassword: {SSHA}EfhKCI4iKl/ipZMsWlITQatz7v2lUnptxwZ/pw==
 entryusn: 1122
USN プラグインには、ローカルモードとグローバルモードという 2 つのモードがあります。
  • ローカルモードでは、各バックエンドデータベースには、そのバックエンドデータベースに固有の USN カウンターを持つ USN プラグインのインスタンスがあります。これはデフォルト設定です。
  • グローバルモードでは、ディレクトリー全体に追加された変更に適用されるグローバル USN カウンターを使用する USN プラグインのグローバルインスタンスがあります。
USN プラグインをローカルモードに設定すると、結果はローカルのバックエンドデータベースに限定されます。USN プラグインをグローバルモードに設定すると、返される結果はディレクトリー全体に対して行われます。
ルート DSE は、lastusn 属性のデータベースのエントリーに割り当てられた最新の USN を表示します。USN プラグインがローカルモードに設定されているので、各データベースに独自のローカル USN カウンターがある場合、lastUSN は、USN が割り当てられているデータベースと、USN の両方を表示します。
lastusn;database_name:USN
以下に例を示します。
lastusn;example1: 2130
lastusn;example2: 2070
グローバルモードでは、データベースが共有 USN カウンターを使用する場合、lastUSN 属性は最新の USN のみを表示します。
lastusn: 4200

4.1.1.2. USN エントリーのインポート

エントリーがインポートされると、USN プラグインは nsslapd-entryusn-import-initval 属性を使用して、エントリーに USN が割り当てられているかどうかを確認します。nsslapd-entryusn-import-initval の値が数値である場合、インポートされたエントリーはこの数字をエントリーの USN として使用します。nsslapd-entryusn-import-initval の値が数値でない場合、USN プラグインは lastUSN 属性の値を使用して、インポートしたエントリーの USN で増やします。

4.1.2. USN プラグインの設定

「Directory Server コンソールでプラグインの有効化」 で説明されているように、USN プラグインをエントリーに記録するには有効にする必要があります。プラグインは、Directory Server Console またはコマンドラインを使用して有効にできます。以下に例を示します。
# ldapmodify -D "cn=Directory Manager" -W -x
dn: cn=USN,cn=plugins,cn=config
changetype: modify
replace: nsslapd-pluginEnabled
nsslapd-pluginEnabled: on
次にサーバーを再起動して変更を適用します。

4.1.3. グローバル USN の有効化

デフォルト設定では、Directory Server は各バックエンドデータベースに一意の更新シーケンス番号 (USN) を使用します。すべてのバックエンドデータベースで一意の USN を有効にするには、以下を実行します。
  1. USN プラグインを有効にします。「USN プラグインの設定」 を参照してください。
  2. nsslapd-entryusn-global パラメーターを on に設定します。
    # ldapmodify -D "cn=Directory Manager" -W -x
    dn: cn=config
    changetype: modify
    replace: nsslapd-entryusn-global
    nsslapd-entryusn-global: on

4.1.4. USN Tombstone エントリーのクリーンアップ

エントリーが削除されると、USN プラグインは、エントリーを tombstone エントリーに移動します。レプリケーションが有効な場合は、USN および Replication プラグインによって個別の tombstone エントリーが保持されます。tombstone エントリーはレプリケーションプロセスで削除されますが、サーバーのパフォーマンスのために、サーバーをレプリカに変換するか、サーバーのメモリーを解放する前に USN tombstones を削除することが有益です。
usn-tombstone-cleanup.pl コマンドは、特定のデータベースバックエンドまたは特定の接尾辞の USN tombstone エントリーを削除します。必要に応じて、特定の USN までの tombstone エントリーをすべて削除できます。以下に例を示します。
# /usr/lib64/dirsrv/instance/usn-tombstone-cleanup.pl -D "cn=Directory Manager" -w secret -s "ou=people,dc=example,dc=com" -m 1100
バックエンドは、- s オプションを使用して、- n オプションまたは接尾辞を使用して指定する必要があります。両方を指定すると、- s オプション の接尾辞が使用されます。
usn-tombstone-cleanup.pl コマンドのオプションは、表4.1「USN-tombstone-cleanup.pl オプション」 に一覧表示されます。このツールの詳細は、設定、『コマンド、およびファイルリファレンス を参照してください』。
表4.1 USN-tombstone-cleanup.pl オプション
オプション 詳細
-D rootdn Directory Manager などの root 権限でユーザー DN を指定します。デフォルトは、Directory Manager の DN です。これは、cn=config 下の nsslapd-root 属性から読み取られます。
-m maximum_USN 削除するエントリーの上限を設定します。指定された最大値(inclusive)までの entryUSN 値を持つすべての tombstone エントリーは削除されますが、USN 値を超えると削除されます。最大 USN 値が設定されていない場合、すべてのバックエンド tombstone エントリーが削除されます。
-n backendInstance クリーニングするエントリーが含まれるデータベースの名前を指定します(削除)。
-s suffix クリーニングするエントリーを含む接尾辞の名前を指定します(削除)。
-w password ユーザー DN に関連付けられたパスワード。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.