7.2 インデックスマネージャ

インデックスマネージャは、サーバオブジェクトの属性の1つで、データベースインデックスの管理に使用します。eDirectoryでは、データベースインデックスを使用することによって、クエリの処理速度が大幅に向上します。

NetIQ eDirectoryには、基本的なクエリの機能を提供する一連のインデックスが付属しています。これらデフォルトのインデックスの対象となる属性を次に示します。

CN

Aliased Object Name

dc

破損通知

Member (メンバー)

Surname (名字)

リファレンス

uniqueID (固有ID)

Equivalent to Me

GUID

NLS: 共通証明書

cn_SS

Revision (改訂数)

uniqueID_SS

extensionInfo

ldapAttributeList

ldapClassList

またカスタマイズされたインデックスを作成して、ユーザの環境におけるeDirectoryのパフォーマンスをさらに向上させることができます。たとえば、デフォルトでインデックス付けされていない属性を検索する新しいLDAPアプリケーションが組織に導入された場合、その属性に対するインデックスを作成すると便利です。

メモ:インデックスを使用することにより検索の処理速度は上がりますが、インデックスの数が増えるほど更新にかかる時間が長くなります。一般には、パフォーマンスの問題が特定のディレクトリの検索に関係すると思われる場合に、新しいインデックスを作成します。

NetIQ iManagerを使用して、インデックスを作成または削除します。インデックス名、状態、タイプ、ルール、インデックス付き属性など、インデックスのプロパティを表示したり、管理することができます。

7.2.1 インデックスを作成する

  1. NetIQ iManagerで、[役割およびタスク]ボタン [役割およびタスク]ボタン をクリックします。

  2. eDirectoryの保守]>[インデックス管理]の順にクリックします。

  3. 利用可能なサーバのリストからサーバを選択します。

  4. [インデックスの変更]ページで[作成]をクリックします。

  5. インデックス名を入力します。

    インデックス名を入力しなかった場合は、選択した属性が自動的にインデックス名として設定されます。

    重要:「$」文字は属性値の区切り記号として使用されます。インデックス名に「$」文字を使用する場合、前に円記号(\)を付けて、LDAPでインデックスを作成するときに「$」文字をエスケープします。

  6. 属性を選択します。

  7. インデックスのルールを選択します。

    • 属性の値全体または値の最初の部分を照合します。たとえば、値一致は、「Jensen」に一致する「LastName」のあるエントリの検索や、「Jen」で始まる「LastName」があるエントリの検索に使用できます。

    • 存在 特定の属性値ではなく、属性の存在のみを検索します。Login Script属性を持つエントリをすべて検索するクエリは、存在インデックスを使用します。

    • 部分文字列 属性値文字列のサブセットを照合します。たとえば、「der」という値を含む「LastName」を検索するクエリを実行すると、「Derington」、「Anderson」、および「Lauder」が照合の結果として返されます。

      下位文字列インデックスは、作成や維持を行うときに最も多くのリソースが消費されるインデックスです。

  8. OK]をクリックすると、インデックステーブルが更新されます。

  9. 適用]をクリックすると、リンバがバックグラウンドプロセスとして再起動され、変更内容が有効になります。

7.2.2 インデックスを削除する

作成したインデックスが不要になる場合があります。必要のない、ユーザ定義または自動で作成したインデックスは、削除できます。

  1. NetIQ iManagerで、[役割およびタスク]ボタン [役割およびタスク]ボタン をクリックします。

  2. eDirectoryの保守]>[インデックス管理]の順にクリックします。

  3. 利用可能なサーバのリストからサーバを選択します。

  4. [インデックスの変更]ページで、削除するユーザインデックスまたは自動追加インデックスを選択します。

  5. 削除]をクリックすると、インデックステーブルが更新されます。

  6. 適用]をクリックすると、リンバがバックグラウンドプロセスとして再起動され、変更内容が有効になります。

7.2.3 インデックスをオフラインにする

一時的にインデックスをオフラインにすることで、処理のピーク時にパフォーマンスを調整できます。たとえば、ユーザ定義のインデックスの使用をすべて中断すると、バルクロードを高速化できます。オブジェクトを追加または変更するときは定義されているインデックスを更新する必要があり、すべてのインデックスをアクティブにするとデータのバルクロードの速度が遅くなるためです。バルクロードが完了すると、再びインデックスをオンラインにできます。

  1. NetIQ iManagerで、[役割およびタスク]ボタン [役割およびタスク]ボタン をクリックします。

  2. eDirectoryの保守]>[インデックス管理]の順にクリックします。

  3. 利用可能なサーバのリストからサーバを選択します。

  4. [インデックスの変更]ページで、オフラインにするインデックスを選択して、[状態の変更]をクリックします。

    表示されているテーブルでは、インデックスの状態が[オンライン]から[オフライン]に変わります。インデックスは、次のいずれかの状態になります。

    • オンライン : 現在実行中.

    • オフライン : [一時停止中]. インデックスを再開するには、[Bring Online]をクリックします。

    • New (新規) : [オンライン]状態になるのを待機中.

    • 削除済み : インデックステーブルから削除されるのを待機中.

  5. 適用をクリックします。

