ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Identity Manager管理者ガイド
11g リリース1(11.1.1)
B62264-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

24 Oracle Databaseのチューニング

エンタープライズ・クラスのどのようなビジネス・アプリケーションにおいても、すべてのシステムに通用するような単純なチューニング方法はありません。この項では、構成のサンプルを1つ示し、Oracle Databaseのチューニングに関する原則の概要を説明します。

Oracle Identity Managerには、多数の構成オプションがあります。ボトルネックを特定し、パフォーマンスを最適化する最善の方法は、本番環境のキーとなるデータベース・パフォーマンスを監視し、必要に応じて構成を調整していくことです。この章では、データベース構成の初期ベースラインを選択する際に役に立つガイドラインを示します。

この章の内容は、次のとおりです。

24.1 Oracle Identity Managerデータベースに対するデータベース・ロール/権限の使用

データベース管理者は、ロールを作成して、データベース・アプリケーションの実行に必要なすべての権限を保護アプリケーション・ロールに付与します。それから保護アプリケーション・ロールを他のロールやユーザーに付与できます。アプリケーションは複数の異なるロールを持つことができ、それぞれに異なる権限セットを付与して、ユーザーに応じてアプリケーションの使用時にアクセスできるデータを制限できます。たとえば、パスワード付きのロールを作成し、ロールに付与された権限が不正に使用されるのを防止できます。アプリケーションは起動時に適切なロールが使用可能になるように設計されます。そのため、アプリケーション・ユーザーはアプリケーション・ロールのパスワードを知る必要はありません。

次に示すように、付与または取消しされるものに応じて、付与または取消しが有効になるタイミングは異なります。

SESSION_ROLESデータ・ディクショナリ・ビューを調べると、どのロールが現在有効であるかを確認できます。

Oracle Identity Managerでは、Oracle Identity Managerスキーマに前提条件となる権限が付与されており、Oracle Identity Managerをインストールする前に必要なオブジェクトを作成できるようにしています。これらの権限の一部は、Oracle Identity Managerのインストール後に取り消して、アプリケーションの要件に応じて後で特定のユーザーに付与できます。

表24-1に、データベース・アプリケーションに必要な権限を示します。

表24-1 データベース・アプリケーションに対するロール付与

ロール名 説明 Oracle Identity Managerに固有の使用方法 取り消された場合

CREATE TABLE

自分のスキーマ内での表の作成、変更および削除を可能にします。

これはリソースの権限付与の一部ですが、リソースの権限付与ではプロシージャを使用して表を作成できないため、これが明示的に必要になります。

ユーザーはプログラムで新しい表を作成できません。

この権限は、Oracle Identity Managerデプロイメントが安定したとき、つまりすべてのコンポーネントおよびコネクタがインポートされ、期待どおりに動作するようになったときに取り消すことができます。これは、各コネクタでその独自のスキーマ・オブジェクトが作成されるためです。アーカイブ・ユーティリティはプログラムで表を作成するため、アーカイブ・ユーティリティの初期実行にこの権限が必要になります。

CONNECT

セッションの作成権限を付与します。

ユーザーに対するセッションの作成

これはインストール後にCREATE SESSIONと置換できます。Oracle Identity Managerデプロイメントが安定したとき、つまりすべてのコンポーネントおよびコネクタがインポートされ、期待どおりに動作するようになったときに置換できます。これは、各コネクタでその独自のスキーマ・オブジェクトが作成されるためです。

RESOURCE

そのユーザーに関連付けられたスキーマで特定タイプのスキーマ・オブジェクトの作成、変更および削除を可能にします。このロールは開発者やスキーマ・オブジェクトの作成が必要なその他のユーザーにのみ付与されます。このロールにより、オブジェクト・システムの作成権限のサブセットが付与されます。たとえば、CREATE TABLEシステム権限は付与されますが、CREATE VIEWシステム権限は付与されません。これにより次の権限が付与されます。

  • CREATE CLUSTER

  • CREATE INDEXTYPE

  • CREATE OPERATOR

  • CREATE PROCEDURE

  • CREATE SEQUENCE

  • CREATE TABLE

  • CREATE TRIGGER

  • CREATE TYPE

さらに、このロールによりUNLIMITED TABLESPACEシステム権限が付与され、ユーザーがスキーマ・オブジェクトを作成するすべての表領域でUNLIMITEDの領域使用量割当てが効果的に割り当てられます。

