2. Directory Serverのインスタンスと接尾辞
7. Directory Serverのパスワード・ポリシー
8. Directory Serverのバックアップとリストア
9. Directory Serverのグループ、ロールおよびCoS
16. Directory Proxy Serverのツール
17. Directory Proxy Serverのインスタンス
19. Directory Proxy Serverの証明書
20. Directory Proxy Serverのロード・バランシングとクライアント・アフィニティ
22. Directory Proxy Serverによる仮想化
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の管理
この項では、特定の属性に対する索引の管理方法について説明します。この項には、索引の作成、変更および削除に関する情報が含まれます。仮想リスト表示(VLV)操作に固有の手順は、「参照索引の管理」を参照してください。
dsconf infoコマンドを実行して、索引の作成が必要な属性をチェックすることもできます。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
$ dsconf list-indexes -h host -p port -v suffix-DN
注意: 新しいシステム索引は作成できません。Directory Serverで内部的に定義される既存のシステム索引のみが維持されます。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
dsconf create-indexコマンドライン・ユーティリティを使用して、索引を作成する属性を指定することにより、新しい索引情報を構成します。
たとえば、preferredLanguage 属性の索引エントリを作成するには、次のコマンドを使用します。
$ dsconf create-index -h host -p port dc=example,dc=com preferredLanguage
注意: コマンドdsconf create-indexでは索引構成が設定されますが、検索に必要な索引ファイルが実際に作成されるわけではありません。索引ファイルの生成はパフォーマンスに影響を及ぼす場合があります。索引作成手順をより厳密に制御するには、新しい索引構成が作成された後に、手動で索引ファイルを生成します。
索引の作成時には、常に属性の基本名を使用します。属性の別名は使用しないでください。属性の基本名とは、スキーマの属性にリストされる最初の名前です。たとえば、userid属性ではuidとなります。
dsconf create-indexコマンドにより、デフォルト・プロパティで索引が作成されます。これらのプロパティを変更するには、dsconf set-index-propコマンドを使用します。索引のプロパティ変更の詳細は、「索引を変更するには:」を参照してください。
注意: 索引の構成を変更する場合、その変更を反映させて索引を再度使用するには、索引の再作成が必要です。
「索引を生成するには:」を参照してください。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
$ 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
「索引を生成するには:」を参照してください。
次の手順では、索引ファイルを生成して、新規または変更後の索引を検索できるようにします。属性の索引構成を変更する場合、その属性をフィルタとして含むすべての検索の索引が作成されるとは限りません。その属性を含む検索が確実に実行されるようにするには、次の手順のコマンドを使用して、属性の索引構成を作成または変更するたびに、既存の索引を再生成します。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
新しい索引ファイルをオンラインで生成します。
$ dsconf reindex -h host -p port [-t attr] suffix-DN
-tは、すべての属性ではなく、指定された属性のみ索引を再作成することを指定します。
たとえば、preferredLanguage索引を再生成するには、次を入力します。
$ dsconf reindex -h host -p port -t preferredLanguage dc=example,dc=com
dsconf reindexコマンドを実行中でも、接尾辞の内容はサーバー経由で使用できます。ただし、コマンドが完了するまで検索の索引は作成されません。索引の再作成はリソースを大量に消費するタスクであり、サーバーでの他の操作のパフォーマンスに影響する可能性があります。
新しい索引ファイルをオフラインで生成します。
$ dsadm reindex -t attr instance-path suffix-DN
たとえば、preferredLanguage索引を再生成するには、次を入力します。
$ dsadm reindex -t preferredLanguage /local/dsInst dc=example,dc=com
接尾辞の再初期化により、オフラインですべての索引を迅速に再生成します。
接尾辞を初期化した場合、すべての索引ファイルは自動的に再生成されます。ディレクトリのサイズにもよりますが、通常、接尾辞の再初期化は複数の属性の索引再作成よりも高速となります。ただし、初期化中は接尾辞を使用できません。詳細は、「再初期化による接尾辞の索引再作成」を参照してください。
索引の解析では、特にフィルタで指定された値など、ユーザーのリクエストから検索フィルタの使用パターンを収集し、さらに索引ファイル内でそれらの値を調べることが必要となります。内部的にまたはユーザーにより生成された検索リクエストが処理されると、最初のフェーズで返す可能性のあるエントリを検出するために索引が使用されます。検索フィルタにもよりますが、指定された属性のいずれかの索引で一致するエントリが多すぎる場合(ALLID)、その検索では索引作成なしとなります(アクセス・ログ内のnotes=U)。いずれの場合でも、収集されたすべてのエントリ(またはDIT全体)は、実際に検索結果を返すためのフィルタと一致しています。
注意: ALLIDと一致するすべての索引の値で検索の索引作成が強制されることにならないよう、Directory Serverでは検索の最適化が試みられます。
dsconf analyze-index-filtersコマンドが有効な場合、Directory Server検索フィルタがその統計とともに表示されます。
$ 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
$ 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である。
いくつかの属性は索引が作成されていない(roomNumber、departmentNumber)。
合計4071のエントリがroomNumber=1*フィルタと一致している。
いくつか索引が一部のフィルタの使用に合うように構成されている(telephoneNumber=1*)。
$ dsconf create-index -p port-number o=example.com roomNumber
$ 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.
必要に応じて、出力の最後に示される適切な手順に従います。
索引フィルタ・アナライザを再起動するには、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を使用して、索引ファイルのスナップショットを取得します。
$ dsadm stop INSTANCE_PATH
$ 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のオンライン・ヘルプを参照してください。
$ dsconf delete-index -h host -p port suffix-DN attr-name
たとえば、次のコマンドにより、preferredLanguage属性の索引がすべて削除されます。
$ dsconf delete-index -h host -p port dc=example,dc=com preferredLanguage
デフォルトの索引を削除する際は、Directory Serverの機能に影響する可能性があるので、十分に注意してください。
システム索引リストのサイズが索引リストのしきい値を超えると、検索が遅くなる場合があります。索引リストのしきい値とは、各索引キーの値の最大数です。索引リストのしきい値サイズを超えたかどうかを判別するには、アクセス・ログを調べます。アクセス・ログの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のオンライン・ヘルプを参照してください。
次の任意のレベルで、索引リストのしきい値を調整できます。
インスタンス・レベル:
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のオンライン・ヘルプを参照してください。
「索引を生成するには:」を参照してください。
データベースのキャッシュ・サイズをall IDsしきい値の増加量の25パーセント増量します。
つまり、all IDsしきい値を4000から6000に増加した場合、インデックス・リストのサイズの増加を見込んで、データベースのキャッシュ・サイズを約12.5パーセント増加します。
データベースのキャッシュ・サイズは、属性dbcachesizeを使用して設定します。本番サーバーに変更を適用する前に、最適なサイズを実験的に見つけてください。
索引ファイルが破損した場合、または属性の索引を変更した場合、接尾辞の索引を再作成し、対応するデータベース・ディレクトリの索引ファイルを再作成する必要があります。ディレクトリ・サーバーの実行中に、または接尾辞の再初期化により、接尾辞の索引を再作成できます。
接尾辞の索引を再作成すると、サーバーは接尾辞に含まれるエントリをすべて調べ、索引ファイルを再構築します。索引の再作成中、接尾辞の内容は読取り専用となります。サーバーでは、索引を再作成するすべての属性の接尾辞全体がスキャンされるため、非常に多くのエントリがある接尾辞では、このプロセスに数時間かかる場合があります。この時間は構成する索引によっても異なります。さらに、接尾辞の索引の再作成中は、接尾辞を使用できません。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
$ dsconf reindex -h host -p port suffix-DN
たとえば、dc=example,dc=com接尾辞の索引すべてを初期化するには、次のコマンドを使用します。
$ dsconf reindex -h host -p port dc=example,dc=com
接尾辞を再初期化すると、新しい内容がインポートされます。これは接尾辞の内容が置き換えられて、新しい索引ファイルが作成されることを意味します。
このタスクの実行には、DSCCが使用できます。詳細は、「Directory Service Control Centerのインタフェース」およびDSCCのオンライン・ヘルプを参照してください。
初期化中は接尾辞を使用できません。初期化が完了すると、構成されたすべての索引の使用準備が整います。