JavaScriptが検索に必要です。
ナビゲーション・リンクをスキップ
印刷ビューの終了
Oracle Directory Server Enterprise Edition管理ガイド 11gリリース1(11.1.1.5.0)
検索フィルタ・アイコン
検索アイコン

ドキュメント情報

はじめに

第1部 Directory Serverの管理

1.  Directory Serverのツール

2.  Directory Serverのインスタンスと接尾辞

3.  Directory Serverの構成

4.  Directory Serverのエントリ

5.  Directory Serverのセキュリティ

6.  Directory Serverのアクセス制御

7.  Directory Serverのパスワード・ポリシー

8.  Directory Serverのバックアップとリストア

9.  Directory Serverのグループ、ロールおよびCoS

10.  Directory Serverのレプリケーション

11.  Directory Serverのスキーマ

12.  Directory Serverの索引作成

索引の管理

索引をリストするには:

索引を作成するには:

索引を変更するには:

索引を生成するには:

索引の解析

索引フィルタを解析するには:

属性の索引を解析するには:

索引を削除するには:

索引リストのしきい値の変更

索引リストのしきい値を変更するには:

接尾辞の索引再作成

Directory Server稼働中における接尾辞の索引作成

再初期化による接尾辞の索引の再作成

参照索引の管理

クライアント検索用の参照索引

参照索引を作成するには:

参照索引エントリを追加または変更するには:

参照索引を再生成するには:

13.  Directory Serverの属性値の一意性

14.  Directory Serverのロギング

15.  Directory Serverの監視

第2部 Directory Proxy Serverの管理

16.  Directory Proxy Serverのツール

17.  Directory Proxy Serverのインスタンス

18.  LDAPデータ・ビュー

19.  Directory Proxy Serverの証明書

20.  Directory Proxy Serverのロード・バランシングとクライアント・アフィニティ

21.  Directory Proxy Serverの配布

22.  Directory Proxy Serverによる仮想化

23.  仮想データ変換

24.  Directory Proxy ServerとバックエンドLDAPサーバーの接続

25.  クライアントとDirectory Proxy Serverの接続

26.  Directory Proxy Serverのクライアント認証

27.  Directory Proxy Serverのロギング

28.  Directory Proxy Serverの監視とアラート

第3部 Directory Service Control Centerの管理

29.  Directory Service Control Centerの構成

索引

索引の管理

この項では、特定の属性に対する索引の管理方法について説明します。この項には、索引の作成、変更および削除に関する情報が含まれます。仮想リスト表示(VLV)操作に固有の手順は、「参照索引の管理」を参照してください。

dsconf infoコマンドを実行して、索引の作成が必要な属性をチェックすることもできます。

索引をリストするには:

このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。

索引を作成するには:


注意: 新しいシステム索引は作成できません。Directory Serverで内部的に定義される既存のシステム索引のみが維持されます。


このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。

  1. 新しい索引構成を作成します。

    dsconf create-indexコマンドライン・ユーティリティを使用して、索引を作成する属性を指定することにより、新しい索引情報を構成します。

    たとえば、preferredLanguage 属性の索引エントリを作成するには、次のコマンドを使用します。

    $ dsconf create-index -h host -p port dc=example,dc=com preferredLanguage

    注意: コマンドdsconf create-indexでは索引構成が設定されますが、検索に必要な索引ファイルが実際に作成されるわけではありません。索引ファイルの生成はパフォーマンスに影響を及ぼす場合があります。索引作成手順をより厳密に制御するには、新しい索引構成が作成された後に、手動で索引ファイルを生成します。

    索引の作成時には、常に属性の基本名を使用します。属性の別名は使用しないでください。属性の基本名とは、スキーマの属性にリストされる最初の名前です。たとえば、userid属性ではuidとなります。


  2. (オプション)dsconf set-index-propコマンドを使用して、索引のプロパティを設定します。

    dsconf create-indexコマンドにより、デフォルト・プロパティで索引が作成されます。これらのプロパティを変更するには、dsconf set-index-propコマンドを使用します。索引のプロパティ変更の詳細は、「索引を変更するには:」を参照してください。


    注意: 索引の構成を変更する場合、その変更を反映させて索引を再度使用するには、索引の再作成が必要です。


  3. 索引ファイルを生成します。

    「索引を生成するには:」を参照してください。

  4. 索引を作成するすべてのサーバーで、前述の手順を繰り返します。

