13 バルク・ロード・ユーティリティの使用
Oracle Identity Managerは、組織内で多数あるエンティティ・データのリポジトリの1つである場合があります。Oracle Identity Managerの使用を開始するとき、他のリポジトリのデータをOracle Identity Managerにロードすることが必要になる場合があります。バルク・ロード・ユーティリティは、このような要件の解決策となります。
バルク・ロード・ユーティリティは、大量のデータをOracle Identity Managerにロードするプロセスを自動化することを目的としています。データのロードに必要な停止時間の短縮に役立ちます。このユーティリティは、Oracle Identity Managerのインストール後に使用することも、Oracle Identity Managerの本番期間中に随時使用することもできます。バルク・ロード・ユーティリティでは、ユーザー、アカウント、ロール、ロール階層、ロール・メンバーシップ、ロール・カテゴリ・データおよび組織のロードを実行します。
この章のトピックは、次のとおりです:
13.1 ユーティリティの実行モード
バルク・ロード・ユーティリティは、オフライン・モードまたはオンライン・モードで実行できます。
-
オフライン・モード: 従来モードつまり既存のモードです。オフライン・モードでユーティリティを実行するには、Oracle Identity Managerが実行されている必要があります。
-
オンライン・モード: オンライン・モードでは、Oracle Identity Managerを停止する必要はありません。オンライン・モードは、ユーティリティを実行できるのはOracle Identity Managerが起動して稼働中の場合であるという意味のみです。コマンドライン・ユーティリティであり、オンライン・モードで使用できる他のインタフェースはありません。
デフォルトで、バルク・ロード・ユーティリティはオンライン・モードで実行します。
-
場合によって、ビジネス上の理由でサービス可用性の方が重要になることがあります。この場合は、デフォルトのオンライン・モードを選択します。
-
ロードされる新規エンティティの容量が巨大でない場合、オフラインのバルクロード後のサービス再起動と索引再作成のコストの方がオンライン・モードでのわずかなパフォーマスの低下よりも高くなります。この場合は、デフォルトのオンライン・モードを選択します。
-
ロード容量が高く、比較すると既存のシステム・データが少ない場合、オフラインのバルク・ロードにいくらか利点がある可能性があります。
13.2 バルク・ロード・ユーティリティの機能
バルク・ロード・ユーティリティでは、ユーザー、アカウント、ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロードを実行します。
バルク・ロード・ユーティリティは、大量のデータをOracle Identity Managerにロードするプロセスを自動化することを目的としています。データのロードに必要な停止時間の短縮に役立ちます。このユーティリティは、Oracle Identity Managerのインストール後に使用することも、Oracle Identity Managerの本番期間中に随時使用することもできます。バルク・ロード・ユーティリティでは、ユーザー、アカウント、ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロードを実行します。
バルク・ロード・ユーティリティの機能は次のとおりです。
-
データは、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でユーザー・フィールドが暗号化されている場合、このユーティリティを使用して、そのフィールドにロードされたデータを暗号化することはできません。
-
バルク・ロード・ユーティリティは、オフラインまたはオンライン・モードで実行できます。
13.3 バルク・ロード・ユーティリティ実行の前提条件
バルク・ロード・ユーティリティを実行する前に、ユーティリティをインストールして、バルク・ロード操作用のデータベースを準備し、バルク・ロード・ユーティリティの様々なオプションを理解しておく必要があります。
バルク・ロード・ユーティリティの実行の前提条件は次のとおりです。
13.3.1 バルク・ロード・ユーティリティのインストール
インストール・パッケージのoimbulkload
ディレクトリをコピーし、その内容を抽出して、バルク・ロード・ユーティリティをインストールします。
ユーティリティをインストールするには、次の方法で示すステップを完了します:
方法1:
13.3.2 バルク・ロード・オプションおよびその他の詳細の理解
バルク・ロード・ユーティリティの追加情報には、ユーティリティ・スクリプト、バルク・ロード操作に使用される一時データベース表、および様々なエンティティ・データをロードするためのバルク・ロード・オプションが含まれます。
次の項では、ユーティリティおよびバルク・ロード操作の詳細を説明します。
13.3.2.1 ユーティリティを構成するスクリプト
ユーティリティを構成する主なスクリプトは次のとおりです。
-
oim_blkld.bat and oim_blkld.sh
このスクリプトには、バルク・ロード操作を実行するためのコードが含まれています。このスクリプトを実行すると、他のスクリプトやストアド・プロシージャがコールされます。
-
oim_blkld_setup.sql
このスクリプトは、Oracle Identity Manager表領域にデータファイルを追加して、バルク・ロード時に必要な操作を行うための追加の権限をOracle Identity Managerデータベース・ユーザーに付与するために使用されます。Oracle Identity Manager表領域でのデータファイルの作成の詳細は、Oracle Identity Governance表領域でのデータファイルの作成を参照してください。
13.3.2.2 バルク・ロード操作中に使用される一時表
バルク・ロード操作中には、次の一時表が使用されます。
-
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表に挿入されます。この表に問い合せることで、バルク・ロード操作の進捗を監視できます。この手順の詳細は、このドキュメントで後述します。
13.3.2.3 ユーティリティで提供されるオプション
バルク・ロード・ユーティリティを実行すると、次のオプションのいずれかを選択するように要求されます。
ノート:
選択するオプションによっては、ユーティリティからさらに入力を要求されます。
-
ユーザー・データのロード
ユーティリティで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のACT表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。
-
ロール・カテゴリのロード
ユーティリティでロール・データをロードする場合は、このオプションを選択します。つまり、データはOracle Identity ManagerのROLE_CATEGORY表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。
-
監査スナップショットの生成
ユーティリティでロードしたユーザーの監査スナップショットを生成する場合は、このオプションを選択します。
13.3.3 バルク・ロード操作用のデータベースの準備
一時表の表領域を作成し、表領域にデータファイルを作成して、バルク・ロード操作用のデータベースを準備します。
バルク・ロード操作用にデータベースを準備する場合は、次の項目を実行します。
13.3.3.1 一時表の表領域の作成
バルク・ロード操作中に使用される一時表で説明したとおり、バルク・ロード操作中には一時データベース表が使用されます。Oracle Identity Managerデータベースのデフォルトの表領域を使用するかわりに、これらの一時表を収容する表領域を作成することをお薦めします。
データベースのドキュメントの表領域作成手順に従ってください。
13.3.3.2 Oracle Identity Governance表領域でのデータファイルの作成
Oracle Identity Managerのインストール中に作成されるOracle Identity Manager表領域のデータファイルのデフォルトのサイズは、500MBです。ロードするデータを収容するために、このデータファイルへの領域の追加が必要になる場合があります。または、データファイルを作成します。
Oracle Identity Manager表領域でデータファイルを作成するには:
要求されたOracle Identity Managerデータベースのユーザー名を入力した後、バルク・ロード時に必要な操作を行うために適切な権限が、データベース・ユーザーに付与されます。
13.4 ユーティリティの実行
バルク・ロード・ユーティリティの実行には、バルク・ロード・スクリプトの実行、バルク・ロードのオプションの選択、入力ソースの選択および操作の進捗の監視が含まれます。
ユーティリティを実行するには:
ノート:
既存の表と競合する名前がある場合、ユーティリティにより、既存の一時表が各実行の開始時に上書きされます。必要に応じて、ユーティリティの前の実行時に作成された一時データベース表の名前を変更します。
13.5 バルク・ロードのパフォーマンス・ベスト・プラクティス
バルク・ロード操作中には、大量のデータのロードに関するベスト・プラクティスに従います。
アカウント・バルク・ロードのパフォーマンスを向上させるには:
13.6 OIMユーザー・データのロード
バルク・ロード・ユーティリティを使用してOIMユーザー・データをロードすると、データベースのUSR表にデータがインポートされます。
この項では、OIMユーザー・データのロードに含まれるステップを詳しく説明します。次の項目が含まれます。
13.6.1 OIMユーザー・データのロードの概要
OIMユーザー・データのロードには、バルク・ロード操作の入力ソースの作成、バルク・ロード・ユーティリティの実行および例外の処理(ある場合)が含まれます。
OIMユーザー・データをロードするステップの概要は次のとおりです。
13.6.2 ユーティリティによって追加されたOIMユーザーのデフォルト・パスワードの設定
バルク・ロード・ユーティリティでは、操作中に作成されたすべてのOIMユーザーに既存のOIMユーザーのパスワードが割り当てられます。
このユーティリティでは、バルク・ロード操作中に作成されたOIMユーザーに割り当てるパスワードを暗号化しません。かわりに、操作中に作成されたすべてのOIMユーザーに、既存のOIMユーザーのパスワードを割り当てます。
ノート:
各OIMユーザーは、最初のログインでパスワードを変更する必要があります。
ユーティリティを実行すると、パスワードを新規OIMユーザーのデフォルトのパスワードとして使用する既存のOIMユーザーのログイン名を指定するように要求されます。ユーティリティを実行する前に、このOIMユーザーを次のように作成します。
ノート:
Oracle Identity Managerでは、バルク・ロード操作専用のユーザーを作成し、後で必要でなくなったときにこのユーザーを削除できます。このようにしない場合は、既存の任意のOIMユーザーを使用して、バルク・ロード操作を実行できます。
13.6.3 バルク・ロード操作用の入力ソースの作成
使用する入力ソースに応じて、入力ソースとしてCSVファイルを使用する場合またはデータベース表を作成する場合のガイドラインに従う必要があります。
この項の内容は次のとおりです。
13.6.3.1 入力ソースとしてのCSVファイルの使用
バルク・ロード操作用の入力ソースとして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
ユーザーの姓
ノート:
-
USR_LOGINは必須列ではありません。
-
一部のキー必須列は無視できます。たとえば、ORG_NAMEによって移入されるUSR表のACT_KEY列です。
-
-
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などの特殊文字を削除して実行時エラーを回避します。
ノート:
CSVファイルをWindowsからUNIX、SolarisまたはLinuxシステムにコピーする場合、
^M
などの特殊文字がファイルに追加されます。これは、WindowsのファイルがDOS (ASCII)形式であり、ISO形式に変換する必要があるためです。Solarisは、
dos2unix
ユーティリティをシステムにプリインストールして、このジョブを行います。しかしUNIX/Linuxシステムの場合、CSVファイルをDOS形式からUNIX形式に変換して、バルク・ロード操作で使用される前に入力ファイルの健全性を確保する必要があります。これを行う構文は次のとおりです。# dos2unix CSV_FILE_NAME
dos2unix
ユーティリティがUNIX/Linuxシステムに存在しない場合、管理者は関連ドキュメントを使用してそれぞれのUNIX/Linuxバージョン用のユーティリティをインストールできます。
13.6.3.2 入力ソースとしてのデータベース表の作成
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値を入力します。
13.6.3.3 サンプル・データベース表の構造
表13-1に、サンプル・データベース表の構造を示します。
表13-1 サンプル・データベース表の構造
名前 | NULLかどうか | タイプ |
---|---|---|
USR_LOGIN |
NOT NULL |
VARCHAR2(256) |
USR_FIRST_NAME |
VARCHAR2(150) |
|
USR_LAST_NAME |
NOT NULL |
VARCHAR2(150) |
. . . |
. . . |
. . . |
OIM_BLKLD_USRSEQ |
NOT NULL |
NUMBER(19) |
13.6.4 ユーティリティの入力パラメータの値の確認
ロードするデータのタイプにあわせて、バルク・ロード・ユーティリティの入力パラメータに正しい値を設定する必要があります。
ユーティリティの入力パラメータは次のとおりです。
-
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ユーザーのログイン名。
ノート:
ATPSデータベースの使用中に、バルク・ロード・ユーティリティを使用する場合は、次に示すステップに従います。これは、Oracle Identity Governanceバンドル・パッチ12.2.1.4.2204XXを適用した後に使用できます。- DBバージョン18cまたは19cをインストールし、OIMバルク・ロード・ユーティリティの実行中にマシンにインスタンスがないDBのみを構成し、インストールされた場所、つまりベースの場所ORACLE_HOMEとして指定します(export ORACLE_HOME=/home/opc/db19cなど)。
- ウォレット・ファイル(
cwallet.sso
、ewallet.p12
およびojdbc.properties
)を別のフォルダ('wallet1'など)にコピーし、oimBulkload
ユーティリティの実行中に使用します。 - ウォレットの
ojdbc.properties
値を次のように更新します:# Connection property while using Oracle wallets. #oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS _ADMIN}))) SSL_SERVER_DN_MATCH=yes # FOLLOW THESE STEPS FOR USING JKS # (1) Uncomment the following properties to use JKS. # (2) Comment out the oracle.net.wallet_location property above # (3) Set the correct password for both trustStorePassword and keyStorePassword. # It's the password you specified when downloading the wallet from OCI Console or the Service Console. javax.net.ssl.trustStoreType=JKS javax.net.ssl.trustStore=/home/opc/idm/truststore.jks javax.net.ssl.trustStorePassword=<truststorepwd> javax.net.ssl.keyStoreType=JKS javax.net.ssl.keyStore=/home/opc/idm/keystore.jks javax.net.ssl.keyStorePassword=<keystorepwd>
- CMDプロンプトで
TNS_ADMIN
を前述のウォレット・エクスポートにTNS_ADMIN=/home/opc/idm/wallet1
として設定します。 - バルク・ロード・ユーティリティの実行中に、オプション「ATP-S設定」に入力として「y」を指定します。
- 接続文字列の場合は、
"//HostIPAddress:Port/ServiceName"
のかわりにtnsname
のみを指定します。これはtnsnames.ora
ファイルに表示されます。サンプル値:
###### データベース接続文字列を取得します ######
## ウォレットfmwatps2_tpからOIMデータベースのホスト名/IPを入力します
13.6.5 操作の進捗の監視
バルク・ロード操作中に、操作の進捗に関する情報を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;
13.6.6 操作中に記録された例外の処理
バルク・ロード操作の最後に、操作に関連する統計が記録されます。
統計は、次のファイルに記録されます。
oimbulkload/logs_YYYYMMDD_hhmm/oim_blkld_user_load_summary.log
操作中に例外が発生したかどうかを確認するには、このログ・ファイルを開き、Number of Records Rejectedラベルの数を確認します。拒否レコードの数がゼロより大きい場合、操作中に例外がスローされたことになります。ユーティリティに拒否されたユーザー・レコードは、例外表(OIM_BLKLD_EX_SUFFIX)に記録されます。拒否レコードごとに、そのレコードをロードできなかった理由に関する情報が、OIM_BLKLD_EX_SUFFIX表のEXCEPTION_MSG列に格納されます。
次の例は、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です。いずれかのレコードがユーティリティによって拒否されたことがログ・ファイルに示されている場合、それらのレコードのロード操作を再試行する方法の詳細は、例外の修正およびデータ・レコードのリロードを参照してください。
ノート:
各バルク・ロード操作の最後に、例外表のバックアップを作成することをお薦めします。
13.6.7 例外の修正およびデータ・レコードのリロード
バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。
この項では、バルク・ロード操作の例外処理と拒否されたレコードをリロードする方法について説明します。次の項目が含まれます。
13.6.7.1 例外の修正について
前述のように、バルク・ロード操作中に発生するエラーは、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は、バルク・ロード操作中に入力ソースとして使用したデータ表ごとに作成されます。操作基準を満たさないレコードは、この例外表にコピーされます。各例外表の名前に追加される接尾辞は、対応するデータ表の名前に追加される接尾辞と同じです。
13.6.7.2 拒否されたレコードのリロード
拒否レコードをリロードするには:
-
拒否レコードが格納されている例外表のバックアップを作成します。
ノート:
このステップはオプションですが、バックアップを作成することをお薦めします。
-
例外表の各レコードを確認し、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を再起動します。
ノート:
バルク・ロードは、設計上データベース集中型の操作であるため、操作開始時に、関連するOracle Identity Managerのエンティティ表の制約および索引が無効化されます。ロードの終盤にバルク・ロード操作の失敗が起こった場合、索引および制約が無効のままになる場合があります。この問題を特定し、修正するには、次のように手動で索引および制約をリストアします。
-
使用できない索引および無効化された制約を特定します。これを行うには、次のSQL問合せまたは同様の方法を使用します。
SELECT TABLE_NAME, CONSTRAINT_NAME FROM user_constraints WHERE status = 'DISABLED'; SELECT index_name FROM user_indexes WHERE status = 'UNUSABLE';
-
次のように手動で制約を有効化して、索引を最構築します。
ALTER TABLE TABLE_NAME ENABLE CONSTRAINT CONSTRAINT_NAME; ALTER INDEX INDEX_NAME REBUILD;
13.6.8 バルク・ロード操作の結果の検証
ユーザーにリソースをプロビジョニングし、ユーザーのアカウントを変更することにより、ユーティリティによって追加されたOIMユーザーのいずれかについて、バルク・ロード操作の結果を検証します。
バルク・ロード操作の結果を検証するには、ユーティリティによって追加されたOIMユーザーのいずれかについて、次のステップを実行できるかどうかを確認します。
ノート:
-
これらのステップではシステムにフットプリントが残るため、バルク・ロードの検証は、テスト・ユーザーを使用して実行する必要があります。システムにフットプリントが残らないようにするには、変更を元に戻します。たとえば、リソースをOIMユーザーにプロビジョニングした場合は、バルク・ロード操作の結果のテスト後に、リソースをプロビジョニング解除します。
-
Oracle Identity ManagerがLDAPと同期されている場合は、ユーザー・データのアップロード実行後に、LdapSyncオプションを
Yes
に設定の上、バルク・ロードの後処理スケジュール済ジョブを実行します。ランダム・パスワードを生成してユーザーに電子メールを送信する場合は、電子メール通知を構成して、スケジューラでGenerate PasswordおよびNotificationパラメータをYesに設定する必要があります。バルク・ロードの後処理スケジュール済ジョブの詳細は、Oracle Identity Governanceの管理の事前定義済のスケジュール済タスクを参照してください。
- OIMユーザーとしてログインします。パスワードの変更を要求されます。
- OIMユーザー用のリソースをプロビジョニングします。
- OIMユーザーをロールに追加します。
- OIMユーザーのアカウント・プロファイルを変更します。
- OIMユーザーにプロビジョニングされたリソースを失効させます。
- 前にOIMユーザーを追加したロールからそのユーザーの割当てを解除します。
- アカウント・プロファイルを再び変更し、プロファイルを元の状態に戻します。
- そのユーザーに関する「ユーザー・リソース・アクセス」レポート(操作上のレポート)および「ユーザー・リソース・アクセス履歴」レポートを生成できるかどうかをチェックします。
13.6.9 監査スナップショットの生成
必要に応じて、バルク・ロード操作後またはバルク・ロード操作中にいつでも、Oracle Identity Managerデータの監査スナップショットを生成できます。
監査スナップショットは、バルク・ロード・ユーティリティのオプション7を選択して生成することもできます。ユーティリティでは、Oracle Identity Managerとともに出荷されている監査エンジンを使用します。内部的には、監査ユーティリティの実行時に、GenerateSnapshotスクリプトがコールされます。同様に、監査スナップショットを生成するオプションを選択すると、GenerateSnapshotスクリプトがコールされます。
ノート:
監査ユーティリティの実行時には、Oracle Identity Managerが起動し、稼働中であることが必要です。
監査スナップショットを生成する前に、実行中のGenerateSnapshotスクリプトに次の環境変数を設定する必要があります。
-
APP_SERVER: weblogic
-
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 Identity Governanceの管理の監査の構成を参照してください。
13.6.10 バルク・ロード後処理スケジュール済タスクの実行
バルク・ロード後処理スケジュール済タスクは、バルク・ロード・ユーティリティによってロードされたユーザーの後処理操作を実行します。
バルク・ロード・ユーティリティを使用してOracle Identity Governanceにロードされる他のエンティティに対しては、後処理ジョブは存在しません。バルク・ロード後処理ジョブによって実行できるのは次の操作のみです:
- パスワードの生成: デフォルトでは、バルク・ロード・ユーティリティは、Oracle Identity Governanceによって作成されるユーザーの同じパスワードをコピーします(これは実行時にプロンプトされます)。このため、最初はユーザー全体のパスワードが同じになります。その後、バルク・ロード後処理ジョブを実行してランダムなパスワードを生成できます。
- 電子メール通知: Oracle Identity Governanceによって、すべてのユーザーに資格証明が通知されます。
- LDAP同期: バルク・ロード後処理ジョブは、LDAP同期モードで構成されたLDAPに一括ロードされたユーザーの処理を行います。
バルク・ロード後処理スケジュール済タスクの詳細は、『Oracle Fusion Middleware Oracle Identity Governanceの管理』の事前定義済のスケジュール済タスクに関する項を参照してください。
13.7 アカウント・データのロード
アカウント・データのロードには、バルク・ロード操作の入力ソースの作成、バルク・ロード・ユーティリティの実行および例外の処理(ある場合)が含まれます。
この項では、アカウント・データのロードに含まれるステップを詳しく説明します。次の項目が含まれます。
13.7.1 アカウント・データのロードの概要
アカウント・データのロードには、バルク・ロード操作の入力ソースの作成、バルク・ロード・ユーティリティの実行および例外の処理(ある場合)が含まれます。
アカウント・データをロードするステップの概要は次のとおりです。
13.7.2 アカウント・データのバルク・ロード操作の要件および機能
バルク・ロード・ユーティリティを実行してアカウント・データをロードする際には特定の要件があり、たとえば、リコンシリエーションを設定し、ターゲット・システムからいくつかのアカウントをインポートすることによって、リコンシリエーションをテストできるようにする必要があります。
アカウント・データのバルク・ロード操作の要件および機能は次のとおりです。
-
リコンシリエーションを設定し、ターゲット・システムからいくつかのアカウントをインポートすることによって、リコンシリエーションをテストできるようにする必要があります。
-
対応するOIMユーザーがあるアカウントのみをロードできます。
-
複数のITリソースが必要なターゲット・システムはサポートされません。
-
バルク・ロード操作中には、重複したアカウントを検出できません。入力ソースで同じアカウントについて複数のエントリがある場合、対応するOIMユーザーに複数のアカウントが作成されます。
-
特定のターゲット・システムの場合、Oracle Identity Managerに複数のプロビジョニング・プロセスまたはプロセス・フォームがあると、リソース・オブジェクトのデフォルトのプロビジョニング・プロセスがユーティリティによって使用されます。
-
以前のバルク・ロード操作がどのステージまで進行したかに関する情報は格納されていません。つまり、ユーティリティはバルク・ロード操作を再開できません。バルク・ロード操作前に、Oracle Identity Managerデータベースをバックアップする必要があります。バルク・ロード操作を再試行する場合、最初にデータベースをリストアしてから、手順を再実行します。
-
バルク・ロード・ユーティリティは、アカウント・データのロードのための入力として、対応するアプリケーション・インスタンス名を取得します。アプリケーション・インスタンス名が不明な場合、ロードするアカウント・データに基づいて、バルク・ロード・ユーティリティは、リソース・オブジェクト名およびITリソース名の入力を求めます。
-
アカウントをロードするターゲット・システムがActive Directoryの場合は、入力ソース(CSVファイルまたはデータベース表)の属性リストに、次の属性がその値とともに必須で含まれていることを確認します。
-
UD_ADUSER_COMMONNAME
-
UD_ADUSER_USERPRINCIPALNAME
バルク・ロード時にこれらの属性値をロードしなかった場合、後でこのターゲットでのプロビジョニング関連の操作に失敗する可能性があります。
-
-
アカウント・データを権限とともにロードする場合は、次の手順を実行します。
-
適切な参照表を移入するための参照リコンシリエーション・タスクが実行され、表が最新であることを確認します。
-
権限リスト・スケジュール済ジョブを実行し、データのロード前に完了させます。検証するには、すべての権限がENT_LIST表に表示されていることを確認します。権限リスト・スケジュール済ジョブの詳細は、Oracle Identity Governanceの管理の事前定義済のスケジュール済タスクを参照してください。
アカウントのロード前にこれらのステップを実行しないと、ユーザー・ページに対する権限が失われることがあります。このような状況は、バルク・ロードの後に権限割当てスケジュール済ジョブを実行して完了することで修正できますが、ステップ1と2に従った場合は回避できます。権限割当てスケジュール済ジョブの詳細は、Oracle Identity Governanceの管理の事前定義済のスケジュール済タスクを参照してください。
-
13.7.3 バルク・ロード操作用の入力ソースの作成
使用する入力ソースに応じて、入力ソースとしてCSVファイルを使用する場合またはデータベース表を作成する場合のガイドラインに従う必要があります。
この項の内容は次のとおりです。
13.7.3.1 入力ソースとしてのCSVファイルの使用
バルク・ロード操作用の入力ソースとしてCSVファイルを使用する場合は、CSVファイルの作成時に次のガイドラインに従います。
-
CSVファイルは、oimbulkload/csv_filesディレクトリに置く必要があります。
-
CSVファイルの1行目は制御行と呼ばれます。この行には、アカウント・データをロードするアカウント(UD_*)表の列名のカンマ区切りリストが含まれている必要があります。UD_表を検索するには、Design Consoleのプロセス・フォームに移動します。プロセス・フォームの詳細は、プロビジョニング・プロセスの開発を参照してください。
ノート:
「パスワード」列または暗号化されたその他の列が、列リストに含まれていないことを確認してください。
-
ファイルの2行目以降には、制御行にある列の値が含まれている必要があります。1行目の列の順序と、残りの行の値が同じである必要があります。
-
列にカンマを含む値がある場合は、その値を二重引用符(")で囲む必要があります。
-
CSVファイルには、アカウント表で必須と指定されているすべての列の値が含まれている必要があります。アカウント表のキー必須列は無視する必要があります。
-
親表および子表にアカウント・データをロードする場合、1つの親CSVファイルと、子表ごとに1つのCSVファイルを作成する必要があります。たとえば、1つの親表と3つの子表にデータをロードする場合、1つの親CSVファイルと3つの子CSVファイルを作成する必要があります。
-
アカウント・データを親表および子表にロードする場合、少なくとも1つの列を両方の表で同じにします。この列は、親CSVファイルと子CSVファイル間のリンク属性に対応します。次に、この例を示します。
親CSVファイルの内容のサンプルを次に示します。
UD_ADUSER_UID,,UD_ADUSER_FNAME,UD_ADUSER_LNAME,UD_ADUSER_MNAME,UD_ADUSER_FULLNAME,UD_ADUSER_OBJECTGUID ADTEST1,"7~CN=ForeignSecurityPrincipals,dc=example,dc=com",adtest1,adtest1,,adtest1,102
ノート:
-
UD_ADUSER_OBJECTGUID列は、バルク・ロード操作で使用するアカウントをロードするための親CSVファイルに必須です。この列は、データベース内でNULL値が許容される列であるかどうかにかかわらず、親CSVファイルに追加する必要があります。
-
親と子のCSVで定義されている共通キー列は、子のデータベース表に存在する必要がありません。この列は、レコード・キーを識別して、対応する子表にそれぞれのエントリを作成するために、BulkUploadユーティリティによって使用されます。たとえば、UD_ADUSER_UIDなどです。この列は親表に存在する必要がありますが、いずれの子表にも存在する必要はありません。
子CSVファイルの内容のサンプルを次に示します。
UD_ADUSER_UID,UD_ADUSRC_GROUPNAME ADTEST1,"7~CN=ForeignSecurityPrincipals,dc=example,dc=com",group2
UD_ADUSER_UID列は、親ファイルと子ファイルの両方で共通です。
-
-
CSVファイルがMicrosoft Windowsで生成され、Linux環境でロードされる場合は、\n\rなどの特殊文字を削除して実行時エラーを回避します。
13.7.3.2 入力ソースとしてのデータベース表の作成
アカウント・データのロード用の入力ソースとしてデータベース表を使用する場合は、データベース表の作成時に次のガイドラインに従います。
-
Oracle Identity Managerデータベースに表を作成します。
-
表には、次の主キー列が含まれている必要があります。
OIM_BLKLD_USRSEQ NUMBER(19)
ユーティリティでは、この列が主キーとして使用されます。必要に応じて、データベース順序を使用して、この列に値を移入できます。
-
残りの列は、使用するアカウント(UD_)表の列と同じである必要があります。つまり、作成する表に含めないオプションのUD_列は無視します。
13.7.3.3 サンプルの親表の構造
表13-2に、サンプルの親表の構造を示します。
表13-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) |
13.7.3.4 サンプルの子表の構造
表13-3に、サンプルの子表の構造を示します。
表13-3 サンプルの子データベース表の構造
名前 | NULLかどうか | タイプ |
---|---|---|
UD_ADUSER_UID |
VARCHAR2(20) |
|
UD_ADUSER_ORGNAME |
VARCHAR2(256) |
|
UD_ADUSRC_GROUPNAME |
VARCHAR2(32) |
|
OIM_BLKLD_SEQ |
NOT NULL |
NUMBER(19) |
13.7.4 ユーティリティの入力パラメータの値の確認
ロードするデータのタイプにあわせて、バルク・ロード・ユーティリティの入力パラメータに正しい値を設定する必要があります。
ユーティリティの入力パラメータは次のとおりです。
-
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回入力する必要があります。
-
アプリケーション・インスタンス名(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)の入力を求めます。
-
ユーザーID (USR_LOGIN)
バルク・ロード・ユーティリティを使用してアカウントをプロビジョニングしたユーザーを特定するために使用されるユーザー・ログインID。
ノート:
バンドル・パッチ12.2.1.4.201011を適用した後、アカウント・データをロードするバルク・ロード・ユーティリティにより、追加情報の入力を求められます。追加入力の詳細は、『Oracle Identity Governanceバンドル・パッチReadme』のアカウントをロードするバルク・ロード・ユーティリティに関する項を参照してください。13.7.5 操作の進捗の監視
バルク・ロード操作中に、操作の進捗に関する情報をOIM_BLKLD_LOG表に問い合せることができます。
たとえば、次の問合せを実行すると、アカウント・データをロードするバルク・ロード操作中に生成される進捗メッセージを確認できます。
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;
13.7.6 操作中に記録された例外の処理
バルク・ロード操作の最後に、操作に関連する統計が記録されます。
統計は、次のファイルに記録されます。
oimbulkload/logs_YYYYMMDD_hhmm/oim_blkld_account_load_summary.log
操作中に例外が発生したかどうかを確認するには、このログ・ファイルを開き、Number of Records Rejectedラベルの数を確認します。拒否レコードの数がゼロより大きい場合、操作中に例外がスローされたことになります。ユーティリティに拒否されたユーザー・レコードは、例外表(OIM_BLKLD_EX_SUFFIX)に記録されます。拒否レコードごとに、そのレコードをロードできなかった理由に関する情報が、OIM_BLKLD_EX_SUFFIX表のEXCEPTION_MSG列に格納されます。
次に、アカウント・データを格納するバルク・ロード操作の最後にログ・ファイルに記録される統計のサンプルを示します。
============================================================= 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です。いずれかのレコードがユーティリティによって拒否されたことがログ・ファイルに示されている場合、それらのレコードのロード操作を再試行する方法の詳細は、例外の修正およびデータ・レコードのリロードを参照してください。
ノート:
各バルク・ロード操作の最後に、例外表のバックアップを作成することをお薦めします。
13.7.7 例外の修正およびデータ・レコードのリロード
バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。
ノート:
複数のターゲット・システムのCSVファイルからデータをロードする場合、次の方法のいずれかを使用できます。
-
方法1: CSVファイルのすべてのセットに対してユーティリティを実行し、この項で説明する手順を実行します。
-
方法2: CSVファイルの1つのセットに対してユーティリティを実行し、この項で説明する手順を実行します。その後、次のセットのCSVファイルに対してこの手順を繰り返します。
この項では、バルク・ロード操作の例外処理と拒否されたレコードをリロードする方法について説明します。次の項目が含まれます。
13.7.7.1 例外の修正について
バルク・ロード操作中に発生するエラーは、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は、バルク・ロード操作中に入力ソースとして使用したデータ表ごとに作成されます。操作基準を満たさないレコードは、この例外表にコピーされます。各例外表の名前に追加される接尾辞は、対応するデータ表の名前に追加される接尾辞と同じです。
13.7.7.2 拒否されたレコードのリロード
拒否レコードをリロードするには:
-
拒否レコードが格納されている例外表のバックアップを作成します。
ノート:
このステップはオプションですが、バックアップを作成することをお薦めします。
-
例外表の各レコードを確認し、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を再起動します。
ノート:
バルク・ロードは、設計上データベース集中型の操作であるため、操作開始時に、関連するOracle Identity Managerのエンティティ表の制約および索引が無効化されます。ロードの終盤にバルク・ロード操作の失敗が起こった場合、索引および制約が無効のままになる場合があります。この問題を特定し、修正するには、次のように手動で索引および制約をリストアします。
-
使用できない索引および無効化された制約を特定します。これを行うには、次のSQL問合せまたは同様の方法を使用します。
SELECT TABLE_NAME, CONSTRAINT_NAME FROM user_constraints WHERE status = 'DISABLED'; SELECT index_name FROM user_indexes WHERE status = 'UNUSABLE';
-
次のように手動で制約を有効化して、索引を最構築します。
ALTER TABLE TABLE_NAME ENABLE CONSTRAINT CONSTRAINT_NAME; ALTER INDEX INDEX_NAME REBUILD;
13.7.8 バルク・ロード操作の結果の検証
新しく作成されたアカウントがUIに表示されるかどうかを確認し、そのアカウントの資格証明を使用してターゲット・システムにログインすることにより、ユーティリティによって追加されたアカウントのいずれかについて、バルク・ロード操作の結果を検証します。
バルク・ロード操作の結果を検証するには、ユーティリティによってアカウントが追加されたOIMユーザーの1人について、次のステップを実行できるかどうかをチェックします。
-
OIMユーザーとしてログインして、新しく作成したアカウントが、「ユーザーの詳細」ページの「アカウント」タブ、またはそのユーザーの「マイ・アクセス」ページの「マイ・アカウント」タブに表示されるかどうかを確認します。
-
新規に作成されたアカウントの資格証明を使用して、ターゲット・システムにログインします。
13.8 ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロード
ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロードには、バルク・ロード操作の入力ソースの作成、バルク・ロード・ユーティリティの実行および例外の処理(ある場合)が含まれます。
この項では、ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロードに含まれるステップを詳しく説明します。次の項目が含まれます。
13.8.1 ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロードの概要
ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロードには、バルク・ロード操作の入力ソースの作成、バルク・ロード・ユーティリティの実行および例外の処理(ある場合)が含まれます。
ロール関連データをロードするステップの概要は次のとおりです。
13.8.2 バルク・ロード操作用の入力ソースの作成
使用する入力ソースに応じて、入力ソースとしてCSVファイルを使用する場合またはデータベース表を作成する場合のガイドラインに従う必要があります。
この項の内容は次のとおりです。
13.8.2.1 入力ソースとしてのCSVファイルの使用
バルク・ロード操作用の入力ソースとして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を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: デフォルト
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などの特殊文字を削除して実行時エラーを回避します。
13.8.2.2 入力ソースとしてのデータベース表の作成
OIMユーザー・データのロード用の入力ソースとしてデータベース表を使用する場合は、データベース表の作成時に次のガイドラインに従います。
-
Oracle Identity Managerデータベースに表を作成します。
-
表には、次の主キー列が含まれている必要があります。
OIM_BLKLD_USRSEQ NUMBER(19)
ユーティリティでは、この列が主キーとして使用されます。必要に応じて、データベース順序を使用して、この列に値を移入できます。
-
残りの列は、使用する各ロール表の列と同じである必要があります。
13.8.2.3 サンプル・データベース表の構造
表13-4に、サンプル・データベース・ロール表の構造を示します。
表13-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は、ロールのロードにのみ必要で、ロール階層、ロール・メンバーシップおよびロール・カテゴリには必要ありません。
13.8.2.4 ロール・ロード後に生成されるUGP_NAMEの確認
バルクロード・ユーティリティは、ロール・ロード中に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の生成された値を確認します。
13.8.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データベース・ユーザーのパスワード。プロンプトが表示されたら、このパスワードを2回入力します。
-
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に設定すると、ユーティリティでは、バルク・ロード操作中に発生したイベントに関する詳細な情報が記録されます。詳細は、操作中に記録されるデータを参照してください。
13.8.4 操作の進捗の監視
バルク・ロード操作中に、操作の進捗に関する情報を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;
13.8.5 操作中に記録された例外の処理
バルク・ロード操作の最後に、操作に関連する統計が記録されます。
統計は、次のファイルに記録されます。
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列に格納されます。
次に、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データベースにデータをロードすることはできません。
13.8.6 例外の修正およびデータ・レコードのリロード
バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。
この項では、例外処理と拒否されたレコードをリロードする方法について説明します。次の項目が含まれます。
13.8.6.1 例外の修正について
バルク・ロード操作中に発生するエラーは、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は、バルク・ロード操作中に入力ソースとして使用したデータ表ごとに作成されます。操作基準を満たさないレコードは、この例外表にコピーされます。各例外表の名前に追加される接尾辞は、対応するデータ表の名前に追加される接尾辞と同じです。
13.8.6.2 拒否されたレコードのリロード
拒否レコードをリロードするには:
-
拒否レコードが格納されている例外表のバックアップを作成します。
ノート:
このステップはオプションですが、バックアップを作成することをお薦めします。
-
例外表の各レコードを確認し、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を再起動します。
ノート:
バルク・ロードは、設計上データベース集中型の操作であるため、操作開始時に、関連するOracle Identity Managerのエンティティ表の制約および索引が無効化されます。ロードの終盤にバルク・ロード操作の失敗が起こった場合、索引および制約が無効のままになる場合があります。この問題を特定し、修正するには、次のように手動で索引および制約をリストアします。
-
使用できない索引および無効化された制約を特定します。これを行うには、次のSQL問合せまたは同様の方法を使用します。
SELECT TABLE_NAME, CONSTRAINT_NAME FROM user_constraints WHERE status = 'DISABLED'; SELECT index_name FROM user_indexes WHERE status = 'UNUSABLE';
-
次のように手動で制約を有効化して、索引を最構築します。
ALTER TABLE TABLE_NAME ENABLE CONSTRAINT CONSTRAINT_NAME; ALTER INDEX INDEX_NAME REBUILD;
13.9 組織データのロード
組織データのロードには、バルク・ロード操作の入力ソースの作成、バルク・ロード・ユーティリティの実行および例外の処理(ある場合)が含まれます。
この項では、組織データのロードに含まれるステップを詳しく説明します。次の項目が含まれます。
13.9.1 組織データのロードの概要
組織データのロードには、バルク・ロード操作の入力ソースの作成、バルク・ロード・ユーティリティの実行および例外の処理(ある場合)が含まれます。
組織データのロードに含まれるステップの概要は次のとおりです。
13.9.2 バルク・ロード操作用の入力ソースの作成
使用する入力ソースに応じて、入力ソースとしてCSVファイルを使用する場合またはデータベース表を作成する場合のガイドラインに従う必要があります。
この項では、次の項について説明します。
13.9.2.1 入力ソースとしてのCSVファイルの使用
-
CSVファイルは、
oimbulkload/csv_files
ディレクトリに置く必要があります。 -
CSVファイルの1行目は制御行と呼ばれます。この行には、Oracle Identity ManagerデータベースにおけるACT表の列名のカンマ区切りリストが含まれている必要があります。
-
ファイルの2行目以降には、制御行にある列の値が含まれている必要があります。1行目の列の順序と、残りの行の値が同じである必要があります。CSVファイルの内容のサンプルを次に示します。
ACT_NAME,ACT_PARENT_NAME,ACT_STATUS,ACT_CUST_TYPE Org1,Xellerate Users,Active,System Org2, Org3,Active,Company Org3,Org4,Active, System Org4,Top,Active,Company
-
CSVファイルには、前の箇条書きで提供された例のような階層データも含むことができます。ここではOrg4が最初に作成され、次にOrg3、そして最後にOrg2が作成されます。最後のOrg4のエントリがこのCSVにない場合、Org3もOrg2も、それぞれの親がOracle Identity Managerで使用できないため作成されません。
-
ACT_NAMEおよびACT_PARENT_NAMEは必須の列です。これらの列とともに、ACT表にある他の列もロードできます。
-
列にカンマを含む値がある場合は、その値を二重引用符(")で囲む必要があります。
-
CSVファイルには、ACT表で必須と指定されているすべての列の値が含まれている必要があります。
-
CSVファイルの各行では、USR表のACT_NAME列に一意の値が必要です。複数のファイルがある場合、ACT_NAMEの値がCSVファイル全体にわたり一意であることを確認します。ACT_NAME値の一意性のチェックは、Oracle Identity Managerの既存の組織についても行う必要があります。
-
CSVファイルに次の列の値が含まれていない場合、次のデフォルト値がOracle Identity Managerに挿入されます。
ACT_PARENT_NAME :
Top
ACT_CUST_TYPE :
System
ACT_STATUS:
Active
-
ロードする組織データが含まれるCSVファイルの名前を含むマスターTXTファイルを作成します。このファイルには任意の名前(master.txtなど)を指定できます。マスター・ファイルを
oimbulkload/csv_files
ディレクトリに保存します。複数のCSVファイルをロードする場合は、マスター・ファイルの別々の行に各データCSVファイルの名前を入力します。CSVファイル名のリストを、ユーティリティでファイルからデータをロードする順序に並べ替えます。たとえば、3つのデータCSVファイル(London_Orgs.csv、NewYork_Orgs.csvおよびTokyo_Orgs.csv)を作成したとします。マスター・ファイルで、データCSVファイルの名前を次の順序で入力します。Tokyo_Orgs.csv London_Orgs.csv NewYork_Orgs.csv
ユーティリティを実行すると、データはこの順序でロードされます。これは、LondonおよびNew Yorkの組織データがTokyo Orgsに依存している可能性があるためです。
-
CSVファイルがMicrosoft Windowsで生成され、Linux環境でロードされる場合は、\n\rなどの特殊文字を削除して実行時エラーを回避します。
ノート:
CSVファイルをWindowsからUNIX、SolarisまたはLinuxシステムにコピーする場合、^M
などの特殊文字がファイルに追加されます。これは、WindowsのファイルがDOS (ASCII)形式であり、ISO形式に変換する必要があるためです。Solarisは、dos2unix
ユーティリティをシステムにプリインストールして、このジョブを行います。しかしUNIX/Linuxシステムの場合、CSVファイルをDOS形式からUNIX形式に変換して、バルク・ロード操作で使用される前に入力ファイルの健全性を確保する必要があります。これを行う構文は次のとおりです。# dos2unix CSV_FILE_NAME
dos2unix
ユーティリティがUNIX/Linuxシステムに存在しない場合、管理者は関連ドキュメントを使用してそれぞれのUNIX/Linuxバージョン用のユーティリティをインストールできます。
13.9.2.2 入力ソースとしてのデータベース表の作成
-
Oracle Identity Managerデータベースに表を作成します。
-
ACT_NAMEおよびACT_PARENT_NAMEは必須の列です。
-
必須の列とともに、表には次の主キー列が含まれている必要があります。
OIM_BLKLD_ACTSEQ NUMBER(19)
ユーティリティでは、この列が主キーとして使用されます。必要に応じて、データベース順序を使用して、この列に値を移入できます。
-
残りの列は、使用するACT表の列と同じである必要があります。つまり、作成する表に含めないオプションのACT列は無視します。
13.9.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データベース・ユーザーのパスワード。プロンプトが表示されたら、このパスワードを2回入力します。
-
CSVファイル名
入力ソースとして使用されるマスターCSVファイルの名前
このパラメータは、入力ソースがCSVファイルの場合のみ使用されます。入力ソースとしてのCSVファイルの使用を参照してください。親CSVファイルおよび子CSVファイルからデータをロードする場合、カンマ区切りリストを使用して、ファイル名を入力します。親CSVファイルの名前を最初に指定し、その後に子CSVファイルの名前を指定する必要があります。
-
一時表名
入力ソースとして使用される一時表の名前。
このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。入力ソースとしてのデータベース表の作成を参照してください。
-
制御行
データベース表からOracle Identity Managerにロードされる列の名前のカンマ区切りリスト。
このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。
-
表領域名
バルク・ロード操作中に一時表が作成される表領域の名前。(エンド・ユーザーが表領域名を指定しない場合は、デフォルトの表領域が使用されます。)バルク・ロード操作用のデータベースの準備を参照してください。
-
日付書式
CSVファイルの日付列で使用される日付書式。
このパラメータは、入力ソースがCSVファイルの場合のみ使用されます。
日付書式は、次と一致している必要があります。
-
dd-mm-yyyyやMM-DD-YYYYなど、Oracleでサポートされている日付書式
-
CSVファイルで指定されている日付書式
-
-
バッチ・サイズ
ユーティリティで単一トランザクションとして処理する必要のあるユーザー・レコード数。
バッチ・サイズは、バルク・ロード操作のパフォーマンスに影響を与える可能性があります。このパラメータのデフォルト値は10000です。
-
デバッグ・フラグ
このパラメータの値として、YまたはNを指定できます。このパラメータをYに設定すると、ユーティリティでは、バルク・ロード操作中に発生したイベントに関する詳細な情報が記録されます。操作中に記録されるデータを参照してください。
13.9.4 操作の進捗の監視
バルク・ロード操作中に、操作の進捗に関する情報をOIM_BLKLD_LOG表に問い合せることができます。
SELECT MSG FROM OIM_BLKLD_LOG WHERE MODULE = 'ORG' AND LOG_LEVEL = 'PROGRESS_MSG' ORDER BY MSG_SEQ_NO;
SELECT MSG FROM OIM_BLKLD_LOG WHERE MODULE = 'ORG' AND LOG_LEVEL = 'ERROR' ORDER BY MSG_SEQ_NO;
13.9.5 操作中に記録された例外の処理
バルク・ロード操作の最後に、操作に関連する統計が記録されます。
統計は、次のファイルに記録されます。
oimbulkload/logs_YYYYMMDD_hhmm/oim_blkld_org_load_summary.log
操作中に例外が発生したかどうかを確認するには、このログ・ファイルを開き、Number of Records Rejectedラベルの数を確認します。拒否レコードの数がゼロより大きい場合、操作中に例外がスローされたことになります。ユーティリティに拒否された組織レコードは、例外表(OIM_BLKLD_EX_SUFFIX)に記録されます。拒否レコードごとに、そのレコードをロードできなかった理由に関する情報が、OIM_BLKLD_EX_SUFFIX表のACT_LOAD_NOTE列に格納されます。それぞれのTMP表のACT_LOAD_NOTE列には、org作成のステータス/エラーも示されています。
//Sample log file when source of input is DB table- *************************************************************************************************** Bulkload Mode : online *************************************************************************************************** Source for Organization bulkload : DB Table Processing TMP table : DB_TBL successfully loaded TMP Table : DB_TBL successfully loaded TMP Table : DB_TBL TMP Table : DB_TBL Exception Table : DB_TBL_EX1 Log Table : OIM_BLKLD_LOG ========================================================================================== O R G L O A D S T A T I S T I C S F O R T A B L E : DB_TBL ========================================================================================== Start Time : 19-FEB-16 12.55.35.101932 AM End Time : 19-FEB-16 01.01.38.269610 AM Number of Records Processed : 160 Number of Records Loaded : 160 Number of Records Rejected : 0 //Sample log file when source of input is csv file- *************************************************************************************************** Bulkload Mode : online *************************************************************************************************** Source for Organization bulkload : CSV File Processing csv File : org.csv successfully loaded File : org.csv successfully loaded TMP Table : OIM_BLKLD_TMP_ORG1 TMP Table : OIM_BLKLD_TMP_ORG1 Exception Table : OIM_BLKLD_EX_ORG1 Log Table : OIM_BLKLD_LOG ========================================================================================== O R G L O A D S T A T I S T I C S F O R F I L E : org.csv ========================================================================================== Start Time : 19-FEB-16 12.39.27.469318 AM End Time : 19-FEB-16 12.39.27.519390 AM Number of Records Processed : 4 Number of Records Loaded : 0 Number of Records Rejected : 4 ==========================================================================================
この例では、拒否レコードの数は4です。いずれかのレコードがユーティリティによって拒否されたことがログ・ファイルに示されている場合、それらのレコードのロード操作を再試行する方法の詳細は、例外の修正およびデータ・レコードのリロードを参照してください。
13.9.6 例外の修正およびデータ・レコードのリロード
バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。
この項では、バルク・ロード操作の例外処理と拒否されたレコードをリロードする方法について説明します。次の項目が含まれます。
13.9.6.1 例外の修正について
SELECT MSG FROM OIM_BLKLD_LOG WHERE MODULE = 'ORG' AND LOG_LEVEL = 'ERROR' ORDER BY MSG_SEQ_NO;
例外表OIM_BLKLD_EX_SUFFIXは、バルク・ロード操作中に入力ソースとして使用したデータ表ごとに作成されます。操作基準を満たさないレコードは、この例外表にコピーされます。各例外表の名前に追加される接尾辞は、対応するデータ表の名前に追加される接尾辞と同じです。
13.10 操作中に記録されるデータ
バルク・ロード操作中、ユーティリティにより、進捗メッセージおよびエラー・メッセージがOIM_BLKLD_LOG表に挿入されます。
OIM_BLKLD_LOG表のデータは、新しいバルク・ロード操作の開始時に削除されません。この表の列の1つには、この表にメッセージが記録されたときのタイムスタンプが保持されます。
表13-5に、OIM_BLKLD_LOG表の構造を示します。
表13-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 |
13.11 バルク・ロード操作からの診断データの収集
ファイルに記録されたデータを使用して、バルク・ロード操作に関するパフォーマンス関連の情報を照合できます。
次のログ・ファイルがバルク・ロード操作中に作成されます。
-
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です。
-
このファイルに記録されたレコードは、バルク・ロード操作に関するパフォーマンス関連の情報の照合に使用できます。バルク・ロード操作後には、次の情報を収集できます。
-
開始時間
-
入力ソース
-
ロード前のシステム内のレコード数
-
ロードに成功したレコード数
-
拒否されたレコード数
-
合計所要時間
この情報は、ユーティリティの今後の実行時に使用できます。
関連項目:
エラー・イベントを格納するログ・レベルの詳細は、表13-5を参照してください
13.12 バルク・ロード操作後のクリーンアップ
操作が完了したら、バルク・ロードのログ表、表領域およびファイルを削除できます。
バルク・ロード操作の結果を保存しない場合は、次のようにします。
-
OIM_BLKLD_TMP_SUFFIX表、OIM_BLKLD_EX_SUFFIX表およびOIM_BLKLD_LOG表を削除します。
-
操作中に作成または使用したファイルをすべて削除します。
-
操作用の表領域を作成した場合、その表領域を削除します。
-
logs_timestampディレクトリに作成されたログ・ファイルを削除する前に、バルク・ロード操作からの診断データの収集を参照してください。
ノート:
まだOracle Identity Managerを再起動していない場合、この時点で再起動できます。