この章の項目は次のとおりです。
大量のデータを処理する場合は通常、バルク操作は標準的な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"
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"
Oracle Internet Directory 11g リリース1(11.1.1.6.0)では、新規インストールで新しい自動カタログ機能がデフォルトで有効になります。以前のリリースからアップグレードした場合も、これを有効にできます。この機能を有効にすると、属性を検索したときに、Oracle Internet Directoryで自動的にcatalogコマンドが起動され、属性が索引付けされます。自動カタログ機能を有効化しないで、カタログ化されていない以前の属性を検索フィルタで使用する場合は、以前のリリースと同様に、その属性をカタログ・エントリに追加する必要があります。
ldapmodifyを使用して、索引を作成および削除できるようになりました。第20.3.7項「ldapmodifyを使用した属性の索引付け」を参照してください。ldapmodifyコマンドによりcatalogが起動し、操作が実行されます。この目的のために引き続きcatalogを使用できます。
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 connect="connect_str" delete="TRUE" attribute="title"
|
注意: Oracle Internet Directoryでインストールされたベース・スキーマによって作成された索引ではないことが確信できない場合は、catalog delete=Tオプションを使用して属性から索引を削除しないように注意してください。ベース・スキーマ属性から索引を削除すると、Oracle Internet Directoryの操作に悪影響を及ぼす場合があります。 |