Oracle Identity Managerは、組織内で多数あるエンティティ・データのリポジトリの1つである場合があります。Oracle Identity Managerの使用を開始するとき、他のリポジトリのデータをOracle Identity Managerにロードすることが必要になる場合があります。バルク・ロード・ユーティリティは、このような要件の解決策となります。
バルク・ロード・ユーティリティは、大量のデータをOracle Identity Managerにロードするプロセスを自動化することを目的としています。データのロードに必要な停止時間の短縮に役立ちます。このユーティリティは、Oracle Identity Managerのインストール後に使用することも、Oracle Identity Managerの本番期間中に随時使用することもできます。バルク・ロード・ユーティリティでは、ユーザー、アカウント、ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロードを実行します。
このドキュメントの内容は次のとおりです。
バルク・ロード・ユーティリティの機能は次のとおりです。
このユーティリティは、Oracle Identity Managerリリース9.1.0以上と互換性があります。
データは、OIMユーザー、OIMユーザーに割り当てられた(プロビジョニングされた)アカウント、ロール、ロール階層、ロール・メンバーシップまたはロール・カテゴリとして、Oracle Identity Managerにロードできます。
データは、1つまたは複数のCSVファイル、または1つのデータベース表からロードできます。Oracle Identity Managerにインポートされたデータは、OIMユーザー、OIMユーザーにプロビジョニングされたアカウント、ロール、ロール階層、ロール・メンバーシップまたはロール・カテゴリに自動的に変換されます。
データは、1つまたは複数の信頼できるソースからロードできます。
データは、空のOracle Identity Managerリポジトリ、またはすでにOIMユーザーおよびリソースに関するデータが含まれているOracle Identity Managerリポジトリにロードできます。つまり、ユーザー・データは、Oracle Identity Managerのインストール直後か、またはシステムがすでに本番状態にある場合にいつでもロードできます。
ユーザー・データのロード中に生成された例外は処理され、プロセスのロードに失敗したレコードはロードを再試行できます。
ユーザーのバルク・ロード操作後に、監査スナップショットを生成できます。
操作中にはダミー・パスワードが使用されるため、OIMユーザー・データのバルク・ロード後、最初のログイン時にパスワードの変更を要求されます。
注意: このユーティリティはユーザー属性の暗号化に使用できません。つまり、Oracle Identity Managerでユーザー・フィールドが暗号化されている場合、このユーティリティを使用して、そのフィールドにロードされたデータを暗号化することはできません。 |
バルク・ロード・ユーティリティの実行の前提条件は次のとおりです。
このユーティリティをインストールするには、次の手順を実行します。
インストール・パッケージの次のディレクトリを圧縮し、Oracle Identity Managerデータベース・ホスト・コンピュータ上のディレクトリにコピーします。
MIDDLEWARE_HOME/Oracle_IDM1/server/db/oim/oracle/Utilities/oimbulkload
注意: ユーティリティは、リモート・ホストから実行できます。Oracle Identity Managerデータベース・ホストのディレクトリからこのユーティリティを実行することは、必須ではありません。 ユーティリティをMIDDLEWARE_HOME/Oracle_IDM1/server/db/oim/oracle/Utilities/oimbulkload/ディレクトリから直接実行することもできます。 |
ZIPファイルの内容を抽出します。
ZIPファイルの内容を抽出すると、oimbulkloadディレクトリが作成されます。このディレクトリ内に、次のディレクトリが作成されます。
sqls: このディレクトリには、バルク・ロード操作中に使用されるSQLスクリプトが含まれています。
scripts: このディレクトリには、バルク・ロード操作中に使用される.shスクリプトと.batスクリプトが含まれています。
csv_files: 入力ソースとして1つまたは複数のCSVファイルを使用する場合、CSVファイルはこのディレクトリに格納する必要があります。
lib: このディレクトリには、oimBulkLoad.jarファイルが含まれています。
sample_data: このディレクトリには、次のサンプルCSVファイルが含まれています。
OIMユーザーのロード操作の場合:
master.txt
OIDusers.csv
HRusers.csv
アカウントのロード操作の場合:
parentAD.csv
childAD.csv
ロールに関連したロード操作の場合:
Role.csv(ロール・ロード)
Rolec.csv(ロール・カテゴリ)
Roleh.csv(ロール階層)
Rolem.csv(ロール・メンバーシップ)
Logs_ YYYYMMDD_hhmi: このログ・ディレクトリには、バルク・ロード操作のサマリーが格納されるログ・ファイルが含まれています。このディレクトリは実行時に作成されます。
次の項では、ユーティリティおよびバルク・ロード操作の詳細を説明します。
ユーティリティを構成する主なスクリプトは次のとおりです。
oim_blkld.bat and oim_blkld.sh
このスクリプトには、バルク・ロード操作を実行するためのコードが含まれています。このスクリプトを実行すると、他のスクリプトやストアド・プロシージャがコールされます。
oim_blkld_setup.sql
このスクリプトは、Oracle Identity Manager表領域にデータファイルを追加するために使用されます。詳細は、このドキュメントの「Oracle Identity Manager表領域でのデータファイルの作成」で説明します。
バルク・ロード操作中には、次の一時表が使用されます。
OIM_BLKLD_TMP_SUFFIX
入力ソースとしてCSVファイルを使用する場合、ユーティリティによってOIM_BLKLD_TMP_SUFFIX表が自動的に作成され、最初にCSVファイルのデータがこの表にロードされます。表名の接尾辞は、次のように決定されます。
ファイル名の最初の6文字が考慮されます。
最初の6文字を判断する際には、ファイル名の特殊文字およびファイル拡張子(.csv)は無視されます。
最初の6文字に一意の数字が追加されます。
たとえば、ファイル名がacc_Data.csvの場合、バルク・ロード操作中に作成される表の名前はoim_blkld_tmp_accDat1
となります。
複数のCSVファイルがある場合、ファイルごとに1つの表が作成されます。各CSVファイル名の最初の6文字が表名に追加されるため、各ファイル名の最初の6文字が必ず一意になるようにします。このガイドラインについては、このドキュメントで後述します。
注意: 入力ソースとしてデータベース表を使用する場合、その表には任意の名前を指定できます。この表の名前を、ユーティリティの入力パラメータの1つとして指定します。 |
OIM_BLKLD_EX_SUFFIX
OIM_BLKLD_EX_SUFFIX表は、バルク・ロード操作中に失敗した(Oracle Identity Managerにロードされなかった)データ・レコードを保持するために使用されます。OIM_BLKLD_TMP_SUFFIX表ごとに、1つのOIM_BLKLD_EX_SUFFIX表が作成されます。表のEXCEPTION_MSG列には、表内の各レコードの失敗の理由が格納されます。
入力ソースとしてCSVファイルを使用する場合、CSVファイル名の最初の6文字は、表名に接尾辞として追加されます。たとえば、CSVファイルの名前がusrdt120508.csvの場合、表名はOIM_BLKLD_EX_ usrdt1となります。複数のCSVファイルがある場合、CSVファイルごとに1つの一時表が作成されます。
注意: 複数のCSVファイルがある場合、各CSVファイル名の最初の6文字が必ず一意になるようにします。 |
OIM_BLKLD_LOG
バルク・ロード操作中、ユーティリティにより、進捗メッセージおよびエラー・メッセージがOIM_BLKLD_LOG表に挿入されます。この表に問い合せることで、バルク・ロード操作の進捗を監視できます。この手順の詳細は、このドキュメントで後述します。
バルク・ロード・ユーティリティを実行すると、次のオプションのいずれかを選択するように要求されます。
注意: 選択するオプションによっては、ユーティリティからさらに入力を要求されます。 |
ユーザー・データのロード
ユーティリティでOIMユーザー・データをロードする場合は、このオプションを選択します。つまり、データはOracle Identity ManagerのUSR表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。
アカウント・データのロード
ユーティリティでアカウント・データをロードする場合は、このオプションを選択します。つまり、データはOracle Identity Managerの関連するUD_表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。
ロール・データのロード
ユーティリティでロール・データをロードする場合は、このオプションを選択します。つまり、データはOracle Identity ManagerのUGP表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。
ロール・メンバーシップのロード
ユーティリティでロール・メンバーシップ・データをロードする場合は、このオプションを選択します。つまり、データはOracle Identity ManagerのUSG表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。
ロール階層のロード
ユーティリティでロール階層データをロードする場合は、このオプションを選択します。つまり、データはOracle Identity ManagerのGPG表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。
ロール・カテゴリのロード
ユーティリティでロール・データをロードする場合は、このオプションを選択します。つまり、データはOracle Identity ManagerのROLE_CATEGORY表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。
監査スナップショットの生成
ユーティリティでロードしたユーザーの監査スナップショットを生成する場合は、このオプションを選択します。
バルク・ロード操作用にデータベースを準備する場合は、次の項目を実行します。
「バルク・ロード操作中に使用される一時表」で説明したとおり、バルク・ロード操作中には一時データベース表が使用されます。Oracle Identity Managerデータベースのデフォルトの表領域を使用するかわりに、これらの一時表を収容する表領域を作成することをお薦めします。
データベースのドキュメントの表領域作成手順に従ってください。
Oracle Identity Managerのインストール中に作成されるOracle Identity Manager表領域のデータファイルのデフォルトのサイズは、500MBです。ロードするデータを収容するために、このデータファイルへの領域の追加が必要になる場合があります。または、データファイルを作成します。
Oracle Identity Manager表領域でデータファイルを作成するには、次の手順を実行します。
SQL*Plusセッションを開始します。
Oracle Identity ManagerデータベースにSYSDBAとして接続します。
oim_blkld_setup.sqlスクリプトを実行します。スクリプトから次の情報の入力を要求されます。
Oracle Identity Manager表領域の名前
Oracle Identity Manager表領域に追加されるデータファイルのフルパスおよび名前
Oracle Identity Managerデータベースのユーザー名
注意: 既存の表と競合する名前がある場合、ユーティリティにより、既存の一時表が各実行の開始時に上書きされます。必要に応じて、ユーティリティの前の実行時に作成された一時データベース表の名前を変更します。 |
ユーティリティを実行するには:
Oracle Identity Managerを停止します。
次のいずれかのスクリプトを実行します。
注意: 非ASCIIデータが含まれているCSVファイルをロードするには、oim_blkld.shスクリプトまたはoim_blkld.batスクリプトを実行する前に、NLS_LANG環境パラメータを次の形式のUTF8キャラクタ・セットに設定します。 NLS_LANG = LANGUAGE_TERRITORY.UTF8 例: NLS_LANG = American_America.UTF8 |
UNIXコンピュータの場合:
OIMBulkload/script/oim_blkld.sh
Microsoft Windowsコンピュータの場合:
OIMBulkload\script\oim_blkld.bat
「ユーティリティで提供されるオプション」の説明に従って、ユーザー、アカウント、ロール関連のデータなど、ロードするデータに応じてメイン・メニューのオプションのいずれか1つを選択します。
2番目のメニューから、次のように選択します。
入力ソースとしてCSVファイルを使用する場合、CSVファイルを選択します。
入力ソースとしてデータベース表を使用する場合、DB表を選択します。
要求されたら、「ユーティリティの入力パラメータの値の確認」で説明されている入力パラメータの値を指定します。
注意: OIMユーザー・データのロードに必要な入力パラメータの詳細は、「ユーティリティの入力パラメータの値の確認」を参照してください。アカウント、ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロードに必要な入力パラメータの詳細は、対応する項を参照してください。 |
「操作の進捗の監視」で説明する手順に従い、操作のパフォーマンスを監視します。
OIMユーザー・データをロードする手順の概要は次のとおりです。
バルク・ロード用のデータベースを準備していない場合は、準備します。詳細は、「バルク・ロード操作用のデータベースの準備」を参照してください。
パスワードが、バルク・ロード操作中に作成されるすべてのOIMユーザーに対してデフォルトのパスワードとして使用されるOIMユーザーを作成します。
バルク・ロード操作の入力ソースを作成します。
データベース表を入力ソースとして使用する場合は、表を作成して、ユーザー・データを表にコピーします。
CSVファイルを入力ソースとして使用する場合は、CSVファイルを作成し、このファイルにユーザー・データをコピーします。また、データのロード順にロード元となるファイルの名前が含まれるmaster.txtファイルを作成します。
ユーティリティの入力パラメータの値を確認します。
Oracle Identity Managerを停止します。
oim_blkld.shスクリプトまたはoim_blkld.batスクリプトを実行します。oim_blkld.shスクリプトまたはoim_blkld.batスクリプトの実行の詳細は、「ユーティリティの実行」を参照してください。
バルク・ロード操作の進捗を監視します。
バルク・ロード操作の結果を確認します。
必要に応じて、最初の実行でロードされなかったデータをリロードします。
Oracle Identity Managerを再起動します。
バルク・ロード操作の結果を検証します。
操作から診断データを収集します。
操作中に作成された一時表およびファイルを削除します。
監査スナップショットを生成します。
次の項では、OIMユーザー・データのロードに必要な手順の詳細について説明します。
このユーティリティでは、バルク・ロード操作中に作成されたOIMユーザーに割り当てるパスワードを暗号化しません。かわりに、操作中に作成されたすべてのOIMユーザーに、既存のOIMユーザーのパスワードを割り当てます。
注意: 各OIMユーザーは、最初のログインでパスワードを変更する必要があります。 |
ユーティリティを実行すると、パスワードを新規OIMユーザーのデフォルトのパスワードとして使用する既存のOIMユーザーのログイン名を指定するように要求されます。ユーティリティを実行する前に、このOIMユーザーを次のように作成します。
注意: Oracle Identity Managerでは、バルク・ロード操作専用のユーザーを作成し、後で必要でなくなったときにこのユーザーを削除できます。このようにしない場合は、既存の任意のOIMユーザーを使用して、バルク・ロード操作を実行できます。 |
Oracle Identity Self Serviceに、ユーザーの作成権限を持つユーザーとしてログインします。
「管理」をクリックします。
「ようこそ」ページで「ユーザーの作成」をクリックします。
次のフィールドの値を指定します。
ユーザー・ログイン
名(オプション)
姓
組織: 「Xellerateユーザー」を選択します。
パスワード
パスワードの確認
「保存」をクリックします。
使用する入力ソースに応じて、次のいずれかの項で示されているガイドラインに従います。
バルク・ロード操作用の入力ソースとしてCSVファイルを使用する場合は、CSVファイルの作成時に次のガイドラインに従います。
CSVファイルは、oimbulkload/csv_filesディレクトリに置く必要があります。
CSVファイルの1行目は制御行と呼ばれます。この行には、Oracle Identity ManagerデータベースにおけるUSR表の列名のカンマ区切りリストが含まれている必要があります。
注意: 「パスワード」列または暗号化されたその他の列が、列リストに含まれていないことを確認してください。このドキュメントで前述したように、ユーティリティでは、Oracle Identity ManagerにロードするすべてのOIMユーザーに、指定した既存のOIMユーザーのパスワードが割り当てられます。 |
ファイルの2行目以降には、制御行にある列の値が含まれている必要があります。1行目の列の順序と、残りの行の値が同じである必要があります。
CSVファイルの内容のサンプルを次に示します。
USR_LOGIN,USR_FIRST_NAME,USR_LAST_NAME,UD_ADUSER_OBJECTGUID john_doe, John, Doe, jdoe jane_doe, Jane, Doe, janedoe richard_roe, Richard, Roe, rroe
列にカンマを含む値がある場合は、その値を二重引用符(")で囲む必要があります。
CSVファイルには、USR表で必須と指定されているすべての列の値が含まれている必要があります。次の表に、USR表のロードに必要な必須列を示します。
必須列 | 説明 |
---|---|
USR_FIRST_NAME |
ユーザーの名 |
USR_LAST_NAME |
ユーザーの姓 |
注意:
|
CSVファイルの各行では、USR表のUSR_LOGIN列に一意の値が必要です。複数のファイルがある場合、USR_LOGINの値がCSVファイル全体にわたり一意であることを確認します。USR_LOGIN値の一意性のチェックは、Oracle Identity Managerの既存のOIMユーザーについても行う必要があります。
USR_LOGIN値が一意であることを確認する作業には、時間がかかる場合があります。別の方法として、最初にバルク・ロード操作を実行し、一意でないUSR_LOGIN値を修正してから、変更されたユーザー・レコードについてロード操作を再試行できます。ユーティリティでは、実行時にUSR_LOGIN値の一意性をチェックし、このチェックにパスしなかったレコードをOIM_BLKLD_EX表にコピーするので、これが可能になります。最初の実行でロードされなかったレコードについて、バルク・ロード操作を再試行する手順については、このドキュメントで後述します。
各ユーザー・レコードに組織名を含める場合、制御行にORG_NAMEを追加し、2行目以降でユーザーごとに組織名を入力します。ORG_NAMEが含まれていない場合は、ユーザーをXellerateユーザー組織に割り当てる必要があります。
注意: CSVファイルのORG_NAME列に表示されているすべての組織名が、Oracle Identity Managerに存在する必要があります。 |
各ユーザー・レコードにマネージャ名を含める場合、制御行にMANAGER_NAMEを追加し、2行目以降でユーザーごとにマネージャのUSR_LOGIN値を入力します。
すべてのCSVファイルからすべてのユーザー・データをOracle Identity Managerにロードした後、ユーティリティでは、マネージャを調べるためにUSR_LOGIN値を参照します。MANAGER_NAME列で指定したUSR_LOGIN値がOracle Identity Managerに存在しない場合、ユーザー・レコードの参照は失敗し、レコードは例外表のOIM_BLKLD_EXにコピーされます。バルク・ロード操作の最後に、「例外の修正およびデータ・レコードのリロード」で説明する手順を実行すると、最初の実行で失敗したユーザー・レコードをリロードできます。
CSVファイルに次の列の値が含まれていない場合、次のデフォルト値がOracle Identity Managerに挿入されます。
ORG_NAME: Xellerate Users
USR_TYPE: End-User
USR_STATUS: Active
USR_EMP_TYPE: Full-Time
ロードするユーザー・データが含まれるCSVファイルの名前を含むマスターTXTファイルを作成します。このファイルには任意の名前(master.txtなど)を指定できます。マスター・ファイルをoimbulkload/csv_filesディレクトリに保存します。
複数のCSVファイルをロードする場合は、マスター・ファイルの別々の行に各データCSVファイルの名前を入力します。CSVファイル名のリストを、ユーティリティでファイルからデータをロードする順序に並べ替えます。たとえば、3つのデータCSVファイル(London_Users.csv、NewYork_Users.csvおよびTokyo_Users.csv)を作成したとします。マスター・ファイルで、データCSVファイルの名前を次の順序で入力します。
Tokyo_Users.csv London_Users.csv NewYork_Users.csv
ユーティリティを実行すると、データはこの順序でロードされます。これは、LondonおよびNew Yorkのユーザー・データがTokyoユーザーに依存している可能性があるためです。これは、マネージャ-ユーザー階層を保証するためです。
CSVファイルがMicrosoft Windowsで生成され、Linux環境でロードされる場合は、\n\rなどの特殊文字を削除して実行時エラーを回避します。
OIMユーザー・データのロード用の入力ソースとしてデータベース表を使用する場合は、データベース表の作成時に次のガイドラインに従います。
Oracle Identity Managerデータベースに表を作成します。
表には、次の主キー列が含まれている必要があります。
OIM_BLKLD_USRSEQ NUMBER(19)
ユーティリティでは、この列が主キーとして使用されます。必要に応じて、データベース順序を使用して、この列に値を移入できます。
残りの列は、使用するUSR表の列と同じである必要があります。つまり、作成する表に含めないオプションのUSR_列は無視します。
表に次の列の値が含まれていない場合、次のデフォルト値がOracle Identity Managerに挿入されます。
ORG_NAME: Xellerate Users
USR_TYPE: End-User
USR_STATUS: Active
USR_EMP_TYPE: Full-Time
各ユーザー・レコードに組織名を含める場合、制御行にORG_NAMEを追加し、2行目以降でユーザーごとに組織名を入力します。ORG_NAMEが含まれていない場合は、ユーザーをXellerateユーザー組織に割り当てる必要があります。
各ユーザー・レコードにマネージャ名を含める場合、制御行にMANAGER_NAMEを追加し、2行目以降でユーザーごとにマネージャのUSR_LOGIN値を入力します。
表24-1に、サンプル・データベース表の構造を示します。
ユーティリティの入力パラメータは次のとおりです。
Oracleホーム
Oracle Identity Managerデータベース用のホスト・コンピュータでのORACLE_HOME環境変数の値。
データベース接続文字列
データベースに接続するための接続文字列。次の形式で入力する必要があります。
//HOST_IP_ADDRESS:PORT_NUMBER/SERVICE_NAME
OIM DBユーザー
Oracle Identity Managerデータベース・ユーザーのデータベース・ログインID。
OIM DBパスワード
Oracle Identity Managerデータベース・ユーザーのパスワード。
データベース・ユーザー・パスワードは、要求されたときに2回入力します。
マスター・ファイル名
ロードされるCSVデータファイルの名前を含むファイルの名前。
このパラメータは、入力ソースが1つまたは複数のCSVファイルの場合のみ使用されます。マスター・ファイルとCSVデータファイルは、oimbulkload/csv_filesディレクトリに置きます。詳細は、「入力ソースとしてのCSVファイルの使用」を参照してください。
一時表名
入力ソースとして使用される一時表の名前。
このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。詳細は、「入力ソースとしてのデータベース表の作成」を参照してください。
制御行
データベース表からOracle Identity Managerにロードされる列の名前のカンマ区切りリスト。
このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。
表領域名
バルク・ロード操作中に一時表が作成される表領域の名前。ユーザーが表領域名を指定しない場合は、デフォルトの表領域が使用されます。
詳細は、「バルク・ロード操作用のデータベースの準備」を参照してください。
日付書式
CSVファイルの日付列で使用される日付書式。
このパラメータは、入力ソースが1つまたは複数のCSVファイルの場合のみ使用されます。
日付書式は、次の項目に一致する必要があります。
dd-mm-yyyyやMM-DD-YYYYなど、Oracleでサポートされている日付書式
CSVファイルで指定されている日付書式
バッチ・サイズ
ユーティリティで単一トランザクションとして処理する必要のあるユーザー・レコード数。
バッチ・サイズは、バルク・ロード操作のパフォーマンスに影響を与える可能性があります。このパラメータのデフォルト値は10000です。
デバッグ・フラグ
このパラメータの値として、YまたはNを指定できます。このパラメータをYに設定すると、ユーティリティでは、バルク・ロード操作中に発生したイベントに関する詳細な情報が記録されます。詳細は、「操作中に記録されるデータ」を参照してください。
デフォルト・パスワードのユーザーID
「ユーティリティによって追加されたOIMユーザーのデフォルト・パスワードの設定」で説明した手順を実行して作成するOIMユーザーのログイン名。
バルク・ロード操作中に、操作の進捗に関する情報をOIM_BLKLD_LOG表に問い合せることができます。たとえば、次の問合せを実行すると、OIMユーザー・データをロードするバルク・ロード操作中に生成される進捗メッセージを確認できます。
SELECT MSG FROM OIM_BLKLD_LOG WHERE MODULE = 'USER' AND LOG_LEVEL = 'PROGRESS_MSG' ORDER BY MSG_SEQ_NO;
バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。次に、エラー・メッセージを取得する問合せの例を示します。
SELECT MSG FROM OIM_BLKLD_LOG WHERE MODULE = 'USER' AND LOG_LEVEL = 'ERROR' ORDER BY MSG_SEQ_NO;
バルク・ロード処操作理の最後に、ユーティリティでは、次のファイルに操作に関連する統計を記録します。
oimbulkload/logs_YYYYMMDD_hhmm/oim_blkld_user_load_summary.log
操作中に例外が発生したかどうかを確認するには、このログ・ファイルを開き、Number of Records Rejectedラベルの数を確認します。拒否レコードの数がゼロより大きい場合、操作中に例外がスローされたことになります。ユーティリティに拒否されたユーザー・レコードは、例外表(OIM_BLKLD_EX_SUFFIX)に記録されます。拒否レコードごとに、そのレコードをロードできなかった理由に関する情報が、OIM_BLKLD_EX_SUFFIX表のEXCEPTION_MSG列に格納されます。
例24-1に、OIMユーザー・データを格納するバルク・ロード操作の最後にログ・ファイルに記録される統計の例を示します。
例24-1 OIMユーザー・データのロード後に生成されるログ・ファイルの例
****************************************************************
Processing File: u10.csv ================================================================ U S E R L O A D S T A T I S T I C S F O R F I L E : u10.csv ================================================================ Start Time: 08-AUG-08 11.44.12.228000 AM End Time: 08-AUG-08 11.44.13.368000 AM Number of Records Processed: 10 Number of Records Loaded: 8 Number of Records Rejected: 2 ================================================================ The name of the TMP table used during the load: OIM_BLKLD_TMP_U101 The name of the Exception table used during the load: OIM_BLKLD_EX_U101 **************************************************************** Processing File: u10b.csv ================================================================ U S E R L O A D S T A T I S T I C S F O R F I L E : u10b.csv ================================================================ Start Time: 08-AUG-08 11.44.15.368000 AM End Time: 08-AUG-08 11.44.15.540000 AM Number of Records Processed: 16 Number of Records Loaded: 15 Number of Records Rejected: 1 ================================================================ The name of the TMP table used during the load: OIM_BLKLD_TMP_U10B2 The name of the Exception table used during the load: OIM_BLKLD_EX_U10B2 ================================================================ ================================================================ Time taken in re-building indexes and enabling FK constraints ================================================================ Start time: 08-AUG-08 11.44.15.556000 AM End Time: 08-AUG-08 11.46.50.586000 AM ================================================================
この例では、拒否レコードの数は2です。すべてのレコードがユーティリティによって拒否されたことがログ・ファイルに示されている場合、これらのレコードのロード操作の再試行の詳細は、「例外の修正およびデータ・レコードのリロード」を参照してください。
注意: 各バルク・ロード操作の最後に、例外表のバックアップを作成することをお薦めします。 |
前述のように、バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。次に、エラー・メッセージを取得する問合せの例を示します。
SELECT MSG FROM OIM_BLKLD_LOG WHERE MODULE = 'USER' AND LOG_LEVEL = 'ERROR' ORDER BY MSG_SEQ_NO;
例外表OIM_BLKLD_EX_SUFFIXは、バルク・ロード操作中に入力ソースとして使用したデータ表ごとに作成されます。操作基準を満たさないレコードは、この例外表にコピーされます。各例外表の名前に追加される接尾辞は、対応するデータ表の名前に追加される接尾辞と同じです。
拒否レコードをリロードするには、次の手順を実行します。
拒否レコードが格納されている例外表のバックアップを作成します。
注意: この手順はオプションですが、バックアップを作成することをお薦めします。 |
例外表の各レコードを確認し、EXCEPTION_MSG列に記録されているメッセージに基づいて、データのエラーを修正します。
例外表のすべての拒否レコードのエラーを修正したら、表名をOIM_BLKLD_TMP_SUFFIXに変更し、これを入力ソースとして使用します。
ユーティリティを実行して、OIM_BLKLD_TMP_SUFFIX表からレコードをロードします。詳細は、「ユーティリティの実行」を参照してください。
oim_blkld_user_load_summary.logファイルでNumber of Records Rejectedラベルの値が0になるまで、手順1から4を繰り返します。
Oracle Identity Managerを再起動します。
バルク・ロード操作の結果を検証するには、ユーティリティによって追加されたOIMユーザーの1人について、次の手順を実行できるかどうかをチェックします。
注意: これらの手順ではシステムにフットプリントが残るため、バルク・ロードの検証は、テスト・ユーザーを使用して実行する必要があります。システムにフットプリントが残らないようにするには、変更を元に戻します。たとえば、リソースをOIMユーザーにプロビジョニングした場合は、バルク・ロード操作の結果のテスト後に、リソースをプロビジョニング解除します。 |
OIMユーザーとしてログインします。パスワードの変更を要求されます。
OIMユーザー用のリソースをプロビジョニングします。
OIMユーザーをロールに追加します。
OIMユーザーのアカウント・プロファイルを変更します。
OIMユーザーにプロビジョニングされたリソースを失効させます。
前にOIMユーザーを追加したロールからそのユーザーの割当てを解除します。
アカウント・プロファイルを再び変更し、プロファイルを元の状態に戻します。
そのユーザーに関する「ユーザー・リソース・アクセス」レポート(操作上のレポート)および「ユーザー・リソース・アクセス履歴」レポートを生成できるかどうかをチェックします。
アテステーションを作成し、診断ダッシュボードを使用してそのステータスをチェックします。
必要に応じて、バルク・ロード操作後またはバルク・ロード操作中にいつでも、Oracle Identity Managerデータの監査スナップショットを生成できます。監査スナップショットは、バルク・ロード・ユーティリティのオプション7を選択して生成することもできます。ユーティリティでは、Oracle Identity Managerとともに出荷されている監査エンジンを使用します。内部的には、監査ユーティリティの実行時に、GenerateSnapshotスクリプトがコールされます。同様に、監査スナップショットを生成するオプションを選択すると、GenerateSnapshotスクリプトがコールされます。
注意: 監査ユーティリティの実行時には、Oracle Identity Managerが起動し、稼働中であることが必要です。 |
監査スナップショットを生成する前に、実行中のGenerateSnapshotスクリプトに次の環境変数を設定する必要があります。
OIM_ORACLE_HOME: c:\work1\Oracle_IDM1
JAVA_HOME: C:\jdk160
MW_HOME: c:\work1
WL_HOME: c:\work1\wlserver_10.3
DOMAIN_HOME: C:\work1\user_projects\domains\base_domain
注意: C:\work1\は、MW_HOMEのサンプル・ディレクトリ・パスです。 |
監査スナップショットの生成手順の詳細は、『Oracle Fusion Middleware Oracle Identity Manager管理者ガイド』の監査の構成に関する説明を参照してください。
アカウント・データをロードする手順の概要は次のとおりです。
バルク・ロード操作用のデータベースを準備していない場合は、準備します。詳細は、「バルク・ロード操作用のデータベースの準備」を参照してください。
バルク・ロード操作の入力ソースを作成します。
データベース表を入力ソースとして使用する場合は、表を作成して、アカウント・データを表にコピーします。
CSVファイルを入力ソースとして使用する場合は、CSVファイルを作成し、このファイルにアカウント・データをコピーします。
ユーティリティの入力パラメータの値を確認します。
Oracle Identity Managerを停止します。
oim_blkld.shスクリプトまたはoim_blkld.batスクリプトを実行します。
バルク・ロード操作の進捗を監視します。
バルク・ロード操作の結果を確認します。
必要に応じて、最初の実行でロードされなかったデータをリロードします。
Oracle Identity Managerを再起動します。
バルク・ロード操作の結果を検証します。
操作から診断データを収集します。
操作中に作成された一時表およびファイルを削除します。
アカウント・データのバルク・ロード操作の要件および機能
アカウント・データのバルク・ロード操作の要件および機能は次のとおりです。
リコンシリエーションを設定し、ターゲット・システムからいくつかのアカウントをインポートすることによって、リコンシリエーションをテストできるようにする必要があります。
対応するOIMユーザーがあるアカウントのみをロードできます。
複数のITリソースが必要なターゲット・システムはサポートされません。
バルク・ロード操作中には、重複したアカウントを検出できません。入力ソースで同じアカウントについて複数のエントリがある場合、対応するOIMユーザーに複数のアカウントが作成されます。
特定のターゲット・システムの場合、Oracle Identity Managerに複数のプロビジョニング・プロセスまたはプロセス・フォームがあると、リソース・オブジェクトのデフォルトのプロビジョニング・プロセスがユーティリティによって使用されます。
以前のバルク・ロード操作がどのステージまで進行したかに関する情報は格納されていません。つまり、ユーティリティはバルク・ロード操作を再開できません。バルク・ロード操作前に、Oracle Identity Managerデータベースをバックアップする必要があります。バルク・ロード操作を再試行する場合、最初にデータベースをリストアしてから、手順を再実行します。
バルク・ロード・ユーティリティは、アカウント・データのロードのための入力として、対応するアプリケーション・インスタンス名を取得します。アプリケーション・インスタンス名が不明な場合、ロードするアカウント・データに基づいて、バルク・ロード・ユーティリティは、リソース・オブジェクト名およびITリソース名の入力を求めます。
次の項では、アカウント・データのロードに必要な手順の詳細について説明します。
使用する入力ソースに応じて、次のいずれかの項で示されているガイドラインに従います。
バルク・ロード操作用の入力ソースとしてCSVファイルを使用する場合は、CSVファイルの作成時に次のガイドラインに従います。
CSVファイルは、oimbulkload/csv_filesディレクトリに置く必要があります。
CSVファイルの1行目は制御行と呼ばれます。この行には、アカウント・データをロードするアカウント(UD_*)表の列名のカンマ区切りリストが含まれている必要があります。UD_表を検索するには、Design Consoleのプロセス・フォームに移動します。プロセス・フォームの詳細は、第5章「プロビジョニング・プロセスの開発」を参照してください。
注意: 「パスワード」列または暗号化されたその他の列が、列リストに含まれていないことを確認してください。 |
ファイルの2行目以降には、制御行にある列の値が含まれている必要があります。1行目の列の順序と、残りの行の値が同じである必要があります。
列にカンマを含む値がある場合は、その値を二重引用符(")で囲む必要があります。
CSVファイルには、アカウント表で必須と指定されているすべての列の値が含まれている必要があります。アカウント表のキー必須列は無視する必要があります。
親表および子表にアカウント・データをロードする場合、1つの親CSVファイルと、子表ごとに1つのCSVファイルを作成する必要があります。たとえば、1つの親表と3つの子表にデータをロードする場合、1つの親CSVファイルと3つの子CSVファイルを作成する必要があります。
アカウント・データを親表および子表にロードする場合、少なくとも1つの列を両方の表で同じにします。この列は、親CSVファイルと子CSVファイル間のリンク属性に対応します。次の例では、この方法が示されています。
親CSVファイルの内容のサンプルを次に示します。
UD_ADUSER_UID,UD_ADUSER_ORGNAME,UD_ADUSER_FNAME,UD_ADUSER_LNAME,UD_ADUSER_MNAME,UD_ADUSER_FULLNAME,UD_ADUSER_OBJECTGUID ADTEST1,"7~CN=ForeignSecurityPrincipals,DC=vivek01,DC=com",adtest1,adtest1,,adtest1,102
注意: UD_ADUSER_OBJECTGUID列は、バルク・ロード操作で使用するアカウントをロードするための親CSVファイルに必須です。この列は、データベース内でNULL値が許容される列であるかどうかにかかわらず、親CSVファイルに追加する必要があります。 |
子CSVファイルの内容のサンプルを次に示します。
UD_ADUSER_UID,UD_ADUSER_ORGNAME,UD_ADUSRC_GROUPNAME ADTEST1,"7~CN=ForeignSecurityPrincipals,DC=vivek01,DC=com",group2
UD_ADUSER_UID列は、親ファイルと子ファイルの両方で共通です。
CSVファイルがMicrosoft Windowsで生成され、Linux環境でロードされる場合は、\n\rなどの特殊文字を削除して実行時エラーを回避します。
アカウント・データのロード用の入力ソースとしてデータベース表を使用する場合は、データベース表の作成時に次のガイドラインに従います。
Oracle Identity Managerデータベースに表を作成します。
表には、次の主キー列が含まれている必要があります。
OIM_BLKLD_USRSEQ NUMBER(19)
ユーティリティでは、この列が主キーとして使用されます。必要に応じて、データベース順序を使用して、この列に値を移入できます。
残りの列は、使用するアカウント(UD_)表の列と同じである必要があります。つまり、作成する表に含めないオプションのUD_列は無視します。
表24-2に、サンプルの親表の構造を示します。
表24-2 サンプル・データベース表の構造
名前 | NULLかどうか | タイプ |
---|---|---|
UD_ADUSER_UID |
VARCHAR2(20) |
|
UD_ADUSER_ORGNAME |
VARCHAR2(256) |
|
UD_ADUSER_FNAME |
VARCHAR2(80) |
|
UD_ADUSER_LNAME |
VARCHAR2(80) |
|
UD_ADUSER_MNAME |
VARCHAR2(80) |
|
UD_ADUSER_FULLNAME |
VARCHAR2(240) |
|
OIM_BLKLD_SEQ |
NOT NULL |
NUMBER(19) |
表24-3に、サンプルの子表の構造を示します。
ユーティリティの入力パラメータは次のとおりです。
Oracleホーム
Oracle Identity Managerデータベース用のホスト・コンピュータでのORACLE_HOME環境変数の値。
データベース接続文字列
データベースに接続するための接続文字列。次の形式で入力する必要があります。
//HOST_IP_ADDRESS:PORT_NUMBER/SERVICE_NAME
OIM DBユーザー
Oracle Identity Managerデータベース・ユーザーのデータベース・ログインID。
OIM DBパスワード
Oracle Identity Managerデータベース・ユーザーのパスワード。
アプリケーション・インスタンス名(APP_INSTANCE)
ロードされるアカウント・データに対応するアプリケーション・インスタンスの名前。ユーザーがアプリケーション・インスタンス名を知らない場合、アカウント・バルクロード・ユーティリティはリソース・オブジェクト名およびITリソース名の入力を求めます。プロンプトを次に示します。
Do you know the Application Instance name? (Y,y,N,n)
Yまたはyを入力する場合、アプリケーション・インスタンス名の入力が求められます。Nまたはnを入力する場合、次の入力が求められます。
リソース・オブジェクト名(OBJ_NAME)
ユーザーがアプリケーション・インスタンス名を知らない場合、バルク・ロード・ユーティリティは、ロードするアカウント・データに対応するリソース・オブジェクト名の入力を求めます。
ITリソース名
ターゲット・システム用に作成されたITリソースの名前。これは、ユーザーがアプリケーション・インスタンス名を知らない場合にのみ必要です。アカウント・バルクロード・ユーティリティは、はじめにリソース・オブジェクト名の入力を求め、次にITリソース名の入力を求めます。
CSVファイル名
入力ソースとして使用されるCSVファイルの名前。
このパラメータは、入力ソースがCSVファイルの場合のみ使用されます。詳細は、「入力ソースとしてのCSVファイルの使用」を参照してください。親CSVファイルおよび子CSVファイルからデータをロードする場合、カンマ区切りリストを使用して、ファイル名を入力します。親CSVファイルの名前を最初に指定し、その後に子CSVファイルの名前を指定する必要があります。
一時表名
入力ソースとして使用される一時表の名前。
このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。詳細は、「入力ソースとしてのデータベース表の作成」を参照してください。
制御行
データベース表からOracle Identity Managerにロードされる列の名前のカンマ区切りリスト。
このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。
表領域名
バルク・ロード操作中に一時表が作成される表領域の名前(エンドユーザーが表領域名を指定しない場合、デフォルトの表領域が使用されます)。
詳細は、「バルク・ロード操作用のデータベースの準備」を参照してください。
日付書式
CSVファイルの日付列で使用される日付書式。
このパラメータは、入力ソースが1つまたは複数のCSVファイルの場合のみ使用されます。
日付書式は、次の項目に一致する必要があります。
dd-mm-yyyyやMM-DD-YYYYなど、Oracleでサポートされている日付書式
CSVファイルで指定されている日付書式
バッチ・サイズ
ユーティリティで単一トランザクションとして処理する必要のあるユーザー・レコード数。
バッチ・サイズは、バルク・ロード操作のパフォーマンスに影響を与える可能性があります。このパラメータのデフォルト値は10000です。
デバッグ・フラグ
このパラメータの値として、YまたはNを指定できます。このパラメータをYに設定すると、ユーティリティでは、バルク・ロード操作中に発生したイベントに関する詳細な情報が記録されます。詳細は、「操作中に記録されるデータ」を参照してください。
アプリケーション・インスタンス(APP_INSTANCE)
ロードされるアカウント・データに対応するアプリケーション・インスタンスの名前。
ユーザーがアプリケーション・インスタンス名を知らない場合、アカウント・バルクロード・ユーティリティはオブジェクト名(OBJ_NAME)の入力を求めます。
バルク・ロード操作中に、操作の進捗に関する情報をOIM_BLKLD_LOG表に問い合せることができます。たとえば、次の問合せを実行すると、アカウント・データをロードするバルク・ロード操作中に生成される進捗メッセージを確認できます。
SELECT MSG FROM OIM_BLKLD_LOG WHERE MODULE = 'ACCOUNT' AND LOG_LEVEL = 'PROGRESS_MSG' ORDER BY MSG_SEQ_NO;
たとえば、次の問合せを実行すると、アカウント・データをロードするバルク・ロード操作中に生成される進捗メッセージを確認できます。
SELECT MSG FROM OIM_BLKLD_LOG WHERE MODULE = 'ACCOUNT' AND LOG_LEVEL = 'PROGRESS_MSG' ORDER BY MSG_SEQ_NO;
バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。次に、エラー・メッセージを取得する問合せの例を示します。
SELECT MSG FROM OIM_BLKLD_LOG WHERE MODULE = 'ACCOUNT' AND LOG_LEVEL = 'ERROR' ORDER BY MSG_SEQ_NO;
バルク・ロード処操作理の最後に、ユーティリティでは、次のファイルに操作に関連する統計を記録します。
oimbulkload/logs_YYYYMMDD_hhmm/oim_blkld_account_load_summary.log
操作中に例外が発生したかどうかを確認するには、このログ・ファイルを開き、Number of Records Rejectedラベルの数を確認します。拒否レコードの数がゼロより大きい場合、操作中に例外がスローされたことになります。ユーティリティに拒否されたユーザー・レコードは、例外表(OIM_BLKLD_EX_SUFFIX)に記録されます。拒否レコードごとに、そのレコードをロードできなかった理由に関する情報が、OIM_BLKLD_EX_SUFFIX表のEXCEPTION_MSG列に格納されます。
例24-2に、アカウント・データを格納するバルク・ロード操作の最後にログ・ファイルに記録される統計の例を示します。
例24-2 アカウント・データのロード後に生成されるログ・ファイルの例
============================================================= A C C O U N T L O A D S T A T I S T I C S ============================================================= Start Time: 22-JUL-08 03.59.30.206000 PM End Time: 22-JUL-08 04.03.21.126000 PM Number of Records Processed: 100026 Number of Records Loaded: 100000 Number of Records Rejected: 26 ============================================================= The names of the TMP tables used during the load: OIM_BLKLD_TMP_P100001 OIM_BLKLD_TMP_C100002 The names of the Exception tables used during the load: OIM_BLKLD_EX_P100001 OIM_BLKLD_EX_C100002
この例では、拒否レコードの数は26です。すべてのレコードがユーティリティによって拒否されたことがログ・ファイルに示されている場合、これらのレコードのロード操作の再試行の詳細は、「例外の修正およびデータ・レコードのリロード」を参照してください。
注意: 各バルク・ロード操作の最後に、例外表のバックアップを作成することをお薦めします。 |
注意: 複数のターゲット・システムのCSVファイルからデータをロードする場合、次の方法のいずれかを使用できます。
|
前述のように、バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。次に、エラー・メッセージを取得する問合せの例を示します。
SELECT MSG FROM OIM_BLKLD_LOG WHERE MODULE = 'ACCOUNT' AND LOG_LEVEL = 'ERROR' ORDER BY MSG_SEQ_NO;
例外表OIM_BLKLD_EX_SUFFIXは、バルク・ロード操作中に入力ソースとして使用したデータ表ごとに作成されます。操作基準を満たさないレコードは、この例外表にコピーされます。各例外表の名前に追加される接尾辞は、対応するデータ表の名前に追加される接尾辞と同じです。
拒否レコードをリロードするには、次の手順を実行します。
拒否レコードが格納されている例外表のバックアップを作成します。
注意: この手順はオプションですが、バックアップを作成することをお薦めします。 |
例外表の各レコードを確認し、EXCEPTION_MSG列に記録されているメッセージに基づいて、データのエラーを修正します。
例外表のすべての拒否レコードのエラーを修正したら、表名をOIM_BLKLD_TMP_SUFFIXに変更し、これを入力ソースとして使用します。
ユーティリティを実行して、OIM_BLKLD_TMP_SUFFIX表からレコードをロードします。詳細は、「ユーティリティの実行」を参照してください。
oim_blkld_account_load_summary.logファイルでNumber of Records Rejectedラベルの値が0になるまで、手順1から4を繰り返します。
Oracle Identity Managerを再起動します。
バルク・ロード操作の結果を検証するには、ユーティリティによってアカウントが追加されたOIMユーザーの1人について、次の手順を実行できるかどうかをチェックします。
OIMユーザーとしてログインし、新規に作成されたアカウントが、そのユーザーのリソース・プロファイルに表示されているかどうかをチェックします。
新規に作成されたアカウントの資格証明を使用して、ターゲット・システムにログインします。
ロール関連データをロードする手順の概要は次のとおりです。
バルク・ロード操作用のデータベースを準備していない場合は、準備します。詳細は、「バルク・ロード操作用のデータベースの準備」を参照してください。
バルク・ロード操作の入力ソースを作成します。
データベース表を入力ソースとして使用する場合は、表を作成して、ロール関連データを表にコピーします。
CSVファイルを入力ソースとして使用する場合は、CSVファイルを作成し、このファイルにロール関連データをコピーします。また、データのロード順にロード元となるファイルの名前が含まれるmaster.txtファイルを作成します。
ユーティリティの入力パラメータの値を確認します。
Oracle Identity Managerを停止します。
oim_blkld.shスクリプトまたはoim_blkld.batスクリプトを実行します。
バルク・ロード操作の進捗を監視します。
バルク・ロード操作の結果を確認します。
必要に応じて、最初の実行でロードされなかったデータをリロードします。
Oracle Identity Managerを再起動します。
バルク・ロード操作の結果を検証します。
操作から診断データを収集します。
操作中に作成された一時表およびファイルを削除します。
次の項では、OIMユーザー・データのロードに必要な手順の詳細について説明します。
使用する入力ソースに応じて、次のいずれかの項で示されているガイドラインに従います。
バルク・ロード操作用の入力ソースとしてCSVファイルを使用する場合は、CSVファイルの作成時に次のガイドラインに従います。
CSVファイルは、oimbulkload/csv_filesディレクトリに置く必要があります。
CSVファイルの1行目は制御行と呼ばれます。
この行には、Oracle Identity Managerデータベースにおける選択したロール・アップロード(ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ)に基づく列名のカンマ区切りリストが含まれている必要があります。
ファイルの2行目以降には、制御行にある列の値が含まれている必要があります。1行目の列の順序と、残りの行の値が同じである必要があります。ロール(UGP)CSVファイルの内容のサンプルを次に示します。
UGP_ROLENAME,UGP_NAMESPACE,USR_LOGIN,ORG_NAME,INCLUDE_HIERARCHY "Finance Controllers",Default,XELSYSADM,Finance,YES "Finance Controllers",Default,XELSYSADM,Requests,YES
ロール・ロードでは、階層に含まれるオプションを指定したOracle Identity Managerのセキュリティ・モデルに従い、組織にロールを公開できます。
ORG_NAMEパラメータの値として、FinanceまたはRequestsなど、ロールを公開する組織名を指定します。指定した組織とそのサブ組織にロールを公開する場合、INCLUDE_HIERARCHYにYESを指定します。指定した組織のみにロールを公開し、そのサブ組織には公開しない場合、INCLUDE_HIERARCHYにNULLまたはNOを指定します。ORG_NAMEおよびINCLUDE_HIERARCHYパラメータに値を指定しない場合、デフォルトでは、階層の最上位組織にロールが公開されます。
列にカンマを含む値がある場合は、その値を二重引用符(")で囲む必要があります。
CSVファイルには、各ロール表で必須と指定されているすべての列の値が含まれている必要があります。
CSVファイルには、アップロード・ロール・データ、ロール階層、ロール・メンバーシップ・データおよびロール・カテゴリ・データに応じて、必須と指定されているすべての列の値が含まれている必要があります。
Role UGP): UGP_ROLENAME,UGP_NAMESPACE,USR_LOGIN,ORG_NAME,INCLUDE_HIERARCHY (UGP_NAMESPACE,ORG_NAME,INCLUDE_HIERARCHY
必要ない場合は、INCLUDE_HIERARCHYをnullのままにすることができます。
ロール階層(GPG): UGP_NAME、GPG_UGP_NAME
ロール・メンバーシップ(USG): UGP_NAME、USR_LOGIN
ロール・カテゴリ(ROLE_CATEGORY): ROLE_CATEGORY_NAME
CSVファイルの各行では、必須列の組合せの一意の値が必要です。
CSVファイルに次の列の値が含まれていない場合、次のデフォルト値がOracle Identity Managerに挿入されます。
ロール(UGP)の場合
ROLE_CATEGORY_NAME: Default
UGP_DISPLAY_NAME: UGP_NAMEがデフォルトとなります。
ORG_NAME: TOP
INCLUDE_HIERARCHY: YES
ロール階層(GPG)の場合
なし
ロール・メンバーシップ(USG)の場合
RUL_KEY: RUL_NAMEがデフォルトのRUL表からのRUL_KEY。
USG_PRIORITY: アップロード用に指定されている行に基づくUGP_KEYに基づくグループおよびランク。
ロール・カテゴリ(ROLE CATEGORY)
なし
ロードするロール・データが含まれるCSVファイルの名前を含むマスターTXTファイルを作成します。このファイルには任意の名前(master.txtなど)を指定できます。マスター・ファイルをoimbulkload/csv_filesディレクトリに保存します。
複数のCSVファイルをロードする場合は、マスター・ファイルの別々の行に各データCSVファイルの名前を入力します。CSVファイル名のリストを、ユーティリティでファイルからデータをロードする順序に並べ替えます。たとえば、3つのデータCSVファイル( Role1.csv、Role2.csvおよびRole3.csv)を作成したとします。マスター・ファイルで、データCSVファイルの名前を次の順序で入力します。
Role1.csv
Role2.csv
Role3.csv
ユーティリティを実行すると、データはこの順序でロードされます。
CSVファイルがMicrosoft Windowsで生成され、Linux環境でロードされる場合は、\n\rなどの特殊文字を削除して実行時エラーを回避します。
OIMユーザー・データのロード用の入力ソースとしてデータベース表を使用する場合は、データベース表の作成時に次のガイドラインに従います。
Oracle Identity Managerデータベースに表を作成します。
表には、次の主キー列が含まれている必要があります。
OIM_BLKLD_USRSEQ NUMBER(19)
ユーティリティでは、この列が主キーとして使用されます。必要に応じて、データベース順序を使用して、この列に値を移入できます。
残りの列は、使用する各ロール表の列と同じである必要があります。
表24-4に、サンプル・データベース・ロール表の構造を示します。
表24-4 サンプル・データベース表の構造
ロール | NULL | タイプ |
---|---|---|
UGP_ROLENAME |
NOT NULL |
VARCHAR2(2000) |
UGP_NAMESPACE |
VARCHAR2(512) |
|
ORG_NAME |
NOT NULL |
VARCHAR2(256) |
INCLUDE_HIERARCHY |
NOT NULL |
VARCHAR2(256) |
... |
... |
... |
OIM_BLKLD_USRSEQ |
NOT NULL |
NUMBER(19) |
注意: ORG_NAMEおよびINCLUDE_HIERARCHYは、ロールのロードにのみ必要で、ロール階層、ロール・メンバーシップおよびロール・カテゴリには必要ありません。 |
バルクロード・ユーティリティは、ロール・ロード中にUGP_NAMEを次の形式で生成します。
UGP_NAMESPACE.UGP_ROLENAME
CSVファイルのUGP_NAMESPACEの値を指定しない場合、デフォルトでは、UGP_NAMESPACEの値はDefaultです。生成されたUGP_NAMEを決定するには:
CSVファイルで、UGP_NAMESPACEがnullの場合、ネームスペース値はDefaultで、生成されるUGP_NAMEは、UGP_ROLENAMEの値と同じです。
UGP_NAMESPACEがnullではなく、CSVファイルに定義済の値がある場合、生成されたUGP_NAMEはUGP_NAMESPACE.UGP_ROLENAMEの値と同じです。
データベースに直接アクセスできない場合でも、UGP_NAMEの生成方法に基づいて、ロール階層、ロール・メンバーシップおよびロール・カテゴリの次のロードのためのUGP_NAME値を決定できます。そうでない場合、UGP表のUGP_NAMEの生成された値を確認します。
ユーティリティの入力パラメータは次のとおりです。
Oracleホーム
Oracle Identity Managerデータベース用のホスト・コンピュータでのORACLE_HOME環境変数の値。
データベース接続文字列
データベースに接続するための接続文字列。次の形式で入力する必要があります。
//HOST_IP_ADDRESS:PORT_NUMBER/SERVICE_NAME
OIM DBユーザー
Oracle Identity Managerデータベース・ユーザーのデータベース・ログインID。
OIM DBパスワード
Oracle Identity Managerデータベース・ユーザーのパスワード。
CSVファイル名
入力ソースとして使用されるCSVファイルの名前。
このパラメータは、入力ソースがCSVファイルの場合のみ使用されます。詳細は、「入力ソースとしてのCSVファイルの使用」を参照してください。親CSVファイルおよび子CSVファイルからデータをロードする場合、カンマ区切りリストを使用して、ファイル名を入力します。親CSVファイルの名前を最初に指定し、その後に子CSVファイルの名前を指定する必要があります。
一時表名
入力ソースとして使用される一時表の名前。
このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。詳細は、「入力ソースとしてのデータベース表の作成」を参照してください。
制御行
データベース表からOracle Identity Managerにロードされる列の名前のカンマ区切りリスト。
このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。
表領域名
バルク・ロード操作中に一時表が作成される表領域の名前(エンドユーザーが表領域名を指定しない場合、デフォルトの表領域が使用されます)。
詳細は、「バルク・ロード操作用のデータベースの準備」を参照してください。
日付書式
CSVファイルの日付列で使用される日付書式。これは、ロール・ロードでのみ求められ、ロール階層、ロール・メンバーシップおよびロール・カテゴリでは求められません。
このパラメータは、入力ソースが1つまたは複数のCSVファイルの場合のみ使用されます。
日付書式は、次の項目に一致する必要があります。
dd-mm-yyyyやMM-DD-YYYYなど、Oracleでサポートされている日付書式
CSVファイルで指定されている日付書式
バッチ・サイズ
ユーティリティで単一トランザクションとして処理する必要のあるユーザー・レコード数。
バッチ・サイズは、バルク・ロード操作のパフォーマンスに影響を与える可能性があります。このパラメータのデフォルト値は10000です。
デバッグ・フラグ
このパラメータの値として、YまたはNを指定できます。このパラメータをYに設定すると、ユーティリティでは、バルク・ロード操作中に発生したイベントに関する詳細な情報が記録されます。詳細は、「操作中に記録されるデータ」を参照してください。
バルク・ロード操作中に、操作の進捗に関する情報をOIM_BLKLD_LOG表に問い合せることができます。たとえば、次の問合せを実行すると、OIMロール・データをロードするバルク・ロード操作中に生成される進捗メッセージを確認できます。
SELECT MSG FROM OIM_BLKLD_LOG WHERE MODULE = 'ROLE' AND LOG_LEVEL = 'PROGRESS_MSG' ORDER BY MSG_SEQ_NO;
バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。次に、エラー・メッセージを取得する問合せの例を示します。
SELECT MSG FROM OIM_BLKLD_LOG WHERE MODULE = 'ROLE' AND LOG_LEVEL = 'ERROR' ORDER BY MSG_SEQ_NO;
バルク・ロード処操作理の最後に、ユーティリティでは、次のファイルに操作に関連する統計を記録します。
oimbulkload/logs_YYYYMMDD_HHMM/oim_blkld_ENTITY_NAME_load_summary.log
ログ・ファイル名のENTITY_NAMEは、ロードされるエンティティを表します。例:
ロールの場合、ログ・ファイル名はoim_blkld_role_load_summary.logです。
ロール・メンバーシップの場合、ログ・ファイル名はoim_blkld_rolemem_load_summary.logです。
操作中に例外が発生したかどうかを確認するには、このログ・ファイルを開き、Number of Records Rejectedラベルの数を確認します。拒否レコードの数がゼロより大きい場合、操作中に例外がスローされたことになります。ユーティリティに拒否されたユーザー・レコードは、例外表(OIM_BLKLD_EX_SUFFIX)に記録されます。拒否レコードごとに、そのレコードをロードできなかった理由に関する情報が、OIM_BLKLD_EX_SUFFIX表のEXCEPTION_MSG列に格納されます。
例24-3に、OIMロール・データを格納するバルク・ロード操作の最後にログ・ファイルに記録される統計の例を示します。
例24-3 OIMロール・データのロード後に生成されるログ・ファイルの例
*************************************************************************************************** Processing File: Role.csv ========================================================================================== R O L E L O A D S T A T I S T I C S F O R F I L E : Role.csv ========================================================================================== Start Time: 17-NOV-09 02.48.18.447767 AM End Time: 17-NOV-09 02.48.19.228710 AM Number of Records Processed: 2 Number of Records Loaded: 2 Number of Records Rejected: 0 ========================================================================================== The name of the TMP table used during the load: OIM_BLKLD_TMP_ROLE1 The name of the Exception table used during the load: OIM_BLKLD_EX_ROLE1 ========================================================================================== =============================================================================== Time taken in re-building indexes and enabling FK constraints =============================================================================== Start time: 17-NOV-09 02.48.19.243781 AM
この例では、拒否ロードの数は2です。すべてのレコードがユーティリティによって拒否されたことがログ・ファイルに示されている場合、これらのレコードのロード操作の再試行の詳細は、「例外の修正およびデータ・レコードのリロード」を参照してください。
注意: このユーティリティを使用して、リモートのOracle Identity Managerデータベースにデータをロードすることはできません。 |
前述のように、バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。次に、エラー・メッセージを取得する問合せの例を示します。
SELECT MSG FROM OIM_BLKLD_LOG WHERE MODULE = 'ROLE' AND LOG_LEVEL = 'ERROR' ORDER BY MSG_SEQ_NO;
例外表OIM_BLKLD_EX_SUFFIXは、バルク・ロード操作中に入力ソースとして使用したデータ表ごとに作成されます。操作基準を満たさないレコードは、この例外表にコピーされます。各例外表の名前に追加される接尾辞は、対応するデータ表の名前に追加される接尾辞と同じです。
拒否レコードをリロードするには、次の手順を実行します。
拒否レコードが格納されている例外表のバックアップを作成します。
注意: この手順はオプションですが、バックアップを作成することをお薦めします。 |
例外表の各レコードを確認し、EXCEPTION_MSG列に記録されているメッセージに基づいて、データのエラーを修正します。
例外表のすべての拒否レコードのエラーを修正したら、表名をOIM_BLKLD_TMP_SUFFIXに変更し、これを入力ソースとして使用します。
ユーティリティを実行して、OIM_BLKLD_TMP_SUFFIX表からレコードをロードします。詳細は、「ユーティリティの実行」を参照してください。
oim_blkld_role_load_summary.logファイルまたはロール・メンバーシップ、ロール階層およびロール・カテゴリについて、対応するログ・ファイルでNumber of Records Rejectedラベルの値が0になるまで、手順1から4を繰り返します。
Oracle Identity Managerを再起動します。
バルク・ロード操作の結果を検証するには、ユーティリティによって追加されたOIMロールの1つについて、次の手順を実行できるかどうかをチェックします。
Oracle Identity Self Serviceにログインし、新規に作成されたロールがロールの検索結果に表示されていることを確認します。
新規に作成されたロール階層およびロール・メンバーの場合は、ロールの詳細ページでそれぞれ「階層」タブおよび「メンバー」タブをクリックします。
新規に作成されたロール・カテゴリを検証するには、Oracle Identity Administrationの「ようこそ」ページで「拡張検索 - ロール・カテゴリ」をクリックします。拡張検索を実行して、新規に作成されたロールを見つけます。
バルク・ロード操作中、ユーティリティにより、進捗メッセージおよびエラー・メッセージがOIM_BLKLD_LOG表に挿入されます。この表のデータは、新規バルク・ロード操作の開始時に削除されません。この表の列の1つには、この表にメッセージが記録されたときのタイムスタンプが保持されます。
表24-5に、OIM_BLKLD_LOG表の構造を示します。
表24-5 OIM_BLKLD_LOG表の構造
列 | NULL | タイプ | 説明 |
---|---|---|---|
MSG_SEQ_NO |
NULL |
NUMBER(19) |
この列には、メッセージがこの表に挿入される順序を示す番号が格納されます。この列には、OIM_BLKLD_LOG_SEQ順序を使用して、値が移入されます。この列を使用すると、メッセージを表に記録された順序で問い合せることができます。 |
MODULE |
NOT NULL |
VARCHAR2(20) |
この列には、次の値のいずれかが格納されます。 ROLE: この値は、OIMロール・データのロード中にメッセージが記録されたことを示します。 ROLE HIERARCHY: この値は、ロール階層データのロード中にメッセージが記録されたことを示します。 ROLE MEMBERSHIP: この値は、OIMロール・メンバーシップ・データのロード中にメッセージが記録されたことを示します。 ROLE CATEGORY: この値は、OIMロール・カテゴリ・データのロード中にメッセージが記録されたことを示します。 |
LOG_LEVEL |
NOT NULL |
VARCHAR2(20) |
この列には、次の値のいずれかが格納されます。 ERROR: デバッグに役立つ詳細な情報イベントを示します。 DEBUG: アプリケーションの続行が可能なエラー・イベントを示します。エラーを使用して、すべての未処理例外がログに記録されます。 PROGRESS_MSG: 中間の進捗メッセージを示します。 |
LOAD_SOURCE |
NOT NULL |
VARCHAR2(40) |
この列は、行が挿入されたバルク・ロード操作用のデータのソースを示します。値は、次のいずれかです。CSV File: FILE_NAME DB Table |
MSG |
NOT NULL |
VARCHAR2(4000) |
この列には、LOG_LEVEL列に格納されている値に対応するメッセージが格納されます。 |
CREATE_DATE |
DATE |
この列には、レコードが作成されたときのタイムスタンプが格納されます。この列のエントリの形式は次のとおりです。 yyyy/mm/dd hh24:mi:ss 例: 2008/06/23 21:49:16:32 |
このドキュメントで前述したように、バルク・ロード操作中に、次のログ・ファイルが作成されます。
OIMユーザーの場合:
oimbulkload/logs_YYYYMMDD_HHMM/oim_blkld_user_load_summary.log
アカウントの場合:
oimbulkload/logs_YYYYMMDD_HHMM/oim_blkld_account_load_summary.log
ロール、ロール階層、メンバーシップおよびロール・カテゴリの場合:
oimbulkload/logs_YYYYMMDD_HHMM/oim_blkld_ENTITY_NAME_load_summary.log
ログ・ファイル名のENTITY_NAMEは、ロードされるエンティティを表します。例:
ロールの場合、ログ・ファイル名はoim_blkld_role_load_summary.logです。
ロール・メンバーシップの場合、ログ・ファイル名はoim_blkld_rolemem_load_summary.logです。
このファイルに記録されたレコードは、バルク・ロード操作に関するパフォーマンス関連の情報の照合に使用できます。バルク・ロード操作後には、次の情報を収集できます。
開始時間
入力ソース
ロード前のシステム内のレコード数
ロードに成功したレコード数
拒否されたレコード数
合計所要時間
この情報は、ユーティリティの今後の実行時に使用できます。
バルク・ロード操作の結果を保存しない場合は、次のようにします。
OIM_BLKLD_TMP_SUFFIX表、OIM_BLKLD_EX_SUFFIX表およびOIM_BLKLD_LOG表を削除します。
操作中に作成または使用したファイルをすべて削除します。
操作用の表領域を作成した場合、その表領域を削除します。
logs_timestampディレクトリに作成されたログ・ファイルを削除する前に、「バルク・ロード操作からの診断データの収集」を参照してください。
注意: まだOracle Identity Managerを再起動していない場合、この時点で再起動できます。 |