2.2. Directory Server へのデータのインポート
コマンドラインや Web コンソールを使用して、LDIF ファイルから Directory Server のデータベースにデータをインポートすることができます。
データをインポートするには、インポートする LDIF ファイルを /var/lib/dirsrv/slapd-<instance_name>/ldif/ ディレクトリーに保存する必要があります。
2.2.1. サーバーの実行中にコマンドラインを使用したデータのインポート リンクのコピーリンクがクリップボードにコピーされました!
Directory Server インスタンスの実行中にデータをインポートするには、dsconf backend import コマンドを使用します。
インポート操作を開始すると、Directory Server はまずデータベースから既存のデータをすべて削除し、その後 LDIF ファイルからデータをインポートします。そのため、インポートに失敗した場合、サーバーはエントリーがないか、エントリーの部分的なセットを返します。
前提条件
-
LDIF ファイルのパーミッションでは、
dirsrvユーザーがファイルを読めるようになっている。 - インポートする LDIF ファイルには、ルート接尾辞のエントリーが含まれている。
- データのインポート先である接尾辞とそのデータベースがディレクトリー内に存在する。
- Directory Server インスタンスが実行している。
- インポートする LDIF ファイルの文字セットのエンコーディングは UTF-8 である。
手順
オプション: デフォルトでは、Directory Server は、インポートされたすべてのエントリーのエントリー更新シーケンス番号 (USN) を
0に設定します。別の初期 USN 値を設定するには、nsslapd-entryusn-import-initvalパラメーターを設定します。たとえば、インポートされたすべての値の USN を12345に設定するには、次のように入力します。# dsconf <instance_name> config replace nsslapd-entryusn-import-initval=12345インポートするファイルを
/var/lib/dirsrv/slapd-<instance_name>/ldif/にコピーした場合は、そのファイルの SELinux コンテキストをリセットします。# restorecon -Rv /var/lib/dirsrv/slapd-instance_name/ldif/example.ldifLDIF ファイルからデータをインポートするには、
dsconf backend importコマンドを使用します。たとえば、
/var/lib/dirsrv/slapd-<instance_name>/ldif/example.ldifファイルをuserRootデータベースにインポートするには、以下を実行します。# dsconf <instance_name> backend import userRoot /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif The import task has finished successfully-
インポート中の問題は、
/var/log/dirsrv/slapd-<instance_name>/errorsログを検索します。
検証
たとえば
dc=example,dc=comのように、インポートされた接尾辞の下にあるエントリーを検索します。# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" -s sub -x
2.2.2. サーバーのオフライン時にコマンドラインを使用したデータのインポート リンクのコピーリンクがクリップボードにコピーされました!
Directory Server インスタンスがオフラインの場合、dsctl ldif2db コマンドを使用してデータをインポートします。
インポート操作を開始すると、Directory Server はまずデータベースから既存のデータをすべて削除し、その後 LDIF ファイルからデータをインポートします。そのため、インポートに失敗した場合、サーバーはエントリーがないか、エントリーの部分的なセットを返します。
前提条件
-
LDIF ファイルのパーミッションでは、
dirsrvユーザーがファイルを読めるようになっている。 - インポートする LDIF ファイルには、ルート接尾辞のエントリーが含まれている。
- データのインポート先である接尾辞とそのデータベースがディレクトリー内に存在する。
- Directory Server インスタンスが実行していない。
- インポートする LDIF ファイルの文字セットのエンコーディングは UTF-8 である。
手順
オプション: デフォルトでは、Directory Server は、インポートされたすべてのエントリーのエントリー更新シーケンス番号 (USN) を
0に設定します。別の初期 USN 値を設定するには、nsslapd-entryusn-import-initvalパラメーターを設定します。たとえば、インポートされたすべての値の USN を12345に設定するには、次のように入力します。# dsconf <instance_name> config replace nsslapd-entryusn-import-initval=12345インポートするファイルを
/var/lib/dirsrv/slapd-<instance_name>/ldif/にコピーした場合は、そのファイルの SELinux コンテキストをリセットします。# restorecon -Rv /var/lib/dirsrv/slapd-instance_name/ldif/example.ldifLDIF ファイルからデータをインポートするには、
dsctl ldif2dbコマンドを使用します。たとえば、/var/lib/dirsrv/slapd-<instance_name>/ldif/example.ldifファイルをuserRootデータベースにインポートするには、以下を実行します。# dsctl <instance_name> ldif2db userRoot /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif OK group dirsrv exists OK user dirsrv exists [17/Jul/2021:13:42:42.015554231 +0200] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000 ... [17/Jul/2021:13:42:44.302630629 +0200] - INFO - import_main_offline - import userRoot: Import complete. Processed 160 entries in 2 seconds. (80.00 entries/sec) ldif2db successfulデータのインポートに使用できるすべての追加設定を表示するには、
dsctl ldif2db --helpコマンドの出力を参照してください。-
インポート中の問題は、
/var/log/dirsrv/slapd-<instance_name>/errorsログを検索します。 オプション: インスタンスを起動します。
# dsctl <instance_name> start
検証
たとえば
dc=example,dc=comのように、インポートされた接尾辞の下にあるエントリーを検索します。# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" -s sub -x
2.2.3. サーバーの実行中に Web コンソールを使用したデータのインポート リンクのコピーリンクがクリップボードにコピーされました!
Directory Server は、Web コンソールを使用したデータのインポートに対応しています。
インポート操作を開始すると、Directory Server はまずデータベースから既存のデータをすべて削除し、その後 LDIF ファイルからデータをインポートします。そのため、インポートに失敗した場合、サーバーはエントリーがないか、エントリーの部分的なセットを返します。
前提条件
-
LDIF ファイルのパーミッションでは、
dirsrvユーザーがファイルを読めるようになっている。 - インポートする LDIF ファイルには、ルート接尾辞のエントリーが含まれている。
- データのインポート先である接尾辞とそのデータベースがディレクトリー内に存在する。
-
LDIF ファイルが
/var/lib/dirsrv/slapd-<instance_name>/ldif/ディレクトリーに保存され、dirsrv_var_lib_tSELinux コンテキストが設定されている。 - Directory Server インスタンスが実行している。
- Web コンソールでインスタンスにログインしている。
- インポートする LDIF ファイルの文字セットのエンコーディングは UTF-8 である。
手順
- Web コンソールで メニューを開きます。
- 接尾辞エントリーを選択します。
- をクリックし、Initialize Suffix を選択します。
-
インポートしたい LDIF ファイルの横にある ボタンをクリックします。LDIF ファイルが
/var/lib/dirsrv/slapd-<instance_name>/ldif/以外のディレクトリーに保存されている場合は、ファイルのフルパスを入力して ボタンをクリックします。 - Yes, I am sure を選択し、 をクリックして確定します。
-
インポート中の問題についてログを確認するには、
メニューを開きます。
検証
たとえば
dc=example,dc=comのように、インポートされた接尾辞の下にあるエントリーを検索します。# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" -s sub -x