インデックスマネージャ

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

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

CN

別名オブジェクト名

dc

破損通知

Member

リファレンス

uniqueID

同等権利保有者

GUID

NLS:共通許可証

cn_SS

リビジョン

uniqueID_SS

extensionInfo

ldapAttributeList

ldapClassList

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

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

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

プレディケート統計データを使用すると、どのようなインデックスを追加したらユーザの環境で便利であるかを確認できます。プレディケート統計データはConsoleOneでのみ使用できます。「プレディケートデータ」を参照してください。


インデックスを作成する

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

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

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

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

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

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

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

  6. 属性を選択します。

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

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

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

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

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

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

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


インデックスを削除する

作成したインデックスが不要になる場合があります。必要のない、ユーザ定義または自動で作成したインデックスは、削除できます。プレディケート統計を使用して、重要度の低いインデックスを調べることができます。詳細については、プレディケートデータを参照してください。

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

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

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

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

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

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


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

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

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

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

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

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

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

    • オンライン: 現在実行中です。

    • オフライン: 一時停止中です。[オンライン]をクリックすると再開します。

    • 新規: オンラインに移動するために待機中です。

    • 削除済み: インデックステーブルから削除するために待機中です。

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

順序 文字列 説明

1

Index version

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

2

Index name

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

3

Index state

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

  • 0 - 一時停止。該当するインデックスがクエリに使用されず、更新もされていない状態を示します。
  • 1 - オンライン開始中。該当するインデックスが作成中であることを示します。
  • 2 - オンライン。該当するインデックスが使用されていることを示します。
  • 3 - 作成待機中。該当するインデックスの定義が完了し、バックグラウンド処理で実行されるまで待機中であることを示します。

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

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

Attribute name

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


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

dn:cn=testServer-NDS,o=Novellchangetype:modifyadd:indexDefinitionindexDefinition:0$indexName$2$2$0$1$attributeName


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

dn:cn=osg-nw5-7, o=Novellchangetype:modifydelete:indexDefinitionindexDefinition:0$indexName$2$2$0$1$attributeName