7.2.4 他のサーバ上でインデックスを管理する

あるサーバで便利に使用されているインデックスがあり、このインデックスを他のサーバでも使用する場合は、他のサーバにインデックス定義をコピーできます。またプレディケートデータを調べると、これとは逆のケースが発生する場合もあります。つまり、複数のサーバで使用されていたインデックスが、そのいずれかのサーバで不要になるといったケースです。このような場合、インデックスが不要になったサーバからインデックスを削除できます。

インデックスマネージャを使用すると、他のインスタンスに影響を与えずに、インデックスの1つのインスタンスを処理できます。

  1. NetIQ iManagerで、[役割およびタスク]ボタン [役割およびタスク]ボタン をクリックします。

  2. eDirectoryの保守]>[インデックス管理]の順にクリックします。

  3. 利用可能なサーバのリストからサーバを選択します。

  4. 同じツリーの別のサーバにインデックス定義をコピーするには、[インデックス位置の変更]をクリックします。

  5. コピーするインデックス定義を選択します。

    インデックスを1つ選択すると、そのインデックスを提供するツリー内のサーバが一覧表示されます。

  6. このカラムを使用して、インデックスのコピーを目的のサーバに移動します。

  7. 適用をクリックします。

7.2.5 NetIQインポート/エクスポート変換ユーティリティを使用してインデックスを管理する

NetIQインポート/エクスポート変換ユーティリティを使用してインデックスを作成または削除できます。

インデックスを作成または削除するには、LDIFファイルを使用する必要があります。LDIFファイルがインポートされたら、リンバを開始してインデックス処理を初期化することができます。その他の場合には、インデックス処理はリンバが開始されたときに自動的に行われます。

LDIFファイルにインデックスを指定するには値が必要です。次の場合、ドル($)記号で区切られた文字列は無視されます。

順序

String

説明

1

Index version

今後の使用のために予約されています。eDirectoryでは、常に0に設定します。

2

Index name

ユーザ定義のインデックス名(郵便番号など)を指定します。文字列には、ドル($)記号は使用できません。

3

Index state

インデックスの状態を指定します。インデックスを定義する場合、このフィールドには2(オンライン)を設定します。eDirectoryでは次の値がサポートされています。

  • 0 - オンライン。該当するインデックスが使用されていることを示します。

  • 1 - 一時停止。該当するインデックスがクエリに使用されず、更新もされていない状態を示します。

  • オンライン復帰は、該当するインデックスが作成中であることを示します。これには2つの状態、オンライン復帰(低)とオンライン復帰(高)があります。

    • 2 - オンライン復帰(低)は、前述の属性のインデックス作成プロセスが保留中であることを示します。

    • 3 - オンライン復帰(高)は、インデックス作成プロセスが進行中であることを示します。

  • 4 - 作成。該当するインデックスの定義が完了し、バックグラウンドプロセスで実行されるまで待機中であることを示します。

バックグラウンドプロセスは、インデックスの構築を開始した後に状態を変更します。

4

Index rule

マッチングのタイプを指定します。

  • 0 – 値一致。値全体または値の最初の部分を含むクエリを最適化します。たとえば、「Jensen」または「Jen」ではじまる文字列と一致するsurname属性を持つエントリのクエリなどがあります。

  • 1 - 存在一致。属性の存在のみを含むクエリを最適化します。たとえば、surname属性を持つすべてのエントリのクエリなどがあります。

  • 2 – 下位文字列一致。一致する文字列を含むクエリを最適化します。たとえば、「.der」の文字列を含むsurname属性を持つエントリのクエリなどがあります。このクエリでは、「Derington」「Anderson」および「Lauder」といったsurname属性を持つエントリが返されます。

5

Index type

インデックスの作成者を指定します。インデックスを定義する場合、この値には0を設定する必要があります。eDirectoryでは次の値がサポートされています。

  • 0 - ユーザ定義

  • 1 - 属性作成時に追加

  • 2 - 操作時に必要

  • 3 - システムインデックス

6

Index value state

インデックスのソースを指定します。インデックスを定義する場合、この文字列には1を設定します。eDirectoryでは次の値がサポートされています。

  • 0 - 未初期化

  • 1 - サーバから追加

  • 2 - ローカルDIBから追加

  • 3 - ローカルDIBから削除

  • 4 - ローカルDIBから変更

7

属性名

属性のNDS名を指定します。eDirectoryでは多くの属性がLDAP名とNDS名の両方を持っています。この文字列にはNDS名が必要です。

インデックスを作成するLDIFファイルの例

dn: cn=testServer-NDS,o=Novell
changetype: modify
add: indexDefinition
indexDefinition: 0$indexName$2$2$0$1$attributeName

インデックスを削除するLDIFファイルの例

dn: cn=osg-nw5-7, o=Novell
changetype: modify
delete: indexDefinition
indexDefinition: 0$indexName$2$2$0$1$attributeName