この章の項目は次のとおりです。
大量のデータを処理する場合は通常、バルク操作は標準的な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リファレンス』の |
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リファレンス』の |
この項の項目は次のとおりです。
タスク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リファレンス』の |
タスク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
モードで使用できます。このファイルは変更できません。
注意:
|
入力ファイルの生成後、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
(かわりにldapmoddn
を使用)
cn
(かわりにldapmodify
を使用)
userpassword
(かわりにldapmodify
を使用)
orclpassword
(かわりにldapmodify
を使用)
orclentrylevelaci
(かわりにldapmodify
を使用)
orclaci
(かわりにldapmodify
を使用)
orclcertificatehash
orclcertificatematch
すべてのバイナリ属性
すべての操作属性
objectclass
属性に対してはreplace
操作ができません。
単一値属性にadd
は使用できません。
bulkmodify
からの出力は、ORACLE_INSTANCE
/diagnostics/logs/OID/tools/bulkmodify.log
に記録されます。
関連項目: 『Oracle Fusion Middleware Oracle Identity Managementリファレンス』の |
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
に設定されています。
注意:
|
この例では、"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 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 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倍のスレッド数が必要です。
注意:
|
この例では、部分レプリケーションで定義した次のネーミング・コンテキスト・オブジェクトを使用します。
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
を使用して、索引を作成および削除できるようになりました。第21.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"] [iot="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でインストールされたベース・スキーマによって作成された索引ではないことが確信できない場合は、 |