シーケンス、インデックス、プロシージャ、トリガーおよびパッケージの作成

ユーザーはデータベース・オブジェクトを作成できません。SYSユーザーのみ、これを行うことができます。この権限は、Oracle Identity Managerデプロイメントが安定したとき、つまりすべてのコンポーネントおよびコネクタがインポートされ、期待どおりに動作するようになったときに取り消すことができます。これは、各コネクタでその独自のスキーマ・オブジェクトが作成されるためです。表領域割当てを正しく指定してください。

CREATE VIEW

ユーザーのスキーマでのビューの作成、変更および削除を可能にします。

Oracle Identity ManagerでのSDP_VISIBLE_V、SDP_REQUIRED_V、SDP_LOOKUPCODE_VおよびSDP_RECURSIVE_Vビューの作成

ユーザーはビューを作成できません。SYSユーザーのみ、これを行うことができます。

DBMS_SHARED_POOL

データベース・オブジェクトを共有プール・メモリーに合わせます。

Oracle Identity Managerで使用されるすべてのプロシージャと機能を共有メモリーで固定するために使用

これはインストール後に取り消せますが、プロシージャや機能によっては明示的に固定されない場合があるため、パフォーマンスに影響を与えることがあります。pin_objプロシージャはOracle Identity Managerに対してのみ作成されます。これはデータベース・オブジェクトを共有メモリーに明示的に固定するために使用されます。このロールを取り消す前に、データベースレベルのトリガーcache_seqが削除されている(作成済の場合)ことを確認してください。

SYS.DBMS_SYSTEM

XAリソース・マネージャを有効にして権限を設定し、XAリソース・マネージャがOracle databaseとアプリケーション間の相互作用を管理できるようにします。

注意: 各データベース接続は、トランザクション・リソースとしてトランザクション・マネージャとともに追加されます。トランザクション・マネージャは、グローバル・トランザクションに属する各接続に対してXAリソースを取得します。トランザクション・マネージャは開始メソッドを使用してグローバル・トランザクションとリソースを関連付け、終了メソッドを使用してトランザクションとリソースの関連付けを解除します。リソース・マネージャは、開始メソッドの起動と終了メソッドの起動との間に、グローバル・トランザクションをそのデータで実行されるすべての作業に関連付けます。

XAリソースおよびデータベース・トランザクション用

Oracle Databaseバージョン10.2.0.4以降では、これは安全に削除できます。DIST_TXN_SYNCプロシージャを、一般に公開されているDBMS_XAと呼ばれる新しいパッケージに移動することで、これのかわりとなります。そのため、新しいバージョンのOracleではXAクライアントはDBMS_SYSTEMで権限を実行する必要はありません。

SYS.DBMS_FLASHBACK

セルフサービス・リペアを有効にします。表から行を間違って削除した場合、削除された行を元に戻すことができます。

リコンシリエーション中の失敗に対して、これを使用して変更をロール・バックできます。

これは、Oracle Identity Manager 11g リリース 1 (11.1.1)の新しいリコンシリエーション・エンジンでのエラー処理に必要です。

CREATE_MATERIALIZED_VIEW

権限受領者のスキーマでマテリアライズド・ビューを作成します。

OIM_RECON_CHANGES_BY_RES_MVマテリアライズド・ビューの作成

ユーザーはマテリアライズド・ビューを作成できません。SYSユーザーのみ、これを行うことができます。このマテリアライズド・ビューは、レポート目的でのみ必要です。

SELECT ON V$XATRANS

SELECT ON PENDING_TRANS$

SELECT ON DBA_2PC_PENDING

SELECT ON DBA_PENDING_TRANSACTIONS

XAリソース・マネージャを有効にして権限を設定し、XAリソース・マネージャがOracle databaseとアプリケーション間の相互作用を管理できるようにします。

該当なし

削除はお薦めしません。XAのサポートに必要です。

ADMINISTER DATABASE TRIGGER

データベースレベルのトリガーの作成を可能にします。

Oracle Identity Managerでのddl_triggerという名前のDDLトリガーの作成

ユーザーは新しいDDLトリガーを作成できません。これはスキーマ作成後に削除できます。


24.2 インスタンス構成パラメータのサンプル

