この章の項目は次のとおりです。
大量のデータを処理する場合は通常、バルク操作は標準的なLDAP操作より効率的です。バルク操作は、コマンドライン・バルク・ツールを使用してのみ実行できます。
Oracle Identity Managementコマンドライン・ツールの使用を開始する前に、環境を構成する必要があります。これには、適切な環境変数の設定が含まれます。
このガイドに示す構文および例では、次の環境変数が設定されている必要があります。
ORACLE_HOME
: Oracle Identity Managementのインストール内の書込み不可ファイルの場所。
ORACLE_INSTANCE
: Oracle Identity Managementのインストール内の書込み可能ファイルの場所。
NLS_LANG
(APPROPRIATE_LANGUAGE
.AL32UTF8
): インストール時のデフォルトの言語セットはAMERICAN_AMERICA
です。
WLS_HOME
: WebLogic Serverがインストールされている場所。この環境変数はOracle Directory Integration Platformコマンドには必要ですが、Oracle Internet Directoryコマンドには必要ありません。
PATH
: 次のディレクトリ位置をPATH
に追加する必要があります。
ORACLE_HOME
/bin
ORACLE_HOME
/ldap/bin
ORACLE_HOME
/ldap/admin
注意: バルク・ツールでは、属性一意性はサポートされていません。 |
バルク・ツールについては、この章の他に、次の項でも説明しています。
関連項目: 『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のOracle Internet Directory管理ツールに関する章 |
注意:
|
ヒント: この章の構文説明では、TRUEまたはFALSE引数を次の形式で表します。check="TRUE"
check=t check=true check="true" check=T check=TRUE check="TRUE" |
一部のバルク・ツール操作およびレプリケーション設定手順では、Oracle Internet Directoryインスタンスを読取り/書込みモードから読取り専用モードに、または読取り専用モードから読取り/書込みモードに切り替える必要があります。この切替えは、Oracle Enterprise Manager Fusion Middleware Controlまたはldapmodify
を使用して行うことができます。
サーバーが読取り専用モードの間は、管理者cn=orcladmin
のみがディレクトリへの書込みを実行できます。このため、ディレクトリを変更するには、cn=orcladmin
としての接続を可能にするユーティリティを使用する必要があります。次のポリシーが含まれます。
Oracle Directory Services Manager
コマンドライン・ツール
サーバーが読取り専用モードの間は、WLSTまたはOracle Enterprise Manager Fusion Middleware Controlを使用して変更を実行できません。これらのユーティリティではユーザーcn=emd admin, cn=oracle internet directory
としてOracle Internet Directoryサーバーに接続するためです。
Fusion Middleware Controlを使用してサーバー・モードを読取り専用に設定する手順は、次のとおりです。
「Oracle Internet Directory」メニューから「管理」を選択し、「サーバー・プロパティ」を選択します。
「一般」を選択します。
「サーバー・モード」で「読取り専用」を選択します。
「適用」をクリックします。
Fusion Middleware Controlを使用してサーバー・モードを読取り/書込みモードに設定するには、同じ手順を実行しますが、手順3で「読取り/書込み」
を選択します。
ldapmodify
を使用してサーバー・モードを読取り専用に設定するには、次のコマンドを実行します。
ldapmodify -D "cn=orcladmin" -q -h host_name \ -p port -f change_mode.ldif
ここで、ファイルchange_mode.ldifの内容は次のとおりです。
dn: cn=componentname,cn=osdldapd,cn=subconfigsubentry changetype: modify replace: orclservermode orclservermode: r
ldapmodify
を使用してサーバー・モードを読取り/書込みに設定するには、同じコマンドを使用しますが、LDIFファイルの最終行を次のように変更します。
orclservermode: rw
バルク・ローダーbulkload
は、バルク管理ツールです。このツールは、LDIFまたはSQL*Loader形式の入力データを取得し、このデータをメタデータ・リポジトリにあるOracle Internet Directoryのスキーマに直接ロードします。これには、check
、generate
およびload
の3つの主要フェーズがあります。
check
フェーズでは、bulkload
がLDIF入力データをスキーマのために解析および検証します。
generate
フェーズでは、bulkload
がSQL*Loader形式で中間ファイルを生成します。
load
フェーズでは、bulkload
は、バルク・モード・ロードまたは増分モード・ロードのいずれかの方法でロードできます。
バルク・モード・ロードを使用する場合、bulkload
は生成された中間ファイルをデータベースにロードします。その際、古い索引を削除し、新しい索引を生成します。
増分モード・ロードを使用する場合、bulkload
は中間ファイルを挿入モードでデータベースの表にロードします。データをロードする際に、bulkloadは索引を更新します。
バルク・モード・ロードは、増分モード・ロードより高速です。
バルク・ローダーでは、次の機能もサポートしています。
生成フェーズとロード・フェーズの間に並列処理ができるように、スレッド数を指定できます。
データを他の言語で使用できるようにするencode
オプションがあります。
LDIFファイルで指定した操作属性を保持できるrestore
オプションがあります。
索引を再作成するindex
オプションと、欠落している索引を作成するmissing
オプションがあります。
bulkload
の失敗からのリカバリに役立つrecover
オプションがあります。
既存のディレクトリにデータを追加するとき、bulkload
では、バルク・モードと増分モードの両方のロードをサポートします。
append
オプションを使用すると、LDAPサーバーの稼働中にデータをロードできます。
generate
フェーズの初めに、インスタンス固有の構成エントリ内のサーバーのorclServerMode
が、read/write
からread-modify
に変わります。generate
フェーズの終わりには、read-modify
状態のままであるため、generate
フェーズとload
フェーズの間にエントリをOracle Internet Directoryに追加することはできません。これは内部の順序番号を保持するために必要です。load
フェーズは、generate
フェーズの直後に実行します。load
フェーズの終わりに、サーバーのorclServerMode
は、read/write
の設定に戻されます。bulkload
をrecover
オプションとともに使用しても、orclServerMode
はread/write
に戻ります。
ロード操作の開始時、bulkload
はorclRIenabled
の現在の構成値を確認し、参照整合性を無効にします。ロード・フェーズの最後に、bulkloadはorclRIenabled
を元の値に戻します。ただし、参照整合性違反があった場合、参照整合性は無効にされ、次のメッセージが表示されます。
There is a violation of Referential Integrity and hence it is Disabled now. Run the OIDDIAG tool with diagnostic option to collect the Entries which have dangling DN attribute values and Fix the violation
違反を修正し、orclRIenabledを希望する値に設定します。
bulkload
ツールは、次の出力ファイルをORACLE_INSTANCE
/diagnostics/logs/OID/tools
ディレクトリに生成します。
出力ログ、bulkload.log
重複識別名のリスト、duplicateDN.log
中間ファイル、*.ctl
および*.dat
bulkload
ツールは、次の出力ファイルをORACLE_INSTANCE
/OID/load
ディレクトリに生成します。
不正なLDIFエントリのリスト、badentry.ldif
ldapadd
、dynGrp.ldif
を使用して追加できるすべての動的グループ・エントリのリスト
SQL*Loaderによって生成された中間ログ・ファイル、bsl_*.log
注意:
|
関連項目: oidstats.sqlツールの説明と構文は、『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のoidstats.sql コマンドライン・ツールのリファレンスを参照してください。 |
bulkload [connect=connect_string] {[check="TRUE"|"FALSE" [file=ldif_file]] [generate="TRUE"|"FALSE" [append="TRUE"|"FALSE"] [restore="TRUE"|"FALSE"] [thread=num_of_threads] file=ldif_file] [load="TRUE"|"FALSE" [append="TRUE"|"FALSE"] [threads=num_of_threads]] [index="TRUE"|"FALSE"] [missing="TRUE"|"FALSE"] [recover="TRUE"|"FALSE"]} [encode=character_set] [debug="TRUE"|"FALSE"] [verbose="TRUE"|"FALSE"]
パラメータの組合せには、有効なものもあれば、無効なものもあります。
環境変数ORACLE_INSTANCE
を設定する必要があります。中間ファイルが生成されるOracleインスタンスへの完全修飾パスを設定してください。
bulkload
の起動時には、check
、generate
、load
、append
、recover
またはindex
のアクションのうち少なくとも1つを指定する必要があります。
check
がTRUE
の場合、bulkload
はスキーマ・チェックを実行します。
generate
がTRUE
の場合、bulkload
は中間ファイルを生成します。
check
またはgenerate
アクションを使用する場合、LDIFデータ・ファイルへのパス名を指定する必要があります。
load
がTRUE
の場合、bulkload
は中間ファイルをロードします。
append
がTRUE
の場合、bulkload
はサーバーの稼働中にアクションを実行できます。
restore
フラグは、LDIFファイルにorclguid
やcreatorsname
などの操作属性が含まれる場合にのみ使用します。restore
フラグが指定されていない場合、またはFALSEに設定されている場合は、LDIFファイルに操作属性を含めないでください。
recover
を他のオプションとともに指定しないでください。
check
index
のオプションの組合せは、既存の索引を検証します。
LDIFファイルをインポートするには、bulkload
ユーティリティを使用します。この項では、bulkload
でLDIFファイルを処理するタスクについて説明します。
関連項目: 『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のbulkload コマンドライン・ツールのリファレンス。 |
この項の項目は次のとおりです。
タスク1: Oracle Internet Directoryプロセスの停止
Fusion Middleware Controlまたはコマンドラインを使用して、すべてのOracle Internet Directoryサーバー・インスタンスを停止します。
タスク2: Oracleデータベース・サーバーのバックアップ
ファイルをインポートする前に、安全対策としてOracleデータベース・サーバーをバックアップします。
関連項目: Oracle Databaseドキュメント・ライブラリの『Oracle Databaseバックアップおよびリカバリ基礎』 |
タスク3: Oracle Internet Directoryのパスワードの準備
bulkload
を使用するには、Oracle Internet DirectoryのODS
スキーマのパスワードを指定する必要があります。
関連項目: 『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のoidpasswd コマンドライン・ツールのリファレンス |
タスク4: スキーマ違反とデータ整合性違反に関する入力チェックとSQL*Loader用の入力ファイルの生成
UNIXでは、bulkload
ツールは通常は$ORACLE_HOME/ldap/bin
にあります。Microsoft Windowsでは、このツールは通常はORACLE_HOME\ldap\bin
にあります。
入力ファイルをチェックし、SQL*Loader用のファイルを生成するには、次のように入力します。
bulkload connect="connect_string" \ check="TRUE" generate="TRUE" file="full_path_to_ldif-file_name"
check
オプションとgenerate
オプションの両方を指定すると、エントリのスキーマが正しいかどうかが確認されます。
check
関連のすべてのエラーは、コマンドライン出力として報告されます。すべてのスキーマ違反が、ORACLE_INSTANCE
/diagnostics/logs/OID/tools/bulkload.log
に記録されます。すべての不正エントリは、ORACLE_INSTANCE
/OID/load/badentry.ldif
に記録されます。
エントリが重複している場合、その識別名はORACLE_INSTANCE
/diagnostics/logs/OID/tools/duplicateDN.log
に記録されます。これは単に参考のためです。bulkload
ツールは、重複するエントリに対して重複データは生成しません。重複エントリは無視されます。
テキスト・エディタを使用してすべての不正エントリを修正し、check
オプションとgenerate
オプションを指定してbulkload
を再実行します。エラーがなくなるまで、または許容できるエラーのみになるまで、この手順を繰り返します。たとえば、ldapadd
を使用して少数のエントリをロードすると便利な場合があります。
bulkload
ツールにより、ORACLE_INSTANCE
/OID/load
ディレクトリに中間ファイル*.ctl
および*.dat
が生成されます。エラーが発生しても、bulkload
は、check
エラーのないエントリに対して中間ファイルを生成します。
bulkloadが正常に完了した場合、または許容できるエラーのみで終了した場合、SQL*Loaderでは中間ファイルをload
モードで使用できます。このファイルは変更できません。
注意: check 関連のエラーを無視する場合は、check オプションとgenerate オプションを必ず併用してください。check オプションを使用せずにgenerate オプションを使用すると、検証は行われません。この場合、中間ファイルにはエラーのあるエントリが含まれます。このようなファイルをロードすると、データの不整合や索引作成のエラーが発生することがあります。 |
入力ファイルの生成後、load
オプションを指定してbulkload
を実行します。この手順で、Oracle SQL*Loader固有の形式の*.dat
ファイルがbulkload
によってデータベースにロードされ、属性索引が作成され、データベース統計が生成されます。構文は次のとおりです。
bulkload connect="connect_string" load="TRUE"
エラーがある場合は画面上に表示されます。ロード時のエラーはすべて、ORACLE_INSTANCE
/diagnostics/logs/OID/tools
ディレクトリに報告されます。エラーはbulkload.log
およびSQL*Loaderで生成されたファイル*.bad
およびbsl_*.log
に記録されます。load
に失敗した場合は、データベースが一貫性のない状態になる可能性があります。この場合、bulkload
をrecover
オプションとともに使用するか、bulkload
を起動する前に取ったバックアップからOracle Internet Directoryディレクトリをリストアして、データベースをbulkload
操作前の状態に戻します。その後、次のコマンドを繰り返します。
bulkload connect="connect_string" load="TRUE"
索引付けフェーズ中にエラーが発生した場合は、次のコマンドを使用できます。
bulkload coonect="con_str" index=true
このコマンドにより、すべての索引が再作成されます。
データベース統計の生成中にエラーが発生した場合は、oidstats.sql
コマンドを使用して統計を生成できます。
関連項目: 『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のoidstats.sqlコマンドのリファレンス |
すでにデータが格納されているOracle Internet Directoryサーバーにエントリを追加し、同時にそのサーバーを稼働させておく場合、増分または追加モードを使用する必要があります。このモードは通常、ダイレクトリにエントリを追加する他の方法より高速です。ただし、Oracle Internet Directory LDAPインスタンスが読取り/更新モードであり、bulkloadでデータを追加できることを確認する必要があります。
次のようなコマンドにより、bulkload
を増分または追加モードで起動します。
bulkload connect="conn_str" \ check="TRUE" generate="TRUE" append="TRUE" file="LDIF_file" bulkload connect="conn_str" \ load="TRUE" append="TRUE"
bulkload
操作では、索引を更新または作成できます。しかし、bulkload
で索引を正しく更新あるいは作成できないことがあります。これは通常、不適切なサイズ設定などの問題が原因です。このような問題が発生した場合は、bulkload
を使用してすべての索引を検証し、再作成できます。
次の構文を使用して、索引の検証のためにbulkload
を起動します。
bulkload connect="conn_str" \ check="TRUE" index="TRUE"
bulkmodify
ツールは、既存のディレクトリ内にある多数のエントリの属性を変更する場合に役立ちます。このツールは、属性値に対して追加操作と置換操作を実行できます。ネーミング・コンテキストに対する操作もできます。フィルタを使用すれば、指定したネーミング・コンテキストの下のいくつかのエントリに対して選択的に操作を行うこともできます。
bulkmodify
ツールは、次の属性に対してはadd
またはreplace
操作を行えません。
dn
cn
userpassword
orclpassword
orclentrylevelaci
orclaci
orclcertificatehash
orclcertificatematch
すべてのバイナリ属性
objectclass
属性に対してはreplace
操作ができません。
単一値属性についてはadd
操作ができません。bulkmodify
の出力は、ORACLE_INSTANCE
/diagnostics/logs/OID/tools/bulkmodify.log
に記録されます。
関連項目: 『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のbulkmodify コマンドライン・ツールのリファレンス |
bulkmodify connect=connect_string basedn=Base_DN {[add="TRUE"|"FALSE"]|[replace="TRUE"|"FALSE"]} attribute=attribute_name value=attribute_value [filter=filter_string] [size=transaction_size] [threads=num_of_threads] [debug="TRUE"|"FALSE"] [encode=character_set] [verbose="TRUE"|"FALSE"]
プロセッサ数の1〜6倍のスレッド数が必要です。
add
またはreplace
オプションのいずれかを選択します。デフォルトでは、どちらもFALSE
に設定されています。
注意: bulkmodify を使用する前に、環境変数ORACLE_INSTANCE がOracleインスタンスのフルパス名に設定されていることを確認してください。 |
この例では、"c=us"
の下のすべてのエントリに説明を追加します。
bulkmodify connect="connect_str" baseDN="c=us" add="TRUE" \ attribute="description" value="US citizen" filter="objectclass=*"
この例では、Anne Smithがマネージャである"c=us"
の下のすべてのエントリにtelephonenumber
を追加します。
bulkmodify connect="connect_str" baseDN="c=us" add="TRUE" \ attribute="telephoneNumber" \ value="408-123-4567" filter="manager=cn=Anne Smith"
bulkdeleteツールは、既存のディレクトリ内にある多数のエントリの属性を削除する場合に役立ちます。bulkdeleteは、ネーミング・コンテキストの下で指定したエントリを削除できます。デフォルトでは、エントリを完全に削除します。データベースからエントリのすべての痕跡を削除します。オプションcleandb
FALSE
を使用すると、bulkdelete
はすべてのエントリを完全に削除するかわりに、ツームストン・エントリに変えます。
bulkdeleteの出力は、ORACLE_INSTANCE
/diagnostics/logs/OID/tools/bulkdelete.log
に記録されます。
関連項目: 『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のbulkdelete コマンドライン・ツールのリファレンス |
bulkdelete connect=connect_string {[basedn=Base_DN] | [file=file_name]} [cleandb="TRUE"|"FALSE"] [size=transaction_size] [encode=character_set] [debug="TRUE"|"FALSE"] [threads=num_of_threads] [verbose="TRUE"|"FALSE"]
basedn
またはfile
オプションのいずれかを選択します。cleandb
がTRUE
の場合、bulkdelete
はエントリをデータベースから完全に削除します。デフォルトでは、cleandb
はTRUE
に設定されています。CPU数の1〜6倍のスレッド数が必要です。
注意:
|
この例では、"c=us"
の下のすべてのエントリを削除します。
bulkdelete connect="connect_str" baseDN="c=us" cleandb="TRUE"
この例では、"c=us"
の下のすべてのエントリを削除し、それらをツームストン・エントリとして残します。
bulkdelete connect="connect_str" baseDN="c=us" cleandb=FALSE
ldifwrite
ツールは、Oracle Internet Directoryストアから1つのファイルにデータをダンプするために使用します。データを1ファイルにまとめると、レプリケーションまたはバックアップ・ストレージ用に別のノードへデータをロードすることが容易になります。出力ファイルへの書込みの際に、ldifwrite
ツールは、指定した識別名の下のすべてのエントリと識別名自体を含むサブツリーの検索を実行します。ツールはデータをLDIF形式でダンプします。指定したレプリケーション承諾識別名の下のエントリもダンプできます。
ldifwrite
ツールは、指定したフィルタを使用して検出したエントリをダンプできます。ldifwrite
の出力は、ORACLE_INSTANCE
/diagnostics/logs/OID/tools/ldifwrite.log
に記録されます。
関連項目: 『Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス』のldifwrite コマンドライン・ツールのリファレンス |
ldifwrite connect=connect_string basedn=Base_DN ldiffile=LDIF_Filename [filter=LDAP_Filter] [threads=num_of_threads] [debug="TRUE"|"FALSE"] [encode=character_set] [verbose="TRUE"|"FALSE"]
basedn
オプションを使用して、ベース識別名またはレプリケーション承諾識別名を指定します。
CPU数の1〜6倍のスレッド数が必要です。
注意: ldifwrite を使用する前に、環境変数ORACLE_INSTANCE がOracleインスタンスのフルパス名に設定されていることを確認してください。 |
この例では、部分レプリケーションで定義した次のネーミング・コンテキスト・オブジェクトを使用します。
dn: cn=includednamingcontext000001, cn=replication namecontext, orclagreementid=000001, orclreplicaid=node replica identifier, cn=replication configuration orclincludednamingcontexts: c=us orclexcludednamingcontexts: ou=Americas, c=us orclexcludedattributes: userpassword objectclass: top objectclass: orclreplnamectxconfig
この例では、c=us
の下のエントリは、ou=Americas,c=us
を除いてすべてバックアップが取られます。userpassword
属性も除外されます。コマンドは次のとおりです。
ldifwrite connect="conn_str" \ baseDN="cn=includednamingcontext000001, cn=replication namecontext, \ orclagreementid=000001,orclreplicaid=node replica identifier,\ cn=replication configuration" ldiffile="ldif_file_name"
catalog
ツールは、既存の属性の索引を作成する場合や、既存の属性から索引を削除する場合に役立ちます。catalogツールは、属性を検索可能にします。catalog
からの出力は、ORACLE_INSTANCE
/diagnostics/logs/OID/tools/catalog.log
に記録されます。
catalog connect=connect_string {[add="TRUE"|"FALSE"]|[delete="TRUE"|"FALSE"]} {[attribute=attribute_name]|[file=file_name]} [logging="TRUE"|"FALSE"] [threads=num_of_threads] [debug="TRUE"|"FALSE"] [verbose="TRUE"|"FALSE"]
add
またはdelete
オプションのいずれかを選択します。デフォルトでは、どちらもFALSE
に設定されています。
CPU数の1〜6倍のスレッド数が必要です。
logging
がTRUE
の場合、catalog
はREDOログを生成します。
コマンドラインでは、一度に1つしかattribute
引数を指定できません。1つのコマンドの起動で複数の属性を追加または削除するには、file
オプションを使用し、ファイル内の属性のリストを指定します。次のように、属性を1行ずつ指定します。
description sn title
注意: catalog を使用する前に、環境変数ORACLE_INSTANCE がOracleインスタンスのフルパス名に設定されていることを確認してください。 |
catalog connect="connect_str" delete="TRUE" attribute="title"
注意: Oracle Internet Directoryでインストールされたベース・スキーマによって作成された索引ではないことが確信できない場合は、catalog delete=T オプションを使用して属性から索引を削除しないように注意してください。ベース・スキーマ属性から索引を削除すると、Oracle Internet Directoryの操作に悪影響を及ぼす場合があります。 |