この章では、Oracle Internet Directoryインストールのチューニングとサイズ設定に関するガイドラインを示します。内容は次のとおりです。
11gリリース1(11.1.1)からOracle Enterprise Manager Fusion Middleware Controlの一部としてOracle Internet Directoryのサイズ設定とチューニングのウィザードが提供されます。このウィザードを使用して、デプロイメントのサイズ設定とチューニングの推奨事項を得ることができます。「チューニングとサイズ設定ウィザードを使用した推奨事項の取得」を参照してください。
この概要ではOracle Internet Directoryのチューニングに関する推奨事項を示します。項目は次のとおりです。
この章の推奨事項の多くは、Oracle Internet Directoryのシステム構成属性とレプリケーション構成属性の変更を必要とします。これらの属性については、第9章「システム構成属性の管理」および第39章「レプリケーション構成属性の管理」で説明されています。詳細は、『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』を参照してください。
チューニングは、ディレクトリのパフォーマンスを向上させるためのパラメータの調整です。Oracle Internet Directoryのデフォルト構成では、ほとんどすべてのデプロイメントでチューニングを必要とします。この項に記載されている要件と推奨事項を十分に確認してください。
ここでは、Oracle Databaseインスタンスのパラメータの適切な最小値の例を示します。
表33-1 Oracle Databaseインスタンスのパラメータの最小値
Oracle Databaseインスタンスのパラメータ設定の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。
表33-2に、この項の推奨事項の要約を示します。
LDAPアプリケーション・トラフィックを処理するOracle Internet Directoryサーバー・インスタンスのプロセスとスレッドの数をチューニングします。これは全体のパフォーマンスに大きく影響します。表33-2のorclmaxcc
およびorclserverprocs
の推奨される設定を参照してください。
レプリケーションまたはOracle Directory Integration Platformをデプロイしない場合、変更ログの生成を無効化します。属性orclgeneratechangelog
を0
に設定します。
ディレクトリに参照エントリがない場合、LDAP検索で参照をスキップします。orclskiprefinsql
を1に設定します。これはパフォーマンスに大きく影響します。
アイドルLDAP接続を開いたままにせず、一定期間の経過後閉じます。これによって接続の不必要な増加を防ぐことができます。たとえば、orclldapconntimeout
を60分に設定します。
10g(10.1.4.0.1)では、「Oracle Internet Directoryサーバー管理機能」で説明しているように、操作統計追跡のために構成されていないユーザーに対してのみこれを設定できます。
注意:
|
LDAP検索操作のベース識別名がディレクトリになく、クライアントで詳細なMatchDN情報が必要ない場合、これを無効にします。orclmatchdnenabled
を0に変更します。
表33-2 LDAPサーバーの属性のチューニング
属性 | デフォルト | 推奨値 | 注意 |
---|---|---|---|
2 |
10 |
サーバーの再起動が必要です。 |
|
1 |
Oracle Internet DirectoryノードでのCPUソケットの数 |
. |
|
0 |
1 |
この変更を強くお薦めします。LDAP参照エントリがある場合は変更しないでください。LDAP参照エントリは共通ではありません。 サーバーの再起動が必要です。 |
|
1 |
0 |
レプリケーションまたはOracle Directory Integration Platformをデプロイしない場合のみ、変更ログの生成を無効化します。 |
|
0(タイムアウトなし) |
値は変動(一般的な値は60) |
統計追跡用に構成されているユーザーはタイムアウトしません。 |
|
1 |
0 |
検索のベース識別名が存在しないときに、アプリケーションで詳細なMatchDN情報を必要としない場合のみ無効にします。 |
Oracle Enterprise Manager Fusion Middleware Controlを使用したorclserverprocs
、orclldapconntimeout
およびorclmatchdnenabled
の構成の詳細は、「Fusion Middleware Controlを使用したインスタンス固有の構成エントリ内でのパフォーマンス属性の変更」を参照してください。
Oracle Enterprise Manager Fusion Middleware Controlを使用したorclskiprefinsql
またはorclmatchdnenabled
の構成の詳細は、「Fusion Middleware Controlを使用した共有パフォーマンス属性の変更」を参照してください。
これらの属性とorclgeneratechangelog
のコマンドラインからの構成の詳細は、「ldapmodifyを使用したパフォーマンス関連のシステム構成属性の変更」を参照してください。
LDAPコマンドを使用して多数のエントリをOracle Internet Directoryに追加すると、ディレクトリのパフォーマンスが低下する場合があります。その場合は、データベース統計を更新します。「oidstats.sqlを使用したデータベース統計の更新」を参照してください。
通常、この操作が必要になるのは、Oracle Internet Directoryのインストール後に初めてエントリをバルクで追加する場合のみです。データベース統計は夜間に自動的に更新されるため、この操作を再度実行する必要はありません。ただし、データ・フットプリントを変更していないのにLDAP操作が突然遅くなった場合、oidstats.sql
を一度実行してパフォーマンスが改善するかどうか確認することを検討してください。パフォーマンスの低下は、データベースSQL実行計画の変更による場合があります。この場合、oidstats.sqlによって改善します。
関連項目: SQLチューニングの詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。 |
bulkload
ツールを使用してエントリを追加する場合、データベース統計の更新は不要です。データベース統計は、bulkload
コマンドによって自動的に更新されます。
前述の項で推奨されている変更を行った後、デプロイメントに固有の追加変更を行うことができます。この項の推奨事項が環境に適切かどうか慎重に検討してください。
Oracle Directory Integration Platformまたはレプリケーションと一緒にOracle Internet Directoryをデプロイする場合、これらの2つのサーバーに専用のLDAPサーバー・インスタンスを使用するとパフォーマンスが向上します。この場合、デフォルトのOracle Internet Directory LDAPインスタンスはLDAPアプリケーションのトラフィックを処理し、2番目のインスタンスはレプリケーション・サーバーおよびOracle Directory Integration PlatformサーバーからのLDAPリクエストを処理できます。
第8章「Oracle Internet Directoryインスタンスの管理」の説明に従って、追加のサーバー・インスタンスを作成します。
新規インスタンスでorclmaxcc
を10
に、orclserverprocs
を1
にノードのプロセッサ・コアの数だけ設定します。
第8章「Oracle Internet Directoryインスタンスの管理」の説明に従って、サーバーを再起動します。
新規インスタンスが使用するSSLポートおよび非SSLポートを設定し、レプリケーションとOracle Directory Integration Platformがこれらのポートを指し示すように設定します。
orclmaxcc
およびorclserverprocs
を構成するには、「Fusion Middleware Controlを使用したインスタンス固有の構成エントリ内でのパフォーマンス属性の変更」および「ldapmodifyを使用したパフォーマンス関連のシステム構成属性の変更」を参照してください。
注意: Oracle Internet Directoryクラスタ構成(ラックマウントまたはマルチボックス)では、レプリケーション・サーバーは1つのハードウェア・ノードでのみ起動する必要があります。レプリケーション専用のLDAPサーバー・インスタンスは同じノードで起動する必要があります。Oracle Directory Integration Platformサーバーは異なるノードでもかまいません。 |
レプリケーション・トラフィックが重い場合、次の推奨事項が役立つことがあります。これらの変更を行う前に必ずトレードオフを理解しておいてください。表33-3に推奨事項の要約を示します。
読取り専用のレプリカ・コンシューマを持つ単一のマスターをデプロイする場合、競合解消をオフにすると、パフォーマンス・オーバーヘッドを低減できます。これを行うには、orclconflresolution
の値を0にします。
サプライヤがボトルネックの場合、サプライヤのorclthreadspersupplier
を増やします。コンシューマがボトルネックの場合、コンシューマのorclthreadspersupplier
を増やすこともできますが、並行処理が増えることによって変更ログのアプリケーションでの競合状態が生じ、結果的にHIQ変更が増えることに注意してください。
新規変更ログのリソースが増えるようorclchangeretrycount
を減らします。ただし、競合がある場合、これによってHIQ変更が増えます。
orclupdateschedule
を0に変更し、サーバー・プロセスの変更ログを1分間隔ではなくただちに行うようにします。これはサプライヤとコンシューマの両方で行います。
新規変更の処理により多くのリソースを使用できるようorclhiqschedule
を6時間(360分)に増やします。ただし、orclchangeretrycount
が小さく、orclthreadspersupplier
が大きい場合、HIQ変更が増えることに注意してください。orclhiqschedule
も増やした場合、HIQの一部の変更でレプリケートに時間がかかります。
表33-3にこれらの推奨事項の要約を示します。
表33-3 レプリケーション属性
属性 | デフォルト | 推奨値 | 注意 |
---|---|---|---|
転送=1 適用=5 |
転送スレッドを1に設定し、適用スレッドを10以上に設定 |
サプライヤがボトルネックの場合に最も有効です。 |
|
10 |
4 |
変更ログに追加リソースが提供されますが、HIQが増加する場合があります。 |
|
1 |
0 |
変更ログがすぐに処理されます。 |
|
10分 |
360分 |
新規の変更を処理するために追加リソースが提供されます。 |
|
1 |
0 |
読取り専用のレプリカ・コンシューマを持つ単一のマスターをデプロイする場合のみ変更します。 |
これらのレプリケーション属性の設定の詳細は、「パフォーマンス関連のレプリケーション構成属性の設定」を参照してください。
デフォルトでは、Oracle Internet Directoryはデータベース・ジョブを実行して、変更ログ、サーバー管理機能統計およびその他のデータをパージします。各ジョブは、午前0時から15分間隔で開始されます。表33-4に示すパラメータを変更することにより、この構成をデプロイメント要件に合うよう変更できます。
これらの属性は、ldapmodify
またはOracle Directory Services Managerを使用して変更できます。「ガベージ・コレクションの構成属性の設定」を参照してください。
「レプリケーション・サーバー構成のチューニング推奨事項」での説明のとおり、デフォルトのサーバーに加えて、Oracle Directory Integration Platformとレプリケーションに対して専用のLDAPサーバーを使用できます。Oracle Internet Directoryクラスタでは、すべてのOracle Internet DirectoryノードでデフォルトのLDAPインスタンスを起動しますが、Oracle Directory Integration Platformとレプリケーションを実行しているノードでは専用のインスタンスのみを起動します。
Oracle Internet Directoryを接続するデータベース・インスタンスについて十分に考慮してください。
クラスタ内のOracle Databaseインスタンス間のロード・バランシング、またはフェイルオーバー・モード用にOracle Internet Directoryを構成できます。
レプリケーションとOracle Directory Integration Platform専用のLDAPサーバー・インスタンスを使用する場合は、このインスタンスの接続文字列をフェイルオーバー用に構成できます。tnsnames.ora
で次の文字列を使用します。
(FAILOVER=ON)(LOAD_BALANCE=OFF)
bulkload
などのバルク操作の実行時には、ツールを1つのOracle Databaseインスタンスにのみ接続してすべての操作を実行します。
Oracle Internet Directoryインスタンスを次のように構成します。
LDAPアプリケーション・トラフィックを処理するノードごとに1つのOracle Internet Directoryインスタンス
1つのノードにOracle Internet Directoryレプリケーション・サーバーとOracle Directory Integration Platformサーバーのインスタンス
Oracle Internet Directoryは、デフォルトで有効なパスワード・ポリシーとパスワード検証プロファイルを備えています。特定のデプロイメントにおいてOracle Internet Directoryでパスワード・ポリシーを適用する必要がない場合は、パスワード・ポリシーを無効にできます。デフォルトで有効なパスワード検証プロファイルは、エンタープライズ・ユーザー・セキュリティやOracle Collaboration SuiteのOracle製品で必要とされる特定のパスワード検証の生成を制御します。他のOracle製品にOracle Internet Directoryがデプロイされていない場合は、すべてのパスワード検証プロファイルを無効にできます。
Oracle Directory Services Managerまたはldapmodify
を使用すると、パスワード・ポリシーおよびパスワード検証を無効にできます。第27章「パスワード・ポリシーの管理」および第29章「パスワード・ベリファイアの管理」を参照してください。
Oracle Internet Directoryサーバーのエントリ・キャッシュを使用すると、パフォーマンスの向上のためOracle Internet Directoryサーバーのプロセス・ヒープにLDAPエントリをキャッシュできます。エントリ・キャッシュの構成により効果が得られるのは、すべてまたは大部分のエントリがキャッシュ可能な場合のみです。
注意: サーバーのエントリ・キャッシュは、小規模なディレクトリ・デプロイメントでのみ効果的です。ここに記載したチューニング推奨事項には、前述の項のチューニング推奨事項と矛盾するものがあります。特定のデプロイメントに対するエントリ・キャッシュの適用性を確認し、次に列挙する考慮事項すべてに該当する場合にのみ、この項で説明するチューニングを導入してください。 |
次の条件を満たす場合にのみ、Oracle Internet Directoryサーバーのエントリ・キャッシュの使用を検討します。
Oracle Internet Directoryのエントリの総数をすべてまたはほとんどキャッシュできる場合。通常、これは32ビット・システムでOracle Internet Directoryのエントリが500K未満のデプロイメントです。
同時クライアントの数が少ない場合(通常は100未満)。
クラスタ構成を使用していない場合。
LDAPサーバー・インスタンスをマルチプロセスにする必要がない場合。
予想される更新率が非常に低い場合(特にグループ・エントリ)。
レプリケーションまたはOracle Directory Integration Platformに対して2つ目の専用のLDAPサーバー・インスタンスを使用していない場合。
Oracle Internet Directoryを使用しているアプリケーションが非常に少ない場合。
大きいバイナリ値やグループ・エントリがなく、バイナリおよびグループ・エントリでの更新が頻繁に実行されない場合。
エントリ・キャッシュを使用する利点は次のとおりです。
サブツリーおよび1レベルの有効範囲でのLDAP検索操作は約2倍速くなります。
ベース有効範囲でのLDAP検索操作は約5倍速くなります。
これらの利点は、エントリのすべて、または大半がキャッシュ可能な場合にのみ当てはまります。キャッシュ・ミスは、エントリ・キャッシュの無効化よりコストがかかります。
サーバーのエントリ・キャッシュは、表33-5に示す値を設定することで構成および最適化できます。
表33-5 サーバーのエントリ・キャッシュの構成
属性 | デフォルト | 推奨値 | 注意 |
---|---|---|---|
2 |
ノードのプロセッサ・コアの合計数 |
この属性を変更した後、サーバーを再起動します。 |
|
1 |
1 |
値が1を超えると、エントリ・キャッシュは自動的に無効化されます。この属性を変更した後、サーバーを再起動します。 |
|
1 |
1 |
||
200000000バイト |
ディレクトリの合計サイズ(バイト) |
LDIF形式のエントリ・サイズの3倍の見積もりをしてください。 |
|
100000 |
DIT内のエントリ総数 |
||
1000000 |
DIT内の最大エントリのサイズ(バイト) |
通常、最大エントリはグループ・エントリまたはバイナリ属性値のエントリです。 |
たとえば、DITの合計サイズが300Kで、300KのエントリのLDIF形式の合計サイズが500Mである場合、orclecacheenabledを1に、orclecachemaxsizeを1500000000に、orclecachemaxentriesを300000に設定します。最大のグループ・エントリまたはバイナリ値のエントリのサイズが10Mの場合、orclecachemaxentsizeを10000000に設定します。
属性を構成するには、「Fusion Middleware Controlを使用したインスタンス固有の構成エントリ内でのパフォーマンス属性の変更」および「ldapmodifyを使用したパフォーマンス関連のシステム構成属性の変更」を参照してください。
インスタンス固有の構成エントリ属性orcloptrackmaxtotalsize
およびorcloptracknumelemcontainers
は、セキュリティ・イベント追跡に使用するメモリー量を制御します。
属性orcloptrackmaxtotalsize
は、セキュリティ・イベント追跡で各タイプの操作に使用できるRAMの最大バイト数を指定します。ディレクトリ・サーバーが、1つの操作に関して収集される情報に設定したこの制限を超えると、サーバーは新しい情報の収集を停止し、サーバー・ログ・ファイルに適切なメッセージを記録します。比較操作の場合、ディレクトリ・サーバーではこの属性値の2倍のメモリーを使用します。これは、比較操作を実行するユーザーと、パスワードを比較されているユーザーに関する情報を合せた量です。orcloptrackmaxtotalsize
のデフォルト値は100000000バイトで、ほとんどのデプロイメントはこれで十分です。この値は200MBまで増やせます。orcloptrackmaxtotalsize
の変更の詳細は、「ldapmodifyを使用したパフォーマンス関連のシステム構成属性の変更」のインスタンス固有の構成属性の例を参照してください。
属性orcloptracknumelemcontainers
によって、Oracle Internet Directoryサーバーでセキュリティ・イベント追跡に割り当てるメモリー内キャッシュ・コンテナの数を選択できます。この属性にはサブタイプが2つあります。1stlevel
と2ndlevel
です。1stlevel
サブタイプは、操作を実行するユーザーに関する情報を格納するためのメモリー内キャッシュ・コンテナの数を設定するためのものです。2ndlevel
サブタイプは比較操作にのみ使用でき、詳細比較操作統計がプログラムされている場合にユーザー・パスワードが比較および追跡されるユーザーに関する情報用のメモリー内キャッシュ・コンテナの数を設定します。両サブタイプのデフォルト値は256
です。これらのサブタイプに対する適切な値は、次のように環境内のユーザー数およびディレクトリへのアクセスに使用されるアプリケーションの数によって異なります。
多数のユーザーにかわって複数のアプリケーションが操作を実行するデプロイメントでは、アプリケーションの数にディレクトリに直接アクセスするエンド・ユーザー用の数百を足した数に比例して1stlevelを設定します。2ndlevelは、エンド・ユーザーの数に比例して設定します。
ユーザー自身が操作を行うデプロイメントでは、1stlevelはエンド・ユーザーの数に比例して設定し、2ndlevelは25などの小さい値に設定します。
通常、比例値は5分の1です。ほとんどの環境で10分の1から2分の1までの割合が適切です。
デプロイメントでの必要に応じて、セキュリティ・イベント収集が有効な場合のみorcloptracknumelemcontainersに値を設定します。
この項では、パフォーマンスを改善することはあるが、優先度が低いと考えられている属性について説明します。
属性orclsizelimit
は、検索で返される最大エントリ数を制御します。デフォルト値は1000です。この値を非常に大きくすると、サーバーのパフォーマンスに影響します。また、この属性は、レプリケーション・サーバーが一度に処理できる変更ログの最大数を制限する役割も果します。
「ldapmodifyを使用したパフォーマンス関連のシステム構成属性の変更」を参照してください。
インスタンス固有のサブエントリ属性orclenablegroupcache
は、権限グループおよびACLグループをキャッシュするかどうかを制御します。このキャッシュを使用すると、ユーザーのアクセス制御評価のパフォーマンスが向上します。
グループ・キャッシュは、権限グループ・メンバーシップが頻繁に変更されない場合に使用してください。権限グループ・メンバーシップが頻繁に変更される場合は、グループ・キャッシュはオフにすることをお薦めします。これは、このような場合、グループ・キャッシュの計算によってオーバーヘッドが増加するためです。デフォルトは1(有効)です。0(ゼロ)に変更すると、無効になります。
「ldapmodifyを使用したパフォーマンス関連のシステム構成属性の変更」を参照してください。
LDAPクライアントが操作を開始し、構成された秒数の間サーバーに応答しないと、サーバーは接続を閉じます。この秒数は、インスタンス固有の構成エントリのorclnwrwtimeout
属性によって制御されます。デフォルトは30秒です。
orclnwrwtimeout
の変更には、Fusion Middleware Controlまたはコマンドラインを使用できます。「Fusion Middleware Controlを使用したインスタンス固有の構成エントリ内でのパフォーマンス属性の変更」を参照してください。
この項では、「基本的なチューニング推奨事項」以外のチューニングが必要な特定の使用例について説明します。
大規模なbulkdelete
操作を予定している場合、次のタスクを実行します。
データベース初期化パラメータsga_target
が、「データベース・パラメータのチューニング推奨事項」に記載のとおりチューニングされていることを確認します。
データベース初期化パラメータlog_buffer
を10Mに設定します。これよって、パフォーマンスの利点が増します。
100MBより大きいデータベースREDOログ・ファイルが少なくとも3つあることを確認します。
UNDO表領域の合計サイズが少なくとも1GBであることを確認します。
次の項「負荷の高いLDAP書込み操作のチューニング推奨事項」のREDOログおよびUNDO表領域に関する推奨事項に従います。
LDAP書込み操作の負荷が高い場合や、多くのbulkdelete
操作を実行する場合は、次の値のチューニングを検討します。
データベースREDOログ・ファイルのサイズまたは数を、合計サイズが1000〜1500MBになるよう増やします。他に考慮すべき要素によってREDOログの合計サイズは変わります。
ディスクの構成によっては、REDOログ・ファイルを専用のディスク・セットに置く方が効果的な場合があります。
データ・ファイルをUNDO表領域に追加し、UNDO表領域を大きくします。ほとんどのデプロイメントは2〜4GBで十分です。
Oracle Internet Directoryサーバーのエントリ・キャッシュは使用しないでください。「サーバー・エントリ・キャッシュのチューニング推奨事項」を参照してください。
Oracle Internet DirectoryレプリケーションもDIPもデプロイされていない場合、変更ログの生成を無効にします。「LDAPサーバー属性のチューニング推奨事項」を参照してください。
表33-6に、この項で説明したREDOログとUNDO表領域の推奨事項の要約を示します。
orclinmemfiltprocess
属性について、「複雑な検索フィルタのパフォーマンスの最適化」で説明されています。
Oracle Identity Federation関連のデフォルトで含まれているorclinmemfiltprocess
フィルタ(objectclass=orclfeduserinfo)
以外に次の形式のフィルタを使用すると、Oracle Identity Federation環境に効果的な場合があります。
(orclfedserverid=local_oif_server_id)
(orclfedproviderid=providerid_of_remote_server)
(orclfedfederationtype=n)
orclfedserverid
は問合せを行うOracle Identity Federationサーバーを表します。orclfedproviderid
はリモートSAMLサーバーの識別子です。orclfedfederationtype
は1
または3
です。Oracle Identity Federationがアイデンティティ・プロバイダで、リモート・プロバイダがサービス・プロバイダの場合、orclfedfederationtype
の値として1
を使用します。Oracle Identity Federationがサービス・プロバイダで、リモート・プロバイダがアイデンティティ・プロバイダの場合、3
を使用します。
多くのSAMLサーバーと協働できるようデプロイメントが構成されるため、orclfedproviderid
フィルタとorclfedfederationtype
フィルタが複数ある場合があります。
次に例を示します。
(orclfedserverid=my_oif_server)
(orclfedproviderid=http://server.example.com:7499/fed/idp)
(orclfedproviderid=http://server2.example.com:7492/fed/idp)
(orclfedfederationtype=1)
(orclfedfederationtype=3)
この項の項目は次のとおりです。
member
またはuniquemember
属性のいずれかの値が、数千の属性値を持つグループ・エントリの検索では、待機時間が長くなる可能性があります。待機時間が受け入れ難いほど長いことがわかった場合、これを減らせる方法があります。
最も簡単な方法は、検索する属性数を減らすことです。グループ・エントリの属性をすべて取得する必要がないのであれば、待機時間を最適化するために検索リクエストに必須属性を指定します。
必須属性を指定してもなお待機時間が長すぎる場合は、ラージ・グループ・エントリのエントリ・キャッシュへのキャッシュを試みることができます。これを行うには、インスタンス固有の構成エントリのorclEcacheMaxEntSize
属性の値を増やします。
cn=componentname,cn=osdldapd,cn=subconfigsubentry
この属性は、キャッシュ・エントリの最大サイズを制御します。デフォルト値は1Mです。ラージ・グループ・エントリのサイズがorclEcacheMaxEntSize
の値より大きい場合は、この値を、ラージ・グループ・エントリを確実にキャッシュできる大きな値に変更します。
注意: ラージ・グループに対する更新が頻繁になることが予想される場合は、このチューニング方法を使用しないでください。エントリ・キャッシュが無効な構成を使用します。 |
通常の検索リクエストを処理する場合、ディレクトリ・サーバーはSQL文をOracle Databaseに送信します。指定された属性のレスポンス時間が、属性の値によって大きく異なる場合、この属性は偏りのある属性であるとみなされます。たとえば、my_attribute=value1
とmy_attribute=value2
の検索で、レスポンス時間が大きく異なる場合、my_attribute
は偏りのある属性であるとみなされます。
このような属性を、DSA構成エントリにあるorclskewedattribute
属性の値として追加することにより、検索時のレスポンス時間を均一にできます。DSA構成エントリの識別名は次のとおりです。
cn=dsaconfig,cn=configsets,cn=oracle internet directory
デフォルトでは、objectclass
属性は、orclskewedattribute
属性内に値としてリストされます。
ldapmodify
を使用してorclskewedattribute
の値を変更できます。「Fusion Middleware Controlを使用したインスタンス固有の構成エントリ内でのパフォーマンス属性の変更」および「ldapmodifyを使用したパフォーマンス関連のシステム構成属性の変更」を参照してください。
Oracle Internet Directoryはクライアント・アプリケーションからLDAP検索フィルタを受け取ると、フィルタをSQL問合せとしてOracle Databaseに送信します。クライアント・アプリケーションで、ディレクトリ内の多数のエントリと一致する条件を含むフィルタを送信する場合があります。たとえば、次のようなフィルタがあります。
(&(uid=msmith)(objectclass=inetorgperson)(orclisenabled=TRUE)
)
このフィルタの条件(objectclass=inetorgperson)
と(orclisenabled=TRUE)
は、ほとんどすべてのエントリと一致します。Oracle Databaseでのフィルタ全体の実行には非常に多くのリソースを必要とします。パフォーマンスを向上させるために、Oracle Internet Directoryが、データベースではなく自身のメモリーでフィルタの一部を実行するよう指定できます。これを行うには、DSA構成エントリの複数値属性orclinmemfiltprocess
を使用します。
cn=dsaconfig,cn=configsets,cn=oracle internet directory
orclinmemfiltprocess
が構成されている場合、Oracle Internet DirectoryがLDAP検索を受け取るたびに次のイベントが発生します。
Oracle Internet Directoryは、SQL問合せを形成する前にorclinmemfiltprocess
に構成されているすべての条件を削除します。
Oracle Internet Directoryは、SQL問合せをOracle Databaseに送信します。
Oracle Databaseは、SQL問合せの結果のエントリをOracle Internet Directoryに送信します。
Oracle Internet Directoryは、クライアントから送信された元のフィルタ(orclinmemfiltprocess
の条件)をメモリー内のエントリに適用します。
Oracle Internet Directoryは、フィルタと一致するエントリをクライアントに送信します。
たとえば、orclinmemfiltprocess
が(objectclass=inetorgperson)(orclisenabled=TRUE)
に設定されているとします。Oracle Internet Directoryは検索(&(uid=msmith)(objectclass=inetorgperson)(orclisenabled=TRUE))
を受け取ると、パラメータ(uid=msmith)
のみを含むフィルタをデータベースに送信します。データベースが返したエントリを受信すると、Oracle Internet Directoryはフィルタ(objectclass=inetorgperson) (orclisenabled=TRUE)
をこれらのエントリに適用します。
デフォルトでは、orclinmemfiltprocess
は次の値に設定されています。
(objectclass=inetorgperson)
(objectclass=oblixorgperson)
(|(!(obuseraccountcontrol=*))(obuseraccountcontrol=activated))
(|(obuseraccountcontrol=activated)(!(obuseraccountcontrol=*)))
(objectclass=*)
(objectclass=oblixworkflowstepinstance)
(objectclass=oblixworkflowinstance)
(objectclass=orcljaznpermission)
(obapp=groupservcenter)(!(obdynamicparticipantsset=*))
(objectclass=orclfeduserinfo)
ldapmodify
を使用してorclinmemfiltprocess
の値を変更できます。「Fusion Middleware Controlを使用したインスタンス固有の構成エントリ内でのパフォーマンス属性の変更」および「ldapmodifyを使用したパフォーマンス関連のシステム構成属性の変更」を参照してください。
ある条件下では、Oracle Internet Directoryはorclinmemfiltprocess
を無視してフィルタ全体をデータベースに送信します。これが実行されるのは、Oracle Internet Directoryが受信するフィルタが次の条件を満たしている場合です。
1つのパラメータ、つまり1つの属性/値ペアのみでフィルタが構成されている場合。
orclinmemfiltprocess
で指定されている条件以外のフィルタ条件がフィルタにない場合。
orclinmemfiltprocess
で指定されている条件に適用されるOR条件がフィルタにある場合。
orclinmemfiltprocess
で指定されている条件と同じ条件が異なる順序でフィルタに含まれている場合。
次の各例でこれらの条件について説明します。これらの例ではすべて、orclinmemfiltprocess
が(objectclass=inetorgperson)(employeetype=Contract)
に設定されています。
例
例A
(&(manager=cn=john doe)(objectclass=inetorgperson) (employeetype=Contract))
Oracle Internet Directoryはフィルタ(&(manager=cn=john doe))
をデータベースに送信します。
例B
(&(uid=rmsmith)((objectclass=inetorgperson)(employeetype=Contract)))
Oracle Internet Directoryは(&(uid=rmsmith))
のみをデータベースに送信し、データベースが返したエントリにフィルタ(&(objectclass=inetorgperson)(employeetype=Contract))
を適用します。
例C
(|(uid=rmsmith)(objectclass=inetorgperson) (employeetype=Contract))
このフィルタでは、orclinmemfiltprocess
と一致する条件がOR条件に含まれます。Oracle Internet Directoryは、このフィルタをそのままデータベースに送信します。
例D
(&(uid=rmsmith)(employeetype=Contract) (objectclass=inetorgperson))
このフィルタの条件の一部がorclinmemfiltprocess
と一致しても、条件の順序が異なるため、Oracle Internet Directoryはフィルタ全体をデータベースに送信します。Oracle Internet Directoryがこのフィルタをデータベースに送信しないようにするには、orclinmemfiltprocess
に(employeetype=Contract)(objectclass=inetorgperson)
を追加します。
例E
(|(&(uid=rmsmith)(sn=smith)(objectclass=inetorgperson)(employeetype=Contract))
このフィルタでは、orclinmemfiltprocess
と一致する条件がOR条件に含まれます。Oracle Internet Directoryは、このフィルタをそのままデータベースに送信します。
例F
(&(|(uid=rmsmith)(sn=smith))(objectclass=inetorgperson)(employeetype=Contract)))
このフィルタにOR演算子が含まれていても、フィルタはorclinmemfiltprocess
と一致する条件に適用されません。Oracle Internet Directoryは(&(|(uid=rmsmith)(sn=smith)))
をディレクトリに送信し、データベースが返したエントリにフィルタ(&(manager=cn=john doe)(&(objectclass=inetorgperson) (employeetype=Contract))
を適用します。
複数のフィルタの構成
アプリケーションが複数のフィルタを送信し、あるフィルタの条件が別のフィルタの条件のスーパーセットである場合は、両方の値に対してorclinmemfiltprocess
を構成する必要があります。たとえば、アプリケーションが次の2つのフィルタを送信するとします。
(&(uid=rmsmith)(objectclass=inetorgperson)(employeetype=Contract))
(&(uid=rmsmith)(objectclass=inetorgperson)(employeetype=Contract)(departmentNumber=627))
(departmentNumber=627)
は多くのエントリと一致します。orclinmemfiltprocess
を次のように構成する必要があります。
(objectclass=inetorgperson)(employeetype=Contract)
(departmentNumber=627)
Linux、Solarisおよび他のUNIXライクなオペレーティング・システムを使用している場合は、次の各ツールを理解しておくことをお薦めします。
Microsoft Windowsを使用している場合は、次のツールを理解しておくことをお薦めします。
ツール | 説明 |
---|---|
Windowsパフォーマンス・モニター | システム内のイベントのカスタマイズされたビューを表示します。 |
Windowsタスク・マネージャ | システムで実行されている主なタスクの最高レベルの出力(UNIXのtop と同様)を提供します。 |
Oracle Databaseを使用する場合は、次のツールを理解しておくことをお薦めします。
DBMS_STATSパッケージのANALYZEファンクション
関連項目:
|
オペレーティング・システム・ツール以外に、カスタマ環境で使用されているLDAPアプリケーションも待機時間やスループットの測定方法を提供しています。
さらに、様々なデータベースodsスキーマ・オブジェクトを分析して統計を見積もるために、$
ORACLE_HOME
/ldap/admin
にあるデータベース統計収集ツール(oidstats.sql)が提供されています。「oidstats.sqlを使用したデータベース統計の更新」を参照してください。
Oracle Enterprise Manager Fusion Middleware Controlには、Oracle Internet Directoryのチューニングおよびサイズ設定に便利なツールが用意されています。
このウィザードを使用して、システムのチューニングとサイズ設定の推奨事項を取得します。「チューニング」、「サイズ設定」または「両方」を選択できます。「サイズ設定」または「両方」を選択する場合、「基本」または「拡張」を選択できます。
チューニング
「Oracle Internet Directory」メニューから、「管理」を選択し、「チューニングとサイズ設定」を選択します。
「作成」アイコンをクリックしてウィザードを起動します。
必要に応じて「タイプ選択」ページで「チューニング」を選択します。
ウィザードには、「ハードウェア」、「機能」、「ロード」、「データ特性」および「ガベージ・コレクション」の各ページが表示されます。
各ページで、テキスト・フィールドに値を指定(またはデフォルト値を使用)し、質問ごとに「はい」または「いいえ」を選択します。一部の選択肢は前の選択内容に応じて灰色になっている場合があります。ほとんどのフィールドに、カーソルをフィールド上に移動すると表示されるツールチップが用意されています。
次のページに進むには「次へ」、前のページに戻るには「戻る」をクリックします。ウィザードを中断するには、「取消」をクリックします。
「確認」ページで、入力したデータを確認します。指定内容を変更するには「戻る」、レポートを表示するには「終了」をクリックします。
レポートは、ページの右下のセクションに表示されます。
レポートをダウンロードするには、「レポートのダウンロード」をクリックします。レポートを削除するには、「削除」をクリックします。
サイズ設定
「Oracle Internet Directory」メニューから、必要に応じてレポート名を変更し、「管理」→「チューニングとサイズ設定」と選択します。
「作成」アイコンをクリックしてウィザードを起動します。
「タイプ選択」ページで、「サイズ設定」を選択します。
「基本」または「拡張」を選択します。
「サイズ設定」ページで、テキスト・フィールドに値を指定(またはデフォルト値を使用)し、質問ごとに「はい」または「いいえ」を選択します。一部の選択肢は前の選択内容に応じて灰色になっている場合があります。
「次へ」をクリックします。
「確認」ページで、入力したデータを確認します。指定内容を変更するには「戻る」、レポートを表示するには「終了」をクリックします。
レポートは、ページの右下のセクションに表示されます。
レポートをダウンロードするには、「レポートのダウンロード」をクリックします。レポートを削除するには、「削除」をクリックします。
両方
「Oracle Internet Directory」メニューから、必要に応じてレポート名を変更し、「管理」→「チューニングとサイズ設定」と選択します。
「作成」アイコンをクリックしてウィザードを起動します。
「タイプ選択」ページで、「両方」を選択します。
「基本」または「拡張」を選択します。
「次へ」をクリックします。
ウィザードには、「サイズ設定」、「ハードウェア」、「機能」、「ロード」、「データ特性」および「ガベージ・コレクション」の各ページが表示されます。
各ページで、テキスト・フィールドに値を指定(またはデフォルト値を使用)し、質問ごとに「はい」または「いいえ」を選択します。一部の選択肢は前の選択内容に応じて灰色になっている場合があります。
次のページに進むには「次へ」、前のページに戻るには「戻る」をクリックします。ウィザードを中断するには、「取消」をクリックします。
「確認」ページで、入力したデータを確認します。指定内容を変更するには「戻る」、レポートを表示するには「終了」をクリックします。
レポートは、ページの右下のセクションに表示されます。
レポートをダウンロードするには、「レポートのダウンロード」をクリックします。レポートを削除するには、「削除」をクリックします。
データベース統計を更新するには、次のように、Oracle Internet Directoryデータベース統計収集ツールを実行します。
ORACLE_HOME/ldap/admin/oidstats.sql
bulkload
ツールを使用してデータベースにエントリを追加する場合、oidstats.sql
の実行は不要です。データベース統計は、bulkload
コマンドによって自動的に更新されます。
バルク・ロード・ツール(bulkload
)以外の方法でデータをディレクトリにロードする場合、ロード後にoidstats.sql
を実行する必要があります。統計収集は、Oracle OptimizerがLDAP操作に対応する問合せを実行するために最適な計画を選択する上で重要です。Oracle Internet Directoryデータベース統計収集ツールは、どのOracle Internet Directoryデーモンも停止せずにいつでも実行できます。
注意: ディレクトリへのデータの移入にbulkloadユーティリティを使用しない場合は、oidstats.sql ツールを実行して、検索パフォーマンスの大幅低下を回避する必要があります。 |
関連項目: 『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のoidstats.sql コマンドライン・ツールのリファレンス |
レプリケーション属性を設定するには、Oracle Enterprise Manager Fusion Middleware Controlのレプリケーション・ウィザードまたはコマンドラインを使用できます。
属性orclthreadspersupplier
、orclchangeretrycount
およびorclconflresolution
は、レプリケーション構成セット属性です。「Fusion Middleware Controlを使用したレプリケーション属性の構成」または「ldapmodifyを使用したレプリケーション構成セットの属性の構成」を参照してください。
属性orclhiqschedule
およびorclupdateschedule
は、レプリケーション承諾エントリ属性です。「Fusion Middleware Controlレプリケーション・ウィザードを使用したLDAPベースのレプリケーション設定の表示または変更」および「ldapmodifyを使用したレプリケーション承諾の属性の構成」を参照してください。
関連項目:
|
ほとんどのパフォーマンス関連のシステム構成属性は、Oracle Enterprise Manager Fusion Middleware Controlまたはコマンドラインから設定できます。この項では、その方法について説明します。
Oracle Directory Services Managerのデータ・ブラウザを使用してシステム構成属性を変更することもできます。「Oracle Directory Services Managerデータ・ブラウザを使用したシステム構成属性の管理」を参照してください。
この項の項目は次のとおりです。
インスタンス固有の構成エントリ内でのパフォーマンス属性を構成するには、Oracle Enterprise Manager Fusion Middleware Controlの「サーバー・プロパティ」ページを使用します。「Oracle Internet Directory」メニューから「管理」を選択し、「サーバー・プロパティ」を選択してから、「パフォーマンス」タブを選択します。
表33-7に、このページのフィールドと構成属性の関係を示します。
表33-7 「サーバー・プロパティ」ページ、「パフォーマンス」タブの構成属性
フィールドまたはヘッダー | 構成属性 |
---|---|
キャッシュ内の最大エントリ・サイズ(バイト) |
|
権限グループのメンバーシップ・キャッシュ(ユーザー)のサイズ |
|
1サーバー・プロセス当たりのLDAP接続の最大数 |
|
orclserverprocs
、orclmaxcc
、orcldispthreads
またはorclpluginworkers
を変更した後、サーバーを再起動します。
Oracle Enterprise Manager Fusion Middleware Controlの「Oracle Internet Directory」で、「共有プロパティ」ページの「一般」タブを使用して、DSA構成エントリのパフォーマンス関連の共有属性を構成します。「Oracle Internet Directory」メニューから「管理」を選択し、「共有プロパティ」を選択します。
表33-8に、このページのフィールドとパフォーマンス関連の構成属性の関係を示します。このタブの他のフィールドの詳細は、「共有プロパティの構成」を参照してください。
表33-8 「共有プロパティ」ページ、「一般」タブのパフォーマンス関連の属性
フィールドまたはヘッダー | 構成属性 |
---|---|
検索の参照のスキップ |
|
スキュー属性 |
|
一致DN |
|
orclskiprefinsql
またはorclskewedattribute
を変更した後、サーバーを再起動します。
ほとんどの属性は、LDAPコマンドのldapmodify
を使用して変更できます。
次のようなコマンドラインを使用できます。
ldapmodify -D cn=orcladmin -q -p portNum -h hostname -f ldifFile
ldifFileはLDIFファイルです。
次に、インスタンス固有の構成エントリの属性を変更するためのLDIFファイルの例を示します。
orclgeneratechangelog
dn: cn=componentname,cn=osdldapd,cn=subconfigsubentry
changetype: modify
modify: orclgeneratechangelog
orclgeneratechangelog: 0
orclsizelimit
dn: cn=componentname,cn=osdldapd,cn=subconfigsubentry
changetype: modify
modify: orclsizelimit
orclsizelimit: 1000
orclsizelimit
orclenablegroupcache
dn: cn=componentname,cn=osdldapd,cn=subconfigsubentry
changetype: modify
modify: orclenablegroupcache
orclenablegroupcache: 0
次に、DSA構成エントリ属性を変更するためのLDIFファイルの例を示します。
orclskiprefinsql
dn: cn=dsaconfig,cn=configsets,cn=oracle internet directory changetype: modify replace: orclskiprefinsql orclskiprefinsql: 1
orclinmemfiltprocess: あるフィルタが別のフィルタのスーパーセット
dn: cn=dsaconfig, cn=configsets, cn=oracle internet directory changetype: modify add: orclinmemfiltprocess orclinmemfiltprocess: (objectclass=inetorgperson)(orclisenabled=TRUE)
orclskewedattribute
dn: cn=dsaconfig,cn=configsets,cn=oracle internet directory changetype: modify add: orclskewedattribute orclskewedattribute: my_attribute !
orclskiprefinsql
またはorclskewedattribute
を変更した後、サーバーを再起動します。
属性orclpurgetargetage
およびorclpurgeinterval
は、変更ログ・パージ構成エントリにあります。ldapmodify
またはOracle Directory Services Managerを使用して変更できます。
変更ログのパージについては、「変更ログのパージ」で説明されています。次の例では、120時間(5日)の時間ベースのパージを構成しています。次のようなLDIFファイルを使用します。
dn: cn=changelog purgeconfig,cn=purgeconfig,cn=subconfigsubentry changetype:modify replace: orclpurgetargetage orclpurgetargetage: 240
LDIFファイルmod.ldif
を適用するには、次のように入力します。
ldapmodify -D "cn=orcladmin" -q -p port -h host -D dn -q -f mod.ldif
orclpurgetargetage
およびorclpurgeinterval
は、Oracle Directory Services Managerのデータ・ブラウザを使用して変更できます。データ・ツリーで変更ログ・パージ構成エントリに直接移動することはできませんが、次のように拡張検索を使用すると可能です。
「データ・ブラウザ」タブで「拡張」をクリックします。
「検索のルート」をcn=changelog purgeconfig,cn=purgeconfig,cn=subconfigsubentry
に設定します。
「検索の深さ」の値に「ベース」
を選択します。
「検索基準」で、属性「オブジェクト・クラス」
および基準「次が存在」
を選択します。
「LDAPフィルタの表示」を選択します。LDAP問合せが(objectClass=*)
であることを確認します。
「検索」をクリックします。
「検索結果」にchangelog purgeconfig
エントリが表示されます。