表24-2に、Oracle 11g Databaseのパフォーマンスに関連するいくつかの重要なデータベース初期化パラメータを示します。

SGA、PGAサイズは、一部のプラットフォームでは、基礎となるオペレーティング・システムの使用可能な最大メモリーの制限によって制限されます。サポート・ノート: Oracle Databaseサーバーとオペレーティング・システムのメモリー制限[ID 269495.1]を参照してください。


注意:

表24-2に示すデータベース・インスタンス・パラメータに対しては、Oracle Databaseのリリースに基づいて、次のいずれかのメモリー管理アプローチを使用できます。

  • Oracle Database 11gで使用できる自動メモリー管理機能を使用し、MEMORY_TARGETおよびMEMORY_MAX_TARGETパラメータを使用してSGAとPGAを一緒に管理できます。

  • Oracle Database 10g以降で使用できる自動共有メモリー管理(ASMM)を使用し、SGA_TARGETおよびSGA_MAX_SIZEパラメータを指定してSGAコンポーネントを管理できます。PGAは、PGA_AGGREGATE_TARGETを通じて個別に管理されます。

次の接続プール要件および外部プログラムに対する追加接続に対応するように、プロセス・パラメータを設定する必要があります。

  • アプリケーション・サーバーで構成されたXAデータソースの接続プール・サイズ

  • アプリケーション・サーバーで構成された非XAデータソースの接続プール・サイズ

  • xlconfig.xmlで構成されたダイレクト・データベース接続プール・サイズ


表24-2 構成パラメータのサンプル

パラメータ Oracle Database 11gの推奨初期設定

db_block_size

8192

memory_target

Oracle Database 11gの自動メモリー管理機能を使用して、MEMORY_TARGETおよびMEMORY_MAX_TARGETパラメータでSGAとPGAを一緒に管理できます。

推奨値は3GBです。

MEMORY_TARGETをデータベース・メモリー・コンポーネントの管理用にする場合は、SGA_TARGETとPGA_AGGREGATE_TARGETは割り当てないでおく(0にする)ことができます。

db_keep_cache_size

800M

log_buffer

15 MB

cursor_sharing

FORCE

open_cursors

500

session_cached_cursors

500

query_rewrite_integrity

TRUSTED

query_rewrite_enabled

TRUE

db_file_multiblock_read_count

16

db_writer_processes

2

processes

接続プール設定に基づく


24.3 物理データの配置

Oracle Identity Managerの基本インストールでは、データベース・オブジェクトを格納するために2つの物理表領域(編成関連のLOBデータのための表領域oim_lobおよびその他すべてのための表領域oim)が使用されます。Oracle Identity Managerのデータベース・オブジェクトは、次のカテゴリのいずれかに属します。


ヒント:

使用ディスク領域を最小限にするために、次のようにすることをお薦めします。

デプロイメントの最初の起動フェーズでは、Oracle Identity Managerの表領域は、Oracle Identity Managerにリコンサイルされる10万ユーザーごとに20Gの割合で増加すると予測されます。同じユーザーに対して、LOB表領域はOracle Identity Managerの主要な表領域のサイズの約30%増加します。Oracle Identity Managerでの編成の使用はLOB表領域の増加に影響するため、広範囲に編成が使用されるというシナリオでは、これに応じて、LOB表領域は主要な表領域の60% - 100%の割合で増加する可能性があります。

ディスク領域を効率的に管理するために、データベース管理者は、実際のシステムで正確な増加率をモニタリングする必要があります。


パフォーマンスを向上させるため、ローカルで管理する複数の表領域を作成し、各カテゴリのデータベース・オブジェクトを専用の表領域に格納してください。ストレージを最適化することは、効率的なデータ・アクセスに役立ちます。次の項では、頻繁にアクセスが行われ増大する可能性がある表について説明します。これらの表を独自の専用表領域に配置することをお薦めします。

一般的なOracle Identity Managerデプロイメントでは、通常、次の項で説明されている表は増大し、頻繁にアクセスが行われます。また、パフォーマンス・メトリックを使用して、頻繁にアクセスする表(ホット表)を特定できます。I/O競合を削減するため、ホット表を専用の表領域に移動します。パフォーマンス・メトリックの詳細は、「データベース・パフォーマンスの監視」を参照してください。


注意:

Oracle Identity Managerでは、これらの表のほとんどでデータ増大を収容できるようにするためのアーカイブおよびパージのソリューションが提供されています。詳細は、第23章「アーカイブ・ユーティリティの使用」を参照してください。


24.3.1 タスクの表

Oracle Identity Managerでは、プロビジョニングおよび承認タスクの詳細が次の表に格納されます。これらは、時間の経過とともに増大する可能性が高い表です。これらを1つ以上の専用表領域にグループ化することをお薦めします。

  • OSI

  • OSH

  • SCH

24.3.2 リコンシリエーション表

Oracle Identity Managerのリコンシリエーション・スキーマには、静的表と動的表の両方があります。静的表のリストを次に示します。動的表は、RECON_TABLES表のRECON_TABLE_NAME列を問い合せることで識別できます。

  • RECON_ACCOUNT_OLDSTATE

  • RECON_BATCHES

  • RECON_CHILD_MATCH

  • RECON_EVENTS

  • RECON_EVENT_ASSIGNMENT

  • RECON_EXCEPTIONS

  • RECON_HISTORY

  • RECON_JOBS

  • RECON_TABLES

  • RECON_UGP_OLDSTATE

  • RECON_USER_OLDSTATE

  • RECON_ACCOUNT_MATCH

  • RECON_ORG_MATCH

  • RECON_ROLE_HIERARCHY_MATCH

  • RECON_ROLE_MATCH

  • RECON_ROLE_MEMBER_MATCH

  • RECON_USER_MATCH

  • RA_LDAPUSER

  • RA_MLS_LDAPUSER

  • RA_LDAPROLE

  • RA_MLS_LDAPROLE

  • RA_LDAPROLEMEMBERSHIP

  • RA_LDAPROLEHIERARCHY

使用する環境で大量のリコンシリエーション・データが生成される場合は、これらの表を1つ以上の専用表領域に移動してください。

24.3.3 監査表

Oracle Identity Managerでは、監査レベル設定に基づいてトランザクションが監査されます。ほとんどの監査レベルで、データが大幅に増大する可能性があります。監査表を独自の表領域に格納することをお薦めします。Oracle Identity Managerの監査表には、2つのカテゴリがあります。XML形式で監査データを格納する表を次に示します。このリストで、特にUPA表が増大することが予想されるため、これを専用の表領域に配置することが重要です。

  • UPA

  • GPA

ユーザー・プロファイル監査データは、次のフラット構造の表に格納されます。これらの表は、コンプライアンス・レポート作成のために、Oracle Identity Manager履歴レポートで使用されます。これらの表およびその索引を、専用の表領域に格納することをお薦めします。

  • UPA_FIELDS

  • UPA_GRP_MEMBERSHIP

  • UPA_RESOURCE

  • UPA_USR

  • UPA_UD_FORMS

  • UPA_UD_FORMFIELDS

24.3.4 REDOログ・ファイル

Oracle Identity Managerで構成されたリコンシリエーション・プロセスによっては、リコンシリエーション実行中のデータベース・トランザクションおよびコミットの量が多くなる場合があります。複数のREDOログ・ファイルを使用することをお薦めします。REOログ・ファイルに割り当てる総領域は、1 - 2GBにする必要があります。

それぞれの最小サイズが500MBの、REDOログ・メンバーを持つ3つ以上のREDOログ・グループを使用することをお薦めします。メンバーの多重化と正確な数および各メンバーのディスク領域は、障害に対する計画に従って検討できます。

24.3.5 プール保存の変更

Oracle Identity Managerのデフォルトでは、頻繁に参照される小さい表は、プール保存バッファを使用してデータベースにキャッシュされるように割り当てられます。表24-2のdb_keep_cache_sizeを参照してください。ユーザー・レコードを格納するUSR表も、デフォルトでキャッシュされます。インストール環境に含まれるユーザーが50,000より多い場合、USR表には、プール保存バッファではなくデフォルトのバッファを使用することをお薦めします。次のコマンドを使用して、USR表をデフォルトのバッファ・プールに配置できます。

ALTER TABLE USR STORAGE(buffer_pool default);

24.4 データベース・パフォーマンスの監視

Oracle Identity Managerデータベースのリアルタイム・パフォーマンス・メトリックを監視すると、パフォーマンス・ボトルネックを特定できます。

次のことを定期的に実行してください。