Oracle Identity Managerのアプリケーション機能は、大量のデータを生成します。パフォーマンスとスケーラビリティの標準を満たすために、Oracle Identity Managerエンティティのライフ・サイクル管理用に生成されるデータを維持することが課題になります。この課題に対処するために、Oracle Identity Managerでは、オフラインのデータ・パージおよびアーカイブ・ソリューションに加え、オンラインの継続的なソリューションも提供しています。
表20-1に、Oracle Identity Managerが提供する、Oracle Identity Managerエンティティとその依存データのアーカイブおよびパージ・ソリューションのリストを示します。
表20-1 アーカイブおよびパージのソリューション
エンティティのアーカイブおよびパージ | リアルタイム・オンライン・モード | コマンド行からの操作 | その他のモードからの使用 |
---|---|---|---|
リコンシリエーション |
はい |
はい |
|
プロビジョニング・タスク |
はい |
はい |
|
リクエスト |
はい |
はい |
|
編成 |
はい |
いいえ |
|
監査 |
いいえ |
いいえ |
監査表のパーティション化によるパージ用の命令セット。詳細は、「監査アーカイブおよびパージ・ユーティリティの使用」を参照してください。 |
この章では、各種アーカイブおよびパージ・ユーティリティの使用方法と、これらのユーティリティに関連する概念について説明します。内容は次のとおりです。
注意: オフラインのコマンドライン・ユーティリティではなく、リアルタイムのパージおよびアーカイブ・オプションを使用することをお薦めします。 |
次の各項では、Oracle Identity Managerのアーカイブおよびパージ・ソリューションに関連する概念について説明します。
パージのみのソリューションと、パージにアーカイブを加えたソリューションは、リアルタイム・パージおよびアーカイブ機能に適用できます。Oracle Identity Managerエンティティは、そのエンティティに関連するデータをパージおよびアーカイブする方法に基づいて、リアルタイム・パージ・アーカイブ機能の観点から次のように分類されます。
パージのみ: データが直接パージされ、アーカイブされないエンティティ。これに該当するエンティティは、リコンシリエーション、プロビジョニング・タスクおよび編成です。
パージおよびアーカイブ: データがパージされ、アーカイブもされるエンティティ。これは、リクエスト・エンティティに適用されます。
注意: リアルタイム・パージおよびアーカイブ・ソリューションは、継続的なデータ・パージ機能を提供します。また、コマンド行のアーカイブ・ユーティリティを使用して、定期的にデータをアーカイブすることもできます(必要な場合)。コマンド行版のアーカイブ・パージ・ユーティリティには、このようなエンティティの分類はありません。これらでは、基本的にパージの前にアーカイブを実行します。コマンド行のアーカイブ・ユーティリティの詳細は、「Oracle Identity Managerのアーカイブ・パージ・ユーティリティのコマンド行オプションの使用」を参照してください。 |
パージ前のアーカイブは、アクティブ機能表またはエンティティ表からデータを削除する、Oracle Identity Managerコマンド行ユーティリティが従う標準メカニズムです。これは、シャドウ・コピーまたは元の表のレプリカにデータをコピーすることで実行されます(通常は、ARCH_TABLE_NAMEの接尾辞が付きます)。パージおよびアーカイブのカテゴリに含まれるエンティティのデータ・パージ・ソリューションでは、パージの前にアーカイブ操作が実行されます。
アーカイブ操作を先に実行することなく、アクティブ機能表またはエンティティ表からデータを削除またはパージするメカニズムです。パージされたデータは、Oracle Identity Managerではリカバリできません。
リアルタイム・パージとは、Oracle Identity Managerの稼働中にデータを削除またはパージすることを意味し、機能呼出しや同時実行性、ワークロードに関係なく使用できます。ただし、リアルタイムという文字どおりの意味とは異なり、システムで作成されたエンティティ・データが即座に削除されることはありません。
保存期間は、実用とコンプライアンスを目的として、Oracle Identity Managerにデータを保存しておく必要のある期間を定義します。データは、該当するエンティティ・データの保存期間の値で定義された期限に基づいて削除されます。「保存期間」属性は、リアルタイム・パージ機能のために、OIMデータ・パージ・スケジュール済ジョブのユーザー・インタフェースから定義する必要があります。
アーカイブ・パージ操作は、次のモードで実行できます。
オフライン・モード: このモードでは、データのアーカイブとパージの実行中に、Oracle Identity Managerが使用できなくなります。全体の操作がデータベース集中型になるため、最初に制約/索引が無効にされ、エンティティ表のデータがコピーおよび削除されてから、削除後の処理が再有効化されます。これにより、削除処理のパフォーマンスを最大化して、表レベルの制約が無効になっている期間に入力されたデータが機能的に矛盾する可能性を排除しています。そのため、Oracle Identity Managerを使用したトランザクション・レベルの変更は非推奨になります。その結果として、システムは使用の観点からオフラインになります。
オンライン・モード:: このモードでは、データベース・レベル全体の索引/制約が通常どおり有効の状態で、データのアーカイブとパージが実行されます。そのため、操作の観点からは、オンライン・モードで継続的にOracle Identity Managerを使用できます。
注意: リアルタイム・パージは、オンライン・モードのみをサポートします。コマンド行のアーカイブ・パージ・ユーティリティは、ユーザーの入力に応じてオンラインとオフラインの両方のモードをサポートします。 |
Oracle Identity Managerのアプリケーション機能は、大量のデータを生成します。パフォーマンスとスケーラビリティの標準を満たすために、Oracle Identity Managerエンティティのライフ・サイクル管理用に生成されるデータを維持することが課題になります。この課題に対処するために、Oracle Identity Managerでは、リアルタイムの継続的なデータ・パージ・ソリューションを提供しています。次の各項では、このソリューションについて説明します。
Oracle Identity Managerでは、リアルタイム・パージおよびアーカイブ機能がデフォルトで使用できます。これにより、エンティティ・データは、オプションまたは選択内容に基づいて継続的にパージできます。図20-1に、Oracle Identity Managerのリアルタイム・パージおよびアーカイブ機能のフローを示します。
このパージ・ソリューションは、1回構成すると、管理者の介入なしに自動的に機能します。
リアルタイム・パージおよびアーカイブの機能は、次のとおりです。
管理者は、Oracle Identity System Administrationの「スケジュール済タスク」セクションを使用して、エンティティに対するいくつかの重要なパラメータ(保存期間、実行期間、パージ基準など)に値を指定します。
各パージの実行に関する診断情報は、ログとして取得されます。
パージ・タスクは、定期的に実行されます。
エンティティのモジュール(リクエスト、リコンシリエーション、タスク、編成など)は、割り当てられた時間間隔に従ってパージされます。
パージ・ソリューションは、フェイルセーフです。これは、システムがCPUサイクルを無制限に消費する状況が発生しないことを意味します。フェイルセーフ設計により、他のモジュールに与える影響は最小限に抑えられます。フェイルセーフ機能は、次のようにして実現されます。
各エンティティに対するパージ実行の自動カットオフまでの最大実行時間: 各パージ・ユーティリティの実行は、最大パージ実行時間パラメータの値(分単位)で制御されます。この最大パージ実行継続時間を超えると、パージは自動的に停止されます。これは、各エンティティ・レベルで指定されるため、パージの時間間隔の割当てを機能レベルで制御できます。
削除用に選別される各バッチは、時間係数を認識します。時間係数を超過すると、後続のバッチがスキップされ、ユーティリティの制御フローが完了します。
エンティティごとの最大パージ実行時間(分単位)は、スケジュール済タスクのUIで指定できます。
シングル・スレッドのバッチ処理: パージ操作では、コミットが発行される前に、削除する行数が最大になるバッチ・サイズを受け入れます。これにより、多数の行にパージが適用されたときに、REDOログのセグメントが過剰に増加することを防止します。バッチ・サイズは、パージ実行操作用のスケジュール済タスクのインタフェースから受け入れられます。
データの増加と、それに続くフットプリントは、継続的に制御されます。
これは、オンラインで操作され、サービスが停止することはありません。
自動化されたスケジュール済タスクによるパージ操作は、事前に定義した周期で暗黙的に非対話型で実行されます。パージ操作に関連する各種のメトリック(エンティティのモジュール名、成功または失敗のステータス、削除対象の行数など)はログに記録されます。これらのログは、パージ操作の実行ごとの診断指針になります。
リアルタイム・パージ・ユーティリティ・フレームワークでパージされるデータの量は、いくつかの入力(時間間隔の期間、選択したエンティティ、既存のワークロードなど)と相関します。このパージ機能によるOracle Identity Managerのデータのアウトフローはインフローよりも少なくなることがあります。つまり、ある程度のデータ量がシステムに蓄積される可能性があります。これは、コマンド行のアーカイブ/パージ・ユーティリティを使用して、適切な時点でパージできます。
エンティティ・データは、オプションまたはユーティリティの実行を構成するときに行った選択内容に基づいて、パージ・ソリューションにより継続的にパージされます。これらのオプションは、データ保存のポリシーとメンテナンスの要件に応じて変更できます。
リアルタイム・パージおよびアーカイブを構成するには:
Oracle Identity System Administrationにログインします。
「システム管理」で「スケジューラ」をクリックします。
OIMデータ・パージ・ジョブ・スケジュール済ジョブを検索して開きます。
「パラメータ」セクションで、パラメータに値を指定します。詳細は、表20-2を参照してください。
表20-2 パージの構成パラメータ
カテゴリ | パラメータ | 説明 | デフォルト値 |
---|---|---|---|
グローバル・パラメータ |
バッチ・サイズ |
パージ操作は、バッチ単位で実行されます。これは、コミットが発行される前に削除する最大の行数を表します。 |
5000 |
エンティティごとの最大パージ実行継続時間(分) |
これは、エンティティごとのパージ処理に対する、分単位の最大実行継続時間です。 |
30分 |
|
編成のパージ・パラメータ |
編成エンティティの選択 |
編成表からデータをパージするかどうかを指定します。 |
はい |
編成のパージ基準 |
値は次のいずれかになります。
|
1 |
|
編成[COMPLETED]保存期間(日) |
完了済の編成の保存期間を日単位で示します。 |
1日 |
|
編成[OTHERS]保存期間(日) |
失敗、補正済またはその他の編成の保存期間を日単位で示します |
30日 |
|
プロビジョニング・タスクのパージ・パラメータ |
プロビジョニング・タスク・エンティティの選択 |
プロビジョニング・タスク表からデータをパージするかどうかを指定します。 |
いいえ |
プロビジョニング・タスクのパージ基準 |
値は次のいずれかになります。
|
1 |
|
プロビジョニング・タスク保存期間(日) |
プロビジョニング・タスクの保存期間を日単位で示します。 |
90日 |
|
リコンシリエーションのパージ・パラメータ |
リコンシリエーション・エンティティの選択 |
リコンシリエーション表からデータをパージするかどうかを指定します。 |
いいえ |
リコンシリエーションのパージ基準 |
値は次のいずれかになります。
|
1 |
|
リコンシリエーション保存期間(日) |
リコンシリエーション・イベントの保存期間を日単位で示します。 |
30日 |
|
リクエストのパージ・パラメータ |
リクエスト・エンティティの選択 |
リクエスト表からデータをパージするかどうかを指定します。 |
いいえ |
リクエストのパージ基準 |
値は次のいずれかになります。
|
1 |
|
リクエスト保存期間(日) |
リクエストの保存期間を日単位で示します。 |
90日 |
注意: デフォルトでは、OIMデータ・パージ・ジョブ・スケジュール済ジョブは、90日の保存期間が有効な状態で使用できるようになっています。ジョブ・パラメータを再確認して、必要に応じてパージの無効化または間隔の変更を行う必要があります。 |
「適用」をクリックします。
この項で説明したスケジュール・タスクUIに対する構成入力の手順以外には、アーカイブ表領域の作成などの手動による実行が必要になる手順はありません。これ以降の各項に記載された手順は、すべて、コマンド行バージョンのユーティリティを実行するためのものです。
注意:
|
編成データパージは、アクティブな編成表から統合されたOIMデータ・パージ・ジョブ・スケジュール済ジョブのインタフェースを使用して実施します。これは、次の基準に基づきます。
注意: 編成パージは、オンライン・モードでのみスケジュール済ジョブのインタフェースから利用できます。 |
編成プロセスのステータス(完了済、失敗、補正済、取消済、補正による取消済など)。
時間ベースの基準。この基準は、スケジュール済ジョブのインタフェースから日数で指定した保存期間の値で指定されます。
編成パージ機能によるパージの対象になるアクティブな編成表は、次のとおりです。
ORCHPROCESS
ORCHEVENTS
ORCHFAILEDEVENTS
ORCH_BENEFICIARIES
CALLBACK_INVOCATION_RESULT
自動化されたスケジュール済タスクによるリアルタイム・パージおよびアーカイブ操作は、事前に定義した周期で暗黙的に非対話型で実行されます。ただし、パージ操作に関連するさまざまなメトリックを取得して対話することは可能です。
ピックされたエンティティ・モジュールの名前
成功/失敗ステータス
実行中に遭遇した例外
削除用にターゲットされた行の数
実際にパージされた行の数
最低でも、これらのメトリックが実行ごとにログに記録されます。直近500回分の実行データは常にアクセス可能です。
次の診断ロギング表は、リアルタイム・パージおよびアーカイブ操作の一部であり、エンティティ・パージ実行の診断情報を格納します。
OIM_DATAPURGE_TASK_LOG: エンティティ・データ削除のためのスケジュール済タスクによって制御されたパージ実行に関連する重要な情報を格納します。
表20-3は、OIM_DATAPURGE_TASK_LOG表示に含まれる列の一覧です。
表20-3 OIM_DATAPURGE_TASK_LOG表の列
列 | 説明 |
---|---|
OIM_DATAPRGTASK_KEY |
タスクを一意に識別するためのキーを格納します |
OIM_DATAPRG_ID |
一意のパージ名を格納します |
SCH_JOB_ID |
スケジューラによって割り当てられたスケジュール済タスクのジョブIDを格納します |
EXECUTION_MODE |
パージの実行モード(スケジュール済タスク・モードはSCH) |
PURGERUN_START_TIME |
パージ実行全体の開始時間を格納します |
PURGERUN_END_TIME |
パージ実行全体の終了時間を格納します |
PURGERUN_STATUS |
パージ実行の全体的なステータスを格納します(実行中は次のいずれかのステータスになります):
|
PURGE_RUN_NOTE |
パージ実行時のタスクレベル例外の詳細を格納します |
OIM_DATAPRG_TASKS_LOGDTLS: スケジュール済タスクによって制御された、モジュールまたはエンティティレベルのパージ実行に関連する重要な情報を格納します。
表20-4は、OIM_DATAPRG_TASKS_LOGDTLS表示に含まれる列の一覧です。
表20-4 OIM_DATAPRG_TASKS_LOGDTLS表の列
列 | 説明 |
---|---|
OIM_DATPRGLOGDET_KEY |
タスク内のモジュールを一意に識別するためのキーを格納します |
OIM_DATAPRGTASK_KEY |
OIM_ENTITYPURGE_TASK_LOG表の論理外部キーを格納します |
MOD_NAME |
次に示すようなモジュール名を格納します
|
EST_ALLOCT_TIME |
モジュール・パージ実行に割り当てられた時間を格納します |
MOD_STATUS |
モジュールのステータスを格納します(実行中は次のいずれかのステータスになります):
|
MODPURGERUN_START_TIME |
モジュール・パージ実行の開始時間を格納します |
MODPURGERUN_END_TIME |
モジュール・パージ実行の終了時間を格納します |
EST_PURGE_ROW_CNT |
モジュール・パージ実行のドライビング表のターゲット行数を格納します |
ACTUAL_PURGE_ROW_CNT |
パージ実行時に実際に削除されたドライビング表の行数を格納します |
MOD_PURGE_RUN_NOTE |
モジュール・レベルで遭遇したその他の例外や情報を格納します |
OIM_DATAPRG_FAILED_KEYS: スケジュール済パージの実行時に失敗した各モジュールまたはエンティティのエンティティ・キーを格納します。
表20-5は、OIM_DATAPRG_FAILED_KEYS表示に含まれる列の一覧です。
OIM_DATAPURGE_TASK_LOG表とOIM_DATAPRG_TASKS_LOGDTLS表には、直近500回分のパージ実行のデータが格納されます。OIM_DATAPRG_FAILED_KEYS表には、最後の実行についてのみ、失敗したキー・データが格納されます。
この項では、コマンド行アーカイブ・パージ・ユーティリティの使用方法について説明します。内容は次のとおりです。
注意: リコンシリエーション・アーカイブ・ユーティリティ、タスク・アーカイブ・ユーティリティおよびリクエスト・アーカイブ・ユーティリティをオフライン・モードとオンライン・モードの両方で使用できます。 |
Oracle Identity Managerは、3つのエンティティ(リコンシリエーション、プロビジョニング・タスクおよびリクエスト)に対して、コマンド行ユーティリティ・オプションによるエンティティ・データのアーカイブおよびパージを提供しています。すべてのコマンド行ユーティリティは、Oracle Identity Managerのインストールに含まれており、エンティティ・データをアーカイブおよびパージするためのユーザー指定のパラメータを対話的に取得します。これらのユーティリティは、LinuxとMicrosoft Windowsの両方のオペレーティング・システム環境で使用できます。
この項では、リコンシリエーション・アーカイブ・ユーティリティの使用方法について説明します。内容は次のとおりです。
Oracle Identity Managerは、ターゲット・システムのリコンシリエーション・データを、アクティブ・リコンシリエーション表と呼ばれるOracle Identity Manager表に格納します。
リコンシリエーション・プロセス中、リコンシリエーション・マネージャはアクティブ・リコンシリエーション表のデータをOracle Identity Managerのコア表とリコンサイルします。リコンシリエーション・マネージャはリコンサイルされたデータをアクティブ・リコンシリエーション表から削除しないため、これらの表は最終的に非常に大きくなり、リコンシリエーション・プロセス中のパフォーマンスが低下することがあります。リコンシリエーション・アーカイブ・ユーティリティを使用すると、Oracle Identity Managerとリコンサイルされたデータをアーカイブできます。リコンシリエーション・アーカイブ・ユーティリティは、アーカイブされたデータを、アクティブ・リコンシリエーション表と同じ構造のアーカイブ・リコンシリエーション表に格納します。
表20-6に、アクティブ・リコンシリエーション表と、それに対応するアーカイブ・リコンシリエーション表(アクティブ・リコンシリエーション表のデータがアーカイブされる表)を示します。
表20-6 アクティブ・リコンシリエーション表とアーカイブ・リコンシリエーション表
アクティブ・リコンシリエーション表(Oracle Identity Manager表) | アーカイブ・リコンシリエーション表 |
---|---|
RECON_EVENTS |
ARCH_RECON_EVENTS |
RECON_JOBS |
ARCH_RECON_JOBS |
RECON_BATCHES |
ARCH_RECON_BATCHES |
RECON_EVENT_ASSIGNMENT |
ARCH_RECON_EVENT_ASSIGNMENT |
RECON_EXCEPTIONS |
ARCH_RECON_EXCEPTIONS |
RECON_HISTORY |
ARCH_RECON_HISTORY |
RECON_USER_MATCH |
ARCH_RECON_USER_MATCH |
RECON_ACCOUNT_MATCH |
ARCH_RECON_ACCOUNT_MATCH |
RECON_CHILD_MATCH |
ARCH_RECON_CHILD_MATCH |
RECON_ORG_MATCH |
ARCH_RECON_ORG_MATCH |
RECON_ROLE_MATCH |
ARCH_RECON_ROLE_MATCH |
RECON_ROLE_HIERARCHY_MATCH |
ARCH_RECON_ROLE_HIER_MATCH |
RECON_ROLE_MEMBER_MATCH |
ARCH_RECON_ROLE_MEMBER_MATCH |
RA_LDAPUSER |
ARCH_RA_LDAPUSER |
RA_MLS_LDAPUSER |
ARCH_RA_MLS_LDAPUSER |
RA_LDAPROLE |
ARCH_RA_LDAPROLE |
RA_MLS_LDAPROLE |
ARCH_RA_MLS_LDAPROLE |
RA_LDAPROLEMEMBERSHIP |
ARCH_RA_LDAPROLEMEMBERSHIP |
RA_LDAPROLEHIERARCHY |
ARCH_RA_LDAPROLEHIERARCHY |
RECON_TABLESの下で説明されているすべての水平表 |
「ARCH_」に水平表(RA_*の表)の先頭25文字を追加 |
リコンシリエーション・アーカイブ・ユーティリティは、次のタスクを実行します。
アクティブ・リコンシリエーション表のすべてのデータまたは特定のデータをアーカイブ・リコンシリエーション表にアーカイブする
アクティブ・リコンシリエーション表のすべてのデータを削除する
リコンシリエーション・アーカイブ・ユーティリティは、ユーザー入力ごとに次の2要素の基準に基づいて、アクティブ・リコンシリエーション表からアーカイブ・リコンシリエーション表にデータを移動することで、データをアーカイブします。
日付ベースの基準。これは、リコンシリエーション・イベントの作成日です。YYYYMMDDの書式で指定する必要があります。この日付以前のレコードがアーカイブされます。
機能リコンシリエーション・イベントの状態ベース基準。これは、リコンシリエーション・イベントのステータスです。ユーティリティの実行時に示されるステータス・オプションから選択する必要があります。
アーカイブ基準の詳細は、「アーカイブ基準」を参照してください。
選択したデータをアーカイブする場合は、指定した日付とイベント・ステータス以前に作成された選択したイベント・ステータスに基づいて、リコンシリエーション・データがユーティリティによってアーカイブされます。
アクティブ・リコンシリエーション表のすべてのデータをアーカイブ・リコンシリエーション表にアーカイブする場合、リコンシリエーション・アーカイブ・ユーティリティによって、指定した日付以前に作成されたリコンシリエーション・データがすべてアーカイブされます。
Oracle Database版のリコンシリエーション・アーカイブ・ユーティリティを構成するファイルは、次のディレクトリにあります。
OIM_ORACLE_HOME/server/db/oim/oracle/Utilities/Recon11gArchival
リコンシリエーション・アーカイブ・ユーティリティは、Oracle Identity Managerを停止してオフライン・モードで実行することも、Oracle Identity Managerを実行してオンライン・モードで実行することもできます。
ユーティリティをオフライン・モードで実行する前に、Oracle Identity Managerを停止する必要があります。
リコンシリエーション・アーカイブ・ユーティリティを実行する前に、データベースにOIM_RECON_ARCH表領域を作成する必要があります。そのためには、SYSやSYSTEMなどのDBA特権ユーザーとして次のサンプル・コマンドを実行できます。
CREATE TABLESPACE OIM_RECON_ARCH
LOGGING DATAFILE 'ORADATA/OIM_RECON_ARCH.dbf'
SIZE 500M REUSE AUTOEXTEND ON NEXT 10M;
注意:
|
ASM、Exadata (ASM)またはOracle Managed Files (OMF)を使用する場合、ここに記載されている指示に従ってください。
ASMを使用する場合、DATA 1
などのディスクグループ名を使用して、次のように表領域をデータベースで作成できます。
CREATE TABLESPACE OIM_RECON_ARCH LOGGING DATAFILE '+DATA1' SIZE 500M AUTOEXTEND ON NEXT 10M;
Oracle Managed Filesを使用する場合、データファイルを省略して、コマンドを次のように実行できます。
CREATE TABLESPACE OIM_RECON_ARCH LOGGING DATAFILE SIZE 500M AUTOEXTEND ON NEXT 10M;
ユーティリティをオフライン・モードで実行する場合は、ユーティリティを実行する前にOracle Identity Managerを停止する必要があります。
アーカイブするリコンシリエーション・データの選択には、次の基準が設けられています。値が一致するデータがアーカイブされます。
日付はYYYYMMDDの形式にする必要があります。指定されたリコンシリエーション・イベント・パラメータ値と一致する、この日付以前のすべてのレコードがアーカイブされます。
リコンシリエーション・イベント・パラメータで、クローズ済、リンク済、クローズ済またはリンク済または「すべて」を選択します。
クローズ済は、リコンシリエーション・マネージャで手動で閉じられたイベントを表します。
リンク済は、Oracle Identity Managerにリコンサイルされたイベントを表し、次の状態を含みます。
作成に成功しました
更新に成功しました
削除に成功しました
作成に失敗しました
更新に失敗しました
削除に失敗しました
クローズ済またはリンク済
アーカイブされるリコンシリエーション・イベントのステータスを選択します。
クローズ済の場合は1を入力
リンク済の場合は2を入力
クローズ済およびリンク済の場合は3を入力
「終了」の場合には4を入力
リコンシリエーション・アーカイブ・ユーティリティを実行するには:
Oracle Identity Managerデータベースが使用可能で、リコンシリエーション・プロセスが実行されていないことを確認します。
注意: リコンシリエーション・アーカイブ・ユーティリティはオフピーク時間帯に実行することをお薦めします。 |
ユーティリティをオフライン・モードで実行する場合は、「サーバーの起動と停止」の章の説明に従って、Oracle Identity Managerを停止します。
ユーティリティをオンライン・モードで実行する場合は、この手順を無視してステップ3に進みます。
Microsoft Windowsプラットフォームでは、短い日付書式をM/d/yyyyとして指定する必要があります。また、時間書式をH:mm:ssとして指定する必要があります。日付書式および時間書式をカスタマイズするには、「コントロール パネル」で「地域と言語のオプション」コマンドを使用します。
注意:
|
LinuxまたはUNIXプラットフォームでは、次のコマンドを実行してoim_recon_archival.shファイルの実行権限を設定し、このファイルが有効なLinuxまたはUNIXテキスト・ファイルであることを確認します。
chmod 755 path/oim_recon_archival.sh dos2unix path/oim_recon_archival.sh
LinuxまたはUNIXプラットフォームでは、path/oim_recon_archival.shファイルを実行してユーティリティを実行します。
Microsoft Windowsプラットフォームでは、path\oim_recon_archival.batファイルを実行してユーティリティを実行します。
Oracle Databaseインストール環境で、求められた場合には次のパラメータの値を入力します。
Oracleホーム・ディレクトリ
Oracle Identity Managerデータベースのユーザー名とパスワード
リコンシリエーション作成日をYYYYMMDD書式で入力します。この日付以前の必要なステータス値を持つすべてのレコードがアーカイブされます。
求められた場合には、アーカイブするデータのリコンシリエーション・イベント・ステータスを選択します。
クローズ済の場合は1を入力
リンク済の場合は2を入力
クローズ済またはリンク済の場合は3を入力
「終了」の場合には4を入力
ユーティリティを実行するモードを指定するように求められた場合、ユーティリティをオンライン・モードで実行する場合は1を入力します。それ以外の場合は、2を入力してユーティリティをオフライン・モードで実行します。
処理するバッチ・サイズを入力します。
デフォルトのバッチ・サイズは5000です。
注意: バッチ・サイズは、アーカイブ/パージの単一のイテレーションで、データベース・レベルでの内部コミットとして処理されるレコード数の値です。実行時にアーカイブ・ユーティリティの操作を開始するときに、バッチ・サイズを入力パラメータ値として指定する必要があります。このバッチ・サイズはデフォルトで5000です。数十万を超えるrecon_eventsをパージする場合は、より大きいバッチ・サイズを選択できます。その場合、RDBMSでより多くのリソースが必要となることがあります(たとえば、TEMP表領域やUNDO表領域でより多くの領域が必要)。 |
ユーティリティはリコンシリエーション・データをアーカイブし、ログ・ファイルに実行サマリーを記録します。
Microsoft Windowsプラットフォームでは、ユーティリティの実行後に、短い日付書式を地域またはロケールの日付書式に再設定します。「コントロール パネル」の「地域と言語のオプション」コマンドを使用して日付書式を再設定します。
アクティブ・リコンシリエーション表からデータが削除されるため、DBAは統計を更新するためにアクティブ・リコンシリエーション表およびその索引を分析する必要があります。
この項では、タスク・アーカイブ・ユーティリティの使用方法について説明します。内容は次のとおりです。
Oracle Identity Managerでは、タスクはリソースのプロビジョニングを処理するプロセスを構成する1つ以上のアクティビティを意味します。たとえば、リソースへのアクセスを要求するプロセスには、複数のプロビジョニング・タスクが含まれます。Oracle Identity Managerは、アクティブ・タスク表にタスク・データを格納します。
Oracle Identity Managerのデフォルトでは、完了したタスクはアクティブ・タスク表から削除されません。アクティブ・タスク表のサイズが増加するにつれて、特にプロビジョニング・タスクの管理時に、パフォーマンスが低下する可能性があります。タスクが正常に実行されたら、タスク・アーカイブ・ユーティリティを使用してタスク・データをアーカイブし、それをアクティブ・タスク表から削除できます。タスク・アーカイブ・ユーティリティでタスク・データをアーカイブすると、パフォーマンスが改善され、データを安全に格納できます。
タスク・アーカイブ・ユーティリティは、アーカイブしたタスク・データをアーカイブ・タスク表に格納します。これらの表の構造は、アクティブ・タスク表と同じです。
表20-7に、アクティブ・タスク表と、それに対応するアーカイブ・タスク表(アクティブ・タスク表のデータがアーカイブされる表)を示します。
タスク・アーカイブ・ユーティリティを使用して、次のタイプのタスクをアーカイブできます。
完了済のプロビジョニング・タスク
完了済および取消済のプロビジョニング・タスク
タスク・アーカイブ・ユーティリティは、アクティブ・タスク表からアーカイブ・タスク表にタスクを移動することで、プロビジョニング・タスクをアーカイブします。これは、ユーザー入力ごとに指定される、次の2要素の基準に基づきます。
日付ベースの基準。これは、プロビジョニング・タスクの作成日です。YYYYMMDDの書式で指定する必要があります。この日付以前のレコードがアーカイブされます。
機能基準のタスク・ステータス。これは、プロビジョニング・タスクのステータスです(たとえば、完了済ステータスや完了済および取消済ステータスのプロビジョニング・タスク)。ユーティリティの実行時に示されるステータス・オプションから選択する必要があります。
アーカイブ操作はアーカイブするタスク・データのタイプを示し、ユーザー・ステータスは削除、無効化またはその両方を行ったユーザーに関するデータをアーカイブするかどうかを決定します。タスク実行日はタスクを実行する日を示し、YYYYMMDD書式である必要があります。
指定したタスク実行日まで、実行されるすべてのタスクがアーカイブされます。アーカイブ・プロセスにかかる時間を短縮するために、アーカイブされるレコード数が200000を超えると、ユーティリティによりすべてのアクティブ・タスク表の索引が削除されます。アーカイブ・データがアクティブ・タスク表から削除された後に、索引は再作成されます。200000という値は必要な値に変更できます。OIM_TasksArch.batファイルまたはOIM_TasksArch.shファイルのコードの次の行で値を変更できます。
.batファイルの場合、set INDXRESP=200000
.shファイルの場合、indxopt=200000
Oracle Database版のタスク・アーカイブ・ユーティリティを構成するファイルは、次のディレクトリにあります。
OIM_HOME/db/oim/oracle/Utilities/TaskArchival
注意: アクティブ・タスク表からアーカイブ・タスク表にアーカイブされたデータは、Oracle Identity Managerから使用できなくなります。このデータにアクセスするには、Oracle Identity Managerデータベースのアーカイブ・タスク表を問い合せる必要があります。 |
タスク・アーカイブ・ユーティリティは、Oracle Identity Managerを停止してオフライン・モードで実行することも、Oracle Identity Managerを実行してオンライン・モードで実行することもできます。
ユーティリティをオフライン・モードで実行する前に、Oracle Identity Managerを停止する必要があります。
タスク・アーカイブ・ユーティリティをOracle Databaseとともに使用するには、次の手順を実行する必要があります。
SQL*Plusを起動し、Oracle DatabaseにSYSユーザーとして接続します。
次のコマンドを入力して、アーカイブ・タスク表用に別の表領域を作成します。DATA_DIRを、データ・ファイルを格納するディレクトリで置き換え、必要に応じてサイズなどのパラメータを環境に合せて調整します。
CREATE TABLESPACE TasksArch
DATAFILE 'DATA_DIR\tasksarch_01.dbf' SIZE 1000M REUSE
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
注意: 大量のデータをアーカイブする際は、大きなサイズのUNDO表領域を割り当てることをお薦めします。また、初期化パラメータparallel_max_serversおよびparallel_min_serversを構成して、パラレル実行を有効にしてください。パラレル実行は、アーカイブ・プロセスのパフォーマンスの向上に役立ちます。 |
Oracle Identity Managerデータベース・ユーザーとしてOracle Databaseに接続します。
注意: Oracle Identity Managerユーティリティを実行する環境で、LD_LIBRARY_PATHをSQL*PlusなどのOracleユーティリティを開始するように設定する必要があります。 |
次の手順を実行して、タスク・アーカイブ・ユーティリティを実行します。
Oracle Identity Managerデータベースが使用可能になっており、他のOracle Identity Managerトランザクションに対してはオープンになっていないことを確認します。
注意: タスク・アーカイブ・ユーティリティは、オフピーク時間帯に実行することをお薦めします。 |
OSI、SCHおよびOSH表のバックアップを作成したことを確認します。
ユーティリティをオフライン・モードで実行する場合は、「サーバーの起動と停止」の章の説明に従って、Oracle Identity Managerを停止します。
ユーティリティをオンライン・モードで実行する場合は、この手順を無視してステップ4に進みます。
Microsoft Windowsプラットフォームでは、短い日付書式をdddd M/d/yyyyとして指定する必要があります。また、時間書式をH:mm:ssとして指定する必要があります。日付書式および時間書式をカスタマイズするには、「コントロール パネル」で「地域と言語のオプション」コマンドを選択します。
注意:
|
LinuxおよびUNIXプラットフォームでは、path/OIM_TasksArch.shファイルを実行します。Microsoft Windowsプラットフォームでは、path\OIM_TasksArch.bat
ファイルを実行します。
Oracle Databaseインストール環境で、求められた場合には次のパラメータの値を入力します。
Oracleホーム・ディレクトリ
Oracle Identity Managerデータベース名またはOracle Identity Managerデータベースがリモート・コンピュータで稼働している場合はTNS文字列
Oracle Identity Managerデータベースのユーザー名とパスワード
求められた場合には、次のオプションのいずれかを選択します。
完了済のアーカイブ・プロビジョニング・タスク。
完了済および取消済のアーカイブ・プロビジョニング・タスク。
終了します。
ユーティリティを実行するモードを指定するように求められた場合、ユーティリティをオンライン・モードで実行する場合は1を入力します。それ以外の場合は、2を入力してユーティリティをオフライン・モードで実行します。
入力を求められたら、YYYYMMDDという書式でタスク実行日を入力します。指定したタスク実行日まで、実行されるすべてのタスクがアーカイブされます。現在の日付以前に実行されたすべてのタスクをアーカイブするには、日付を入力せずに[Enter]キーを押します。
ユーティリティがアーカイブ・プロセスを開始する前に、サマリー情報が表示されます。サマリー情報によって、アーカイブされるタスクの合計数がわかります。サマリー情報を注意深く確認し、サマリーに表示されている削除量をデータベースでサポートできることを確認します。
タスクをアーカイブするには、入力を求められたときにyまたはYの値を入力します。あるいは、nまたはNを入力して、ユーティリティを終了します。
注意: 入力を求められたときに、YまたはNの値を入力する必要があります。値を選択しないで[Enter]キーを押すと、ユーティリティでは再度アーカイブされるタスク数が計算され、アーカイブを開始せずに確認が求められます。 |
Microsoft Windowsプラットフォームでは、タスク・アーカイブ・ユーティリティの実行完了後に、短い日付書式を地域またはロケールの日付書式に再設定します。「コントロール パネル」で「地域と言語のオプション」コマンドを使用して日付書式を再設定します。
注意: アクティブ・タスク表からデータが削除されるため、更新される統計用にアクティブ・タスク表およびその索引を分析する必要があります。Oracle Identity ManagerのデータベースとしてOracle Databaseを使用している場合のみ、この手順を実行してください。 |
表20-8に、タスク・アーカイブ・ユーティリティによって生成される出力ファイルを示します。
表20-8 タスク・アーカイブ・ユーティリティによって生成される出力ファイル
ファイル | 説明 |
---|---|
|
ユーティリティが指定された資格証明を使用してデータベースに接続できなかった場合に生成されます。 |
|
アーカイブ・プロセスまたは削除プロセスが失敗した場合に生成されます。 |
|
アーカイブ・プロセスまたは削除プロセスが成功した場合に生成されます。 |
注意: ユーティリティを再度実行するときに、これらのエラー・ログ・ファイルは削除されます。 |
この項では、リクエスト・アーカイブ・ユーティリティの使用方法について説明します。内容は次のとおりです。
デフォルトで、Oracle Identity Managerはクローズまたは取り消されたリクエストをアクティブ・リクエスト表から削除しません。これらのリクエストをアーカイブしてディスク領域を解放し、データベースのパフォーマンスを向上させるには、リクエスト・アーカイブ・ユーティリティを使用します。リクエスト・データは、リクエスト作成日とリクエスト・ステータスに基づいてアーカイブできます。リクエスト・ステータスに基づいてリクエストをアーカイブするかどうかは任意です。リクエスト・ステータスを使用すると、次の内容をアーカイブできます。
リクエスト・ステータスが「取消し済」、「クローズ済」または「完了」である完了したリクエスト。これは、オプション完了の場合は1を選択して指定されます。
リクエスト・ステータスが「取消し済」、「クローズ済」、「完了」または「失敗」、一部失敗である完了または失敗したリクエスト。これは、オプション完了および失敗の場合は2を選択して指定されます。
リクエスト作成日に基づくすべてのリクエスト。これは、オプションすべての場合は3を選択して指定されます。
表20-9に、アーカイブされる表の名前と、対応するアーカイブ表の名前を示します。
表20-9 アーカイブ表
メイン表 | アーカイブ表 |
---|---|
REQUEST |
ARCH_REQUEST |
REQUEST_HISTORY |
ARCH_REQUEST_HISTORY |
REQUEST_APPROVALS |
ARCH_REQUEST_APPROVALS |
REQUEST_ENTITIES |
ARCH_REQUEST_ENTITIES |
REQUEST_ENTITY_DATA |
ARCH_REQUEST_ENTITY_DATA |
REQUEST_BENEFICIARY |
ARCH_REQUEST_BENEFICIARY |
REQUEST_BENEFICIARY_ENTITIES |
ARCH_REQUEST_BE |
REQUEST_BENEFICIARY_ENTITYDATA |
ARCH_REQUEST_BED |
REQUEST_TEMPLATE_ATTRIBUTES |
ARCH_REQUEST_TA |
WF_INSTANCE |
ARCH_WF_INSTANCE |
REQUEST_COMMENTS |
ARCH_REQUEST_COMMENTS |
Oracle Database版のリクエスト・アーカイブ・ユーティリティを構成するファイルは、次のディレクトリにあります。
OIM_HOME/db/oim/oracle/Utilities/RequestArchival
リクエスト・アーカイブ・ユーティリティは、Oracle Identity Managerを停止してオフライン・モードで実行することも、Oracle Identity Managerを実行してオンライン・モードで実行することもできます。
ユーティリティをオフライン・モードで実行する前に、Oracle Identity Managerを停止する必要があります。
ユーティリティをオフライン・モードで実行する場合は、ユーティリティを実行する前にOracle Identity Managerを停止する必要があります。
注意: Oracle Identity Managerユーティリティを実行する環境で、LD_LIBRARY_PATHをSQL*PlusなどのOracleユーティリティを開始するように設定する必要があります。 |
表20-10に、リクエスト・アーカイブ・ユーティリティによって使用される入力パラメータのリストを示します。
表20-10 入力パラメータ
パラメータ | 説明 |
---|---|
Oracleホーム |
システムのORACLE_HOME環境変数の値。 |
Oracle SID |
Oracle Identity ManagerデータベースのSID (TNSの名前かTNS別名)。 |
OIM DBユーザー |
Oracle Identity Managerデータベース・ユーザーのデータベース・ログインIDです。 |
OIM DBパスワード |
Oracle Identity Managerデータベース・ユーザーのパスワード。 |
リクエスト・ステータス |
ユーザー入力値1、2または3に基づいたリクエスト・ステータス。 |
リクエスト作成日 |
ユーティリティは、このリクエスト基準日またはそれ以前に作成された、必要なリクエスト・ステータスのすべてのリクエストをアーカイブします。 |
バッチ・サイズ |
ユーティリティは、レコードのグループまたはバッチを単一トランザクションとして処理します。バッチ・サイズは、ユーティリティのパフォーマンスに影響する可能性があります。 「バッチ・サイズ」のデフォルト値は |
ユーティリティ実行モード |
ユーティリティを実行するモード(オンラインまたはオフライン)。オンライン・モードの場合は1を、オフライン・モードの場合は2を入力する必要があります。 ユーティリティは、オンライン・モードよりもオフライン・モードのほうが高速で実行されます。ただし、ユーティリティをオフライン・モードで実行するには、ダウンタイムが必要です。オフライン・モードで実行することによってアーカイブ操作を高速化できますが、ユーティリティがアーカイブ操作を完了するまでOracle Identity Managerを使用できません。このため、このオプションを選択する前に、Oracle Identity Managerが実行されていないことを確認してください。 |
Oracle Identity Managerデータベースが使用可能であることを確認します。
注意: リクエスト・アーカイブ・ユーティリティは、オフピーク時間帯に実行することをお薦めします。 |
ユーティリティをオフライン・モードで実行する場合は、「サーバーの起動と停止」の章の説明に従って、Oracle Identity Managerを停止します。
ユーティリティをオンライン・モードで実行する場合は、この手順を無視してステップ3に進みます。
Microsoft Windowsプラットフォームでは、短い日付書式をdddd M/d/yyyy
.として指定する必要があります。また、時間書式を H:mm:ss
として指定する必要があります。日付書式および時間書式をカスタマイズするには、「コントロール パネル」で「地域と言語のオプション」コマンドを使用します。
注意:
|
UNIXプラットフォームでは、次のコマンドを実行してOIM_request_archival.sh
ファイルの実行権限を設定し、このファイルが有効なUNIXテキスト・ファイルであることを確認します。
chmod 755 path/OIM_request_archival.sh dos2unix path/OIM_request_archival.sh
UNIXプラットフォームでは、path/OIM_request_archival.sh
ファイルを実行します。Microsoft Windowsプラットフォームでは、path\OIM_request_archival.bat
ファイルを実行します。
oim_request_archivalスクリプトではデータベース入力が検証され、データベースとの接続が確立されます。次にoim_request_archival.sqlスクリプトが呼び出され、このスクリプトはユーティリティに関連するPL/SQLプロシージャをコンパイルするために使用されます。
Oracle Databaseインストール環境で、求められた場合には次のパラメータの値を入力します。
Oracleホーム・ディレクトリ
Oracle Identity Managerデータベース名またはOracle Identity Managerデータベースがリモート・コンピュータで稼働している場合はTNS文字列。そうでない場合は、ORACLE SIDを入力します。
Oracle Identity Managerデータベースのユーザー名とパスワード
求められた場合には、次のオプションのいずれかを入力します。
ステータスが「リクエストが取り消されました」、「リクエストがクローズされました」、「リクエストが完了しました」で、作成日がユーザーによってYYYYMMDD書式で指定されたリクエスト作成日またはそれ以前であるリクエストをアーカイブするには、1を入力します。
ステータスが「リクエストが取り消されました」、「リクエストがクローズされました」、「リクエストが完了しました」またはリクエストの一部が失敗しましたで、作成日がユーザーによってYYYYMMDD書式で指定されたリクエスト作成日またはそれ以前であるリクエストをアーカイブするには、2を入力します。
リクエスト作成日が、ユーザーによってYYYYMMDD書式で指定されたリクエスト作成日またはそれ以前であるすべてのリクエストをアーカイブするには、3を入力します。
ユーティリティを実行するモードを指定するように求められた場合、ユーティリティをオンライン・モードで実行する場合は1を入力します。それ以外の場合は、2を入力してユーティリティをオフライン・モードで実行します。
求められた場合には、バッチ・サイズを指定します。
注意: バッチ・サイズは、アーカイブ/パージの単一のイテレーションで、データベース・レベルでの内部コミットとして処理されるレコード数の値です。実行時にアーカイブ・ユーティリティの操作を開始するときに、バッチ・サイズを入力パラメータ値として指定する必要があります。このバッチ・サイズはデフォルトで2000です。より大きいバッチ・サイズを選択できますが、その場合、データベースでより多くのリソースが必要となることがあります(たとえば、TEMP表領域やUNDO表領域でより多くの領域が必要)。 |
ユーティリティはリクエスト・データをアーカイブし、ログ・ファイルに実行サマリーを記録します。
Microsoft Windowsプラットフォームでは、ユーティリティの実行後に、短い日付書式を地域またはロケールの日付書式に再設定します。「コントロール パネル」の「地域と言語のオプション」コマンドを使用して日付書式を再設定します。
アクティブ・リクエスト表からデータが削除されるため、DBAは統計を更新するためにアクティブ・リクエスト表およびその索引を分析する必要があります。Oracle Identity ManagerのデータベースとしてOracle Databaseを使用している場合のみ、この手順を実行してください。
すべてのログは、現在のフォルダに作成されているlogs/ディレクトリに書き込まれます。表20-11にユーティリティにより生成されるログ・ファイルのリストを示します。
この項では、監査アーカイブおよびパージ・ユーティリティの使用方法について説明します。内容は次のとおりです。
注意: Oracle Database Enterprise Editionのパーティション化機能は、監査アーカイブおよびパージの実装に必要です。 |
Oracle Identity Managerデータベース・スキーマで継続的にデータが生成され、監査データが増加することにより、データベース・サーバーによる記憶域の消費量が徐々に増大します。監査データはUPA表に移入されます。UPA表のデータの増加により、ディスク領域とメンテナンスの問題が発生する場合があります。したがって、UPA表内の古い監査データを消去またはアーカイブする必要があります。
ディスク領域の消費量を制御するために、監査アーカイブおよびパージ・ユーティリティを使用できます。このユーティリティは、論理的かつ一貫した方法でデータをパージすることにより、監査データの増加を制御します。
注意:
|
Oracle Identity Managerを停止して最新データをフェッチする必要があります。これは、NULLレコードとしてEFF_TO_DATEを取得するためです。新規にパーティション化されたUPAでOracle Identity Managerを実行する際、残りのレコードを後で取得できます。
パーティションをアーカイブまたは削除できる、暦年に基づいたUPA表のパーティション化をお薦めします。パーティション化の利点は、Oracle Identity Managerでは古いパーティションにある古い監査データが使用されないため、古いパーティションをアーカイブまたはパージできることです。Oracle Identity Managerでは、最新の監査データおよび現在の暦年データが使用されます。したがって、UPA表は、EFF_TO_DATE列を使用して、日付範囲に基づいたパーティション化方法で暦年ごとにパーティション化されます。パーティション化後、EFF_TO_DATEがNULLである最新の監査データが1つのパーティションにグループ化され、暦年ごとに1つのパーティションが作成されます。Oracle Identity Managerは、現在の最新年のパーティション以外のパーティションに対する読取りや書込みは行いません。
たとえば、2005年からOracle Identity Managerの監査機能を使用していて、暦年2011年に監査アーカイブおよびパージ・ソリューションを実装する場合、暦年ごとにパーティションを作成すると仮定すると、これを実施した後に7つのパーティションが作成されることになります。これらの7つのパーティションで、Oracle Identity Managerは次のパーティションに対してのみ読取りまたは書込みを行います。
最新のパーティション
現在の年のパーティション(たとえば、2011年)
それ以前の年のパーティションはすべてアーカイブ後にパージされます。アーカイブしない場合は、それらの古いパーティションをパージできます。古いパーティションをアーカイブおよびパージすることにより、領域を再利用することができます。現在の最新年のパーティションは、Oracle Identity Managerが引き続き使用するためそのままにしておく必要があります。
監査アーカイブおよびパージ・ユーティリティを使用するには、次の前提条件を満たす必要があります。
データベースのパーティション化はOracle DatabaseのEnterprise Editionでのみサポートされています。したがって、監査アーカイブおよびパージ・ソリューションを実装するには、Oracle DatabaseのEnterprise Editionを実行する必要があります。
UPA表はレンジ・パーティション化する必要があります。間隔はデータ分散単位の値にできます。パーティション方法のそれ以外のモードはサポートされていません。
UPA表の最新のバックアップが使用可能であることを確認します。UPA表のバックアップの作成は、このソリューションを適用するための必須の前提条件です。このソリューションを本番データベースに実装する前に、開発またはステージング環境で試用することをお薦めします。
このソリューションを実装する前に、過去何年分の監査データをオンラインにしておく必要があるかを決定します。これは、事前にパーティションを作成する場合に役立ちます。
各パーティションは独自の表領域に置く必要があります。異なる年のパーティションや他のデータ間で表領域を共有しないでください。
パーティション化中、各暦年の監査データは最終的な宛先に移動される前に表にコピーされます。コピーされたデータを保持するディスク領域をプロビジョニングしておく必要があります。
アーカイブおよびパージ・ソリューションのためのUPA表を準備するには、次の手順を実行します。
UPA表がパーティション化されるまで、Oracle Identity Managerデータベースに対するトランザクションが存在しないようにします。
UPA表に対する問合せを実行して、監査データの最小および最大の暦年を取得します。最小および最大の年を取得するには次の問合せが役立ちます。最大の年は現在の暦年である必要があります。
SELECT EXTRACT (YEAR FROM MIN (eff_to_date)) min_year,EXTRACT (YEAR FROM MAX (eff_to_date)) running_year FROM upa;
これは、最小の年から始まる各暦年のパーティションを決定する際に役立ちます。
Oracle Identity Managerが実行されておらず、オフライン・ユーティリティで使用できないことを確認します。
新規パーティション表を作成します。
2005年を最小の年、2011年を実行または現在の暦年とした場合、新規パーティション表を作成する前に次のことを決定しておく必要があります。
何年分の古い監査データを保持しますか。3年分の監査データのみを保持することが重要な場合は、2008年からの新規にパーティション化された表を作成する必要があります。2008年より古いデータは、元のUPA表が削除されるときにクリーンアップされます。
何年分の古いデータを保持するかを決定した後、古いデータをどのようにしてどこに保持しますか。古いデータ・パーティションをすべてアーカイブUPA表に保持しますか、または古いパーティションのバックアップを作成し、古いパーティションを削除しますか。古いパーティションをテープに移し、UPA表からパージすることをお薦めします。前述のように、最新の実行中の暦年パーティションはそのままにしておく必要があります。
次のサンプルは、3年分の監査データをUPA表に保持し、現在の暦年は2011であることを想定しています。
SQL> SELECT 'Create Table UPA_PART ( UPA_KEY NUMBER (19) Not Null, USR_KEY NUMBER (19) Not Null, EFF_FROM_DATE TIMESTAMP (6) Not Null, EFF_TO_DATE TIMESTAMP (6), SRC VARCHAR2 (4000), SNAPSHOT CLOB, DELTAS CLOB, SIGNATURE CLOB ) PARTITION BY RANGE (EFF_TO_DATE) (PARTITION UPA_2008 VALUES LESS THAN (TO_DATE(''01/01/2009'', ''DD/MM/YYYY'')) Tablespace upa_2008, PARTITION UPA_2009 VALUES LESS THAN (TO_DATE(''01/01/2010'', ''DD/MM/YYYY'')) Tablespace upa_2009, PARTITION UPA_2010 VALUES LESS THAN (TO_DATE(''01/01/2011'', ''DD/MM/YYYY'')) Tablespace upa_2010, PARTITION UPA_2011_PART1 VALUES LESS THAN (TO_DATE('''||TO_CHAR(SYSDATE,'DD/MM/YYYY HH24:MI:SS')||''',''DD/MM/YYYY HH24:MI:SS'')) TABLESPACE UPA_2011_PART1, PARTITION UPA_2011_PART2 VALUES LESS THAN (TO_DATE(''01/01/2012'',''DD/MM/YYYY'')) TABLESPACE UPA_2011_PART2, PARTITION UPA_LATEST VALUES LESS THAN (MAXVALUE) TABLESPACE UPA_MAX ) ENABLE ROW MOVEMENT;' FROM DUAL;
次の文を実行して、UPA表と同様の構造を持つパーティション化されていない別の表を作成します。
SQL> Create table upa_non_part Tablespace TBS_NAME as select * from upa where 1=2;
ここで、TBS_NAMEは、交換されるパーティションと同じ表領域の名前です。
この表は本来一時的なものです。この表の目的は、新規にパーティション化されたUPA表への監査データのロードを容易にすることです。
注意: UPA_NON_PARTまたはパーティション化されていない一時表は、交換するパーティションと同じ表領域に作成する必要があります。 |
次に示すように、最新の監査データをパーティション化されていないUPA表にロードします。
SQL> Insert /*+ parallel */ into upa_non_part select /*+ parallel */ * from upa where eff_to_date is null; SQL> COMMIT;
注意: INSERT文でのヒント/*+parallel*/の使用は任意であり、使用可能なリソースに応じて他のヒントを使用してパフォーマンスを改善することもできます。 |
次に示すように、ALTER TABLEコマンドを使用してデータをパーティション化された表に入れ替えます。
SQL> ALTER TABLE upa_part EXCHANGE PARTITION UPA_LATEST WITH TABLE UPA_NON_PART WITH VALIDATION UPDATE GLOBAL INDEXES;
次に示すように、upa_non_part表を削除します。
SQL> DROP TABLE upa_non_part;
パーティションを交換する際は、データが物理的に書き込まれるのではなく、データ・ディクショナリが更新されます。したがって、交換するパーティションに関連する同じ表領域内のパーティション化されていない一時UPA_NON_PART表を削除し、再作成する必要があります。
次に示すように、パーティション化されていない元のUPA表の名前をUPA_OLDに変更します。
SQL> ALTER TABLE upa rename TO upa_old;
新規にパーティション化されたUPA_PART表の名前をUPAに変更します。
SQL> RENAME UPA_PART to UPA;
新規UPA表の制約を管理します。これを行うには、次のようにします。
次に示すように、制約を古いUPA表から他の名前に変更します。
ALTER TABLE UPA_old RENAME CONSTRAINT PK_UPA TO PK_UPA_old; ALTER INDEX IDX_UPA_EFF_FROM_DT RENAME TO IDX_UPA_EFF_FROM_DT_old; ALTER INDEX IDX_UPA_EFF_TO_DT RENAME TO IDX_UPA_EFF_TO_DT_old; ALTER INDEX IDX_UPA_USR_KEY RENAME TO IDX_UPA_USR_KEY_old; ALTER INDEX PK_UPA RENAME TO PK_UPA_OLD;
必要な索引および主キー制約を、新規にパーティション化されたUPA表に作成します。表領域やサイズなどの記憶域特性を必ず追加してください。これを行うには、次のSQL問合せを実行します。
SQL>create index IDX_UPA_EFF_FROM_DT on UPA (EFF_FROM_DATE) Local; SQL>create index IDX_UPA_EFF_TO_DT on UPA (EFF_TO_DATE) Local; SQL>create index IDX_UPA_USR_KEY on UPA (USR_KEY) Local; SQL>ALTER TABLE UPA add constraint PK_UPA primary key (UPA_KEY) using index;
注意: 主キーをサポートするために、パーティション化されていないグローバル索引が作成されます。グローバル索引はパーティションに変更が加えられるたびに使用できなくなります。必要に応じて、索引を再構築する必要があります。 |
次に示すように、UPA表の統計収集を実行します。
SQL>Exec dbms_stats.gather_table_stats(ownname => 'SCHEMA_NAME',tabname => 'UPA',cascade => TRUE,granularity => 'GLOBAL and PARTITION');
注意: デフォルトでグローバル統計が収集されます。Oracle 11gにはパーティション化されたオブジェクトの統計収集に対する改善が組み込まれているため、変更されていないパーティションは再スキャンされません。これにより、一部のパーティションに静的データが含まれる大きな表で統計収集の速度が大幅に速くなります。表に新しいパーティションが追加された場合は、新しいパーティションの統計のみを収集する必要があります。グローバル統計は、既存のパーティション一覧を使用して新しいパーティション一覧を集計することにより、自動的に更新されます。 |
Oracle Identity Managerを起動します。データベースをトランザクションに対してオープンにすることができます。テストを行って、アプリケーションが期待どおりに実行されることを確認します。
現在の年のデータをUPA_2011_PART1に追加してすべてのデータが含まれるようにし、現在の年の一貫性を維持します。これを行うには、次のSQL問合せを順番に実行します。
SQL> CREATE TABLE upa_non_part Tablespace TBS_NAME AS SELECT * FROM upa WHERE 1=2;
ここで、TBS_NAMEは、交換されるパーティションと同じ表領域名です。
SQL> Alter Table UPA_NON_PART add constraint PK_UPA_NON_PART primary key (UPA_KEY) using index; ............. ............. SQL> Insert into upa_non_part select * from upa_old where eff_to_date >= to_date('01/01/2011', 'mm/dd/yyyy'); ............. ............. SQL> COMMIT; ............. ............. SQL> ALTER TABLE upa_part exchange partition UPA_2011_PART1 WITH table upa_non_part WITH VALIDATION UPDATE GLOBAL INDEXES; ............. ............. SQL> Drop table upa_non_part;
必要に応じて、前年のデータを新規にパーティション化されたUPA表に追加します。これを行うには、次のようにします。
次のSQL問合せを順番に実行します。
SQL> CREATE TABLE upa_non_part Tablespace TBS_NAME AS SELECT * FROM upa WHERE 1=2;
ここで、TBS_NAMEは、交換されるパーティションと同じ表領域です。
............. ............. SQL> Alter Table UPA_NON_PART add constraint PK_UPA_NON_PART primary key (UPA_KEY) using index; ............. ............. SQL> Insert into upa_non_part select * from upa_old where eff_to_date >= to_date('01/01/YEAR', 'mm/dd/yyyy') and eff_to_date < to_date('01/01/<YEAR+1>', 'mm/dd/yyyy');
ここで、YEARは、新規にパーティション化されたUPA表にデータを追加する年です。
............. ............. SQL>COMMIT; ............. ............. SQL> Alter table upa exchange partition UPA_<year> with table upa_non_part with validation Update global indexes;
索引が使用できない場合は、再構築します。次のSQL問合せにより、使用できない索引が表示されます。
SQL> Select index_name, partition_name, tablespace_name, status from user_ind_partitions;
次に示すように、upa_non_part表を削除します。
SQL> Drop table upa_non_part;
注意: 過去の各年に対してステップ15を繰り返します。 |
UPA表に対するすべてのパーティション操作が完了し、データがすべて追加されました。次に示すように、UPA表の統計収集を実行します。
SQL>Exec dbms_stats.gather_table_stats(ownname => '<Schem_name>',tabname => 'UPA',cascade => TRUE,granularity => 'GLOBAL and PARTITION');
UPA_OLD表が不要な場合は、削除します。削除する前に、この表のバックアップを作成できます。
次の項では、UPA表のアーカイブおよびパージについて説明します。
Oracle Identity Managerには、常に現在の最新暦年の監査データが必要です。次に、最新暦年のパーティションの名前を示します。
UPA_LATEST: 最新のパーティション
UPA_2011_PART1およびUPA_2011_PART2: 現在の年のパーティション(現在の年が2011の場合)
これらの2つのパーティションは、Oracle Identity Managerが引き続き使用するためそのままにしておく必要があります。これらの2つのパーティションはアーカイブまたはパージしないでください。
新しい暦年になる前にUPA表に新規パーティションを追加する必要があります。これを行うには、次のSQLテンプレートを使用します。
SQL> Alter table UPA split partition UPA_LATEST at (TO_DATE('01/01/YEAR+1','DD/MM/YYYY')) into (partition UPA_YEAR tablespace UPA_YEAR,partition UPA_LATEST tablespace UPA_MAX) update global indexes;
ここで、TO_DATE関数のYEARは、新しい暦年プラス1を表します。パーティション名および表領域名のYEARは、次の新しい暦年を示します。
新しい暦年2012年の新規パーティションを追加するSQL文の例は、次のとおりです。
SQL> Alter table UPA split partition UPA_LATEST at (TO_DATE('01/01/2013','DD/MM/YYYY')) into (partition UPA_2012 tablespace UPA_2012,partition UPA_LATEST tablespace UPA_MAX) update global indexes;
新しい暦年になる前に所定のSQLテンプレートを使用して新規パーティションを追加することをお薦めします。ただし、次の暦年になる前に新規パーティションを追加しない場合、次の年の開始後に同じSQLコマンドを使用して新規パーティションを追加できます。
UPA表のパーティションをアーカイブまたはパージするには、次の手順を実行します。
Oracle Identity Managerのアテステーション機能を使用する場合は、アーカイブまたはパージするパーティションにアクティブなアテステーション・レコードがないことを確認します。これを確認するには、次のSQLを使用します。
SQL> SELECT COUNT(1) FROM UPA PARTITION(<PARTITION_TO_BE_DROPPED>) WHERE UPA_KEY IN (select distinct (upa_key) from apt apt, atr atr, atd atd where apt.atr_key=atr.atr_key and atr.atr_completion_time is NULL and apt.apt_key = atd.apt_key);
この問合せは、アクティブなアテステーション・レコードがないことを意味するゼロ・レコードを返す必要があります。ゼロ以外の値が返される場合は、削除対象のパーティションを指すアクティブなアテステーションがまだ存在していることを意味します。このことは一般的ではありませんが、過去の年のパーティションを削除する前に、アクティブなアテステーション・レコードがないことを確認する必要があります。
削除対象のパーティションのデータを必要とするカスタム・レポートまたは問合せがないことを確認します。
削除対象のパーティションをテープまたは他のメディアにアーカイブします。パーティションをアーカイブするには多くの方法があります。方法の1つは、データ・ポンプまたはエクスポート・ユーティリティを使用して、削除対象のパーティションをアーカイブすることです。使用中の環境で最も効果的な方法を選択します。
パーティションをパージします。これを行うには、次のようにします。
SQL> Alter table UPA drop partition PARTITION_NAME UPDATE GLOBAL INDEXES; SQL>Drop tablespace TBS_NAME including contents and datafiles;
ここで、TBS_NAMEは削除対象のパーティションに関連付けられている表領域で、ここに他のデータが含まれていてはいけません。
注意:
|