索引を変更するには:

このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。

  1. 索引のプロパティを変更します。
    $ dsconf set-index-prop -h host -p port suffix-DN attr-name property:value

    たとえば、preferredLanguage索引の近似索引approx-enabledを有効するには、次のコマンドを使用します。

    $ dsconf set-index-prop -h host -p port dc=example,dc=com \
    preferredLanguage approx-enabled:on

    各索引の次のプロパティを変更できます。

    • eq-enabled等価性

    • pres-enabled実在性

    • sub-enabledサブストリング

    変更する可能性があるプロパティの1つに、オプションのnsMatchingRule属性があります。この属性には、サーバーが把握するあらゆるマッチング・ルールのOIDが含まれます。これは、多言語化された索引のための言語照合順序と、CaseExactMatchなどの他のマッチング・ルールのOIDを有効にします。サポートされるロケールとそれらに関連付けられた照合順序のOIDのリストについては、Oracle Directory Server Enterprise Editionリファレンスを参照してください。

    索引構成属性の詳細は、Oracle Directory Server Enterprise Editionリファレンスを参照してください。


    注意: 索引の構成を変更する場合、その変更を反映させて索引を再度使用するには、索引の再作成が必要です。

    dsconf infoを実行して、索引の再作成が必要な属性を表示します。たとえば、次の出力では、索引の再作成が必要なcnおよびuid属性を示しています。

    $ dsconf info
    Instance path    :  /local/dsInst
    Global State     :  read-write
    Host Name        :  hostname
    Port             :  port
    Secure port      :  secure-port
    Total entries    :  160
    Server version   :  11.1.1.5.0
    
    Suffixes         :  dc=example,dc=com
    
    No active tasks
    
    dc=example,dc=com
    =================
    Attribute to reindex  :  cn
                             uid

  2. 新しい索引を再生成します。

    「索引を生成するには:」を参照してください。

  3. 変更した属性の索引を含むすべてのサーバーに対し、前述の手順を繰り返します。

索引を生成するには:

次の手順では、索引ファイルを生成して、新規または変更後の索引を検索できるようにします。属性の索引構成を変更する場合、その属性をフィルタとして含むすべての検索の索引が作成されるとは限りません。その属性を含む検索が確実に実行されるようにするには、次の手順のコマンドを使用して、属性の索引構成を作成または変更するたびに、既存の索引を再生成します。

このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。

索引の解析

索引の解析では、特にフィルタで指定された値など、ユーザーのリクエストから検索フィルタの使用パターンを収集し、さらに索引ファイル内でそれらの値を調べることが必要となります。内部的にまたはユーザーにより生成された検索リクエストが処理されると、最初のフェーズで返す可能性のあるエントリを検出するために索引が使用されます。検索フィルタにもよりますが、指定された属性のいずれかの索引で一致するエントリが多すぎる場合(ALLID)、その検索では索引作成なしとなります(アクセス・ログ内のnotes=U)。いずれの場合でも、収集されたすべてのエントリ(またはDIT全体)は、実際に検索結果を返すためのフィルタと一致しています。


注意: ALLIDと一致するすべての索引の値で検索の索引作成が強制されることにならないよう、Directory Serverでは検索の最適化が試みられます。


索引フィルタを解析するには:

dsconf analyze-index-filtersコマンドが有効な場合、Directory Server検索フィルタがその統計とともに表示されます。

  1. 次のコマンドを使用して、索引フィルタ・アナライザを有効にします。
    $ dsconf enable-index-filter-analyzer [--max-entries INT] SUFFIX_DN

    たとえば、o=example.comで索引フィルタ・アナライザを有効にするには、次のコマンドを実行します。

    $ dsconf enable-index-filter-analyzer -p port-number o=example.com
    $ dsconf get-suffix-prop -p port-number o=example.com \
    index-filter-analyzer-enabled index-filter-analyzer-max-entries
    
    
    index-filter-analyzer-enabled      :  on
    index-filter-analyzer-max-entries  :  2000
  2. 索引フィルタを解析して、索引の再作成が必要な索引を把握します。
    $ dsconf analyze-index-filters -p port-number SUFFIX_DN

    出力には、索引の再作成が必要なすべての属性、索引フィルタの使用に関する統計、ヒット数およびallidsヒット数が表示されます。パフォーマンスを向上させるため、この出力に基づいて、all-ids-thresholdプロパティを変更するか、索引を作成することにより、索引を様々に構成できます。

    $ dsconf analyze-index-filters -p port-number o=example.com
    
    Observations started at Nov 13, 2008 12:01:29 PM
    
    Total number of search requests :   8
    Total number of Allids :            7
    
    filter                Type  #allids/#hits  Threshold  Max matching  Additional info
                                                          entries
    -------------------   ----  -------------  ---------  ------------  ---------------
    (departmentNumber       eq            1/1                        2  "departmentNumber"
     =9415)                                                             is not indexed
    
    (objectClass            eq            1/1      *4000         10000  To investigate
     =inetOrgPerson)
    
    (objectClass=*)       pres            1/1                    10006  "pres" type is 
                                                                        disabled for 
                                                                        "objectClass" 
                                                                        system index
    
    (roomNumber=*)        pres            1/1                    10000  "roomNumber" is
                                                                        not indexed
    
    (roomNumber=1*)         eq            1/1                     4071  "roomNumber" is
                                                                        not indexed
    
    (telephoneNumber=*)   pres            2/2      *4000         10000  To investigate
    
    (telephoneNumber=1*)    eq            0/1       4000         10000
    
    ## * indicates thresholds which have been crossed.
    
    No attributes need to be reindexed
    
    Use "dsconf set-index-prop o=example.com ATTR_NAME..." to set the allids threshold 
    value and to take benefit of indexes.

    表示されるフィルタは、次の情報を含む基本的なフィルタ要素です。

    • 処理中に使用されるタイプ

    • フィルタ要素の使用回数および索引の値がAllidsとなった回数


      注意: 権限が不十分な場合、または検索タイプの構成が変更された場合、Allidsが発生する可能性があります。後者の場合、データが偏向する可能性があります。

      複合フィルタでは、それらの基本要素に分割され、全体としては表示されません。


    出力の例では、次の情報が表示されます。

    • いくつかの索引の値がAllidsである。

    • いくつかの属性は索引が作成されていない(roomNumberdepartmentNumber)。

    • 合計4071のエントリがroomNumber=1*フィルタと一致している。

    • いくつか索引が一部のフィルタの使用に合うように構成されている(telephoneNumber=1*)。

  3. 属性roomNumberの新しい索引を作成します。
    $ dsconf create-index -p port-number o=example.com roomNumber
  4. analyze-index-filtersコマンドを再度実行して、ステータスをチェックします。
    $ dsconf analyze-index-filters -p port-number o=example.com
    
    Observations started at Nov 13, 2008 12:01:29 PM
    
    Total number of search requests :   9
    Total number of Allids :            8
    
    filter                Type  #allids/#hits  Threshold  Max matching  Additional info
                                                          entries
    --------------------  ----  -------------  ---------  ------------  -----------------
    (departmentNumber       eq            1/1                        2  "departmentNumber" 
     =9415)                                                             is not indexed
    
    (objectClass            eq            1/1      *4000         10000  To investigate
    =inetOrgPerson)
    
    (objectClass=*)       pres            1/1                    10006  "pres" type is 
                                                                        disabled for 
                                                                        "objectClass" 
                                                                        system index
    
    (roomNumber=*)        pres            1/1      *4000         10000  To investigate
    
    (roomNumber=1*)         eq            1/1      *4000          4071  To investigate
    
    (telephoneNumber=*)   pres            2/2      *4000         10000  To investigate
    
    (telephoneNumber=1*)    eq            0/1       4000         10000
    
    ## * indicates thresholds which have been crossed.
    
    Attributes to reindex :  roomNumber
    
    Use "dsconf reindex --attr ATTR_NAME... o=example.com" to reindex.
    Use "dsconf set-index-prop o=example.com ATTR_NAME..." to set the allids 
    threshold value and to take benefit of indexes.

    必要に応じて、出力の最後に示される適切な手順に従います。

  5. 索引フィルタ・アナライザを再起動して、最新の索引の更新を反映させます。

    索引フィルタ・アナライザを再起動するには、disable-index-filter-analyzerサブコマンドを使用してアナライザを無効にし、enable-index-filter-analyzerサブコマンドを使用して再度アナライザを起動します。


    注意: 監視はパフォーマンスに影響を及ぼします。監視用に構成されたフィルタの最大数に基づいて、大量のメモリー・リソースも必要になります。

    dsconf infoコマンドを実行して、アナライザが有効になった時間を把握します。索引の監視およびanalyze-index-filtersが不要の場合、アナライザを実行したままにすることはお薦めしません。

    Directory Serverでは検索の最適化が試みられるので、複合フィルタの評価時には、すべての要素を処理できません。アクセス・ログ内の表示内容と、複合フィルタおよびその構成要素が1対1で対応することは期待しないでください。


関連項目

詳細は、dsconf(1M)」を参照してください。

属性の索引を解析するには:

dsconf analyze-index-filtersコマンドを使用して、最もよく使用されるフィルタとそれらの動作を収集します。一方で、索引ファイル内に出現したデータを把握するには、dsadm analyze-indexesを使用して、索引ファイルのスナップショットを取得します。

  1. 属性の索引を解析する前には、サーバーを停止する必要があります。
    $ dsadm stop INSTANCE_PATH
  2. 次のコマンドを使用して、属性の索引を解析します。
    $ dsadm analyze-indexes [-bRi] [-o FILE] INSTANCE_PATH SUFFIX_DN

    たとえば、接尾辞o=example.comの属性の索引を解析するには、次のコマンドを実行します。

    $ dsadm analyze-indexes /local/myinst o=example.com
    This operation may take a long time and generate important amounts of data
    Do you want to continue [y/n]? y
    Generating raw index data, please wait...
    Raw index data available in file '/local/myinst/logs/db_stat_example%2ecom'
    
    Index            Type       Total Keys  ALLIDs  95%  90%  80%
    ---------------  ---------  ----------  ------  ---  ---  ---
    aci              PRESENCE            1       0    0    0    0
    ancestorid       EQUALITY            6       6    0    0    0
    cn               EQUALITY       200000       0    0    0    0
    cn               SUBSTRING       14828      15    0    0    0
    entrydn          EQUALITY       100006       0    0    0    0
    givenName        EQUALITY         8605       0    0    0    0
    givenName        SUBSTRING        4762       4    0    0    0
    givenName        PRESENCE            1       1    0    0    0
    mail             EQUALITY       100000       0    0    0    0
    mail             SUBSTRING       14975      26    1    3    2
    mail             PRESENCE            1       1    0    0    0
    nsuniqueid       EQUALITY       100007       0    0    0    0
    numsubordinates  PRESENCE            1       0    0    0    0
    objectclass      EQUALITY            7       4    0    0    0
    parentid         EQUALITY            6       5    0    0    0
    sn               EQUALITY       100000       0    0    0    0
    sn               SUBSTRING       12993       0    0    0    0
    telephoneNumber  EQUALITY        99924       0    0    0    0
    telephoneNumber  SUBSTRING        1106      24    0    0    0
    telephoneNumber  PRESENCE            1       1    0    0    0
    uid              EQUALITY       200000       0    0    0    0
    uid              PRESENCE            1       1    0    0    0
    
    aci PRESENCE
    ============
    ALLIDs keys : 0 / 1
    
    ancestorid EQUALITY
    ===================
    ALLIDs keys : 6 / 6
         [1] [2] [3] [4] [5] [6]
    
    cn EQUALITY
    ===========
    ALLIDs keys : 0 / 200000
    
    cn SUBSTRING
    ============
    ALLIDs keys : 15 / 14828
         [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [^us]
         [er1] [r10] [ser] [use]
    
    entrydn EQUALITY
    ================
    ALLIDs keys : 0 / 100006
    
    givenName EQUALITY
    ==================
    ALLIDs keys : 0 / 8605
    
    givenName SUBSTRING
    ===================
    ALLIDs keys : 4 / 4762
         [^ma] [ie$] [na$] [ne$]
    
    givenName PRESENCE
    ==================
    ALLIDs keys : 1 / 1
        [pres]
    
    mail EQUALITY
    =============
    ALLIDs keys : 0 / 100000
    
    mail SUBSTRING
    ==============
    ALLIDs keys : 26 / 14975
         [.co] [0@e] [1@e] [2@e] [3@e] [4@e] [5@e] [6@e] [7@e] [8@e] [9@e]
         [@ex] [^ma] [amp] [com] [ell] [exa]  [e.c] [ie_] [le.] [mar] [mpl] 
         [na_] [ne_] [om$] [ple] [xam]
    
    mail PRESENCE
    =============
    ALLIDs keys : 1 / 1
        [pres]
    
    nsuniqueid EQUALITY
    ===================
    ALLIDs keys : 0 / 100007
    
    numsubordinates PRESENCE
    ========================
    ALLIDs keys : 0 / 1
    
    objectclass EQUALITY
    ====================
    ALLIDs keys : 4 / 7
         [inetorgperson] [organizationalperson] [person] [top]
    
    parentid EQUALITY
    =================
    ALLIDs keys : 5 / 6
         [2] [3] [4] [5] [6]
    
    sn EQUALITY
    ===========
    ALLIDs keys : 0 / 100000
    
    sn SUBSTRING
    ============
    ALLIDs keys : 0 / 12993
    
    telephoneNumber EQUALITY
    ========================
    ALLIDs keys : 0 / 99924
    
    telephoneNumber SUBSTRING
    =========================
    ALLIDs keys : 24 / 1106
         [120] [121] [130] [140] [141] [151] [171] [180] [181] [206] [213]
         [303] [408] [415] [510] [714] [804] [818] [^12] [^13] [^14] [^15]
         [^17] [^18]
    
    telephoneNumber PRESENCE
    ========================
    ALLIDs keys : 1 / 1
        [pres]
    
    uid EQUALITY
    ============
    ALLIDs keys : 0 / 200000
    
    uid PRESENCE
    ============
    ALLIDs keys : 1 / 1
        [pres]

    Oracle Directory Server Enterprise Editionリファレンスの第9章「Directory Serverの索引作成」に従って、dsadm analyze-indexesにより、Directory Serverで使用される値キーのステータスを表示します。キーのほとんどがAllid、またはAllidの95%である場合、このキーに一致するエントリ数は少なくともall-ids-thresholdとなります。索引はほぼ間違いなく、all-ids-thresholdを高い値で構成する必要があります。


    注意: all-ids-threshold値が高すぎると、パフォーマンスに影響する場合があります。


    dsadm analyze-indexesでは、どのキーがALLIDであるか、またはそれに近いかを表示するので、それがdsconf analyze-index-filtersの出力と一致することもあります。検索で、値がALLIDキーのフィルタを指定する場合、前述したように、検索フィルタ全体によっては、その検索の索引が作成されない場合があります。

索引を削除するには:

このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。

索引リストのしきい値の変更

システム索引リストのサイズが索引リストのしきい値を超えると、検索が遅くなる場合があります。索引リストのしきい値とは、各索引キーの値の最大数です。索引リストのしきい値サイズを超えたかどうかを判別するには、アクセス・ログを調べます。アクセス・ログのRESULTメッセージの最後にあるnotes=Uフラグは、索引作成なしの検索が実行されたことを示します。同じ接続および操作の前述のSRCHメッセージでは、使用した検索フィルタが示されています。次の2行の例では、10,000エントリを返すcn=Smithの索引作成なしの検索を追跡します。タイムスタンプはメッセージから削除されています。

conn=2 op=1 SRCH base="o=example.com" scope=0 filter="(cn=Smith)"
conn=2 op=1 RESULT err=0 tag=101 nentries=10000 notes=U

システムで頻繁に索引リストのしきい値を超える場合、しきい値を増加して、パフォーマンスを向上させることを検討してください。次の手順では、dsconf set-server-propコマンドを使用を使用して、all-ids-thresholdプロパティを変更します。

索引リストのしきい値を変更するには:

このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。

  1. 索引リストのしきい値を調整します。

    次の任意のレベルで、索引リストのしきい値を調整できます。

    • インスタンス・レベル:

      dsconf set-server-prop -h host -p port all-ids-threshold:value
    • 接尾辞レベル:

      dsconf set-suffix-prop -h host -p port suffix-DN all-ids-threshold:value
    • エントリ・レベル:

      dsconf set-index-prop -h host -p port suffix-DN all-ids-threshold:value
    • 検索タイプ別の索引レベル:

      dsconf set-index-prop -h host -p port suffix-DN all-ids-threshold search-type:value

      search-typeは次のいずれかとなります。

      • eq-enabled等価性

      • pres-enabled実在性

      • sub-enabledサブストリング

      all-ids-thresholdプロパティは、近似索引には構成できません。

    DSCCを使用して、検索タイプ別の索引レベルでしきい値を設定できます。詳細は、Directory Serverのオンライン・ヘルプを参照してください。

  2. 接尾辞の索引を再生成します。

    「索引を生成するには:」を参照してください。

  3. データベースのキャッシュ・サイズが古いall IDsしきい値用に調整され、かつサーバーに十分な物理メモリーがある場合は、データベースのキャッシュ・サイズの増量を検討します。

    データベースのキャッシュ・サイズをall IDsしきい値の増加量の25パーセント増量します。

    つまり、all IDsしきい値を4000から6000に増加した場合、インデックス・リストのサイズの増加を見込んで、データベースのキャッシュ・サイズを約12.5パーセント増加します。

    データベースのキャッシュ・サイズは、属性dbcachesizeを使用して設定します。本番サーバーに変更を適用する前に、最適なサイズを実験的に見つけてください。

接尾辞の索引再作成

索引ファイルが破損した場合、または属性の索引を変更した場合、接尾辞の索引を再作成し、対応するデータベース・ディレクトリの索引ファイルを再作成する必要があります。ディレクトリ・サーバーの実行中に、または接尾辞の再初期化により、接尾辞の索引を再作成できます。

Directory Server稼働中における接尾辞の索引作成

接尾辞の索引を再作成すると、サーバーは接尾辞に含まれるエントリをすべて調べ、索引ファイルを再構築します。索引の再作成中、接尾辞の内容は読取り専用となります。サーバーでは、索引を再作成するすべての属性の接尾辞全体がスキャンされるため、非常に多くのエントリがある接尾辞では、このプロセスに数時間かかる場合があります。この時間は構成する索引によっても異なります。さらに、接尾辞の索引の再作成中は、接尾辞を使用できません。

接尾辞の索引すべてを再作成するには:

このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。

再初期化による接尾辞の索引の再作成

接尾辞を再初期化すると、新しい内容がインポートされます。これは接尾辞の内容が置き換えられて、新しい索引ファイルが作成されることを意味します。

再初期化により接尾辞の索引を再作成するには:

このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。

  1. 「リフェラルの設定および接尾辞の読取り専用化」の説明どおりに、接尾辞を読取り専用に設定します。
  2. 「LDIFへのバックアップ」の説明どおりに、接尾辞全体をLDIFファイルにエクスポートします。
  3. 「LDIFファイルからのデータのインポート」の説明どおりに、同じLDIFファイルをインポートして、接尾辞を再初期化します。

    初期化中は接尾辞を使用できません。初期化が完了すると、構成されたすべての索引の使用準備が整います。

  4. 「リフェラルの設定および接尾辞の読取り専用化」の説明どおりに、接尾辞を再度書込み可能に設定します。