第1章 ディレクトリーサーバーへのデータのインポート

コマンドラインやウェブコンソールを使って、LDIF ファイルから Directory Server のデータベースにデータをインポートすることができます。

重要

データをインポートするには、インポートする LDIF ファイルを /var/lib/dirsrv/slapd-instance_name/ldif/ ディレクトリーに保存する必要があります。

1.1. サーバー稼働中にコマンドラインでデータを取り込む

Directory Server インスタンスの実行中にデータをインポートするには、dsconf backend import コマンドを使用します。

警告

インポート操作を開始すると、Directory Server はまずデータベースから既存のデータをすべて削除し、その後 LDIF ファイルからデータをインポートします。そのため、インポートに失敗した場合、サーバーはエントリーがないか、エントリーの部分的なセットを返します。

前提条件

  • LDIF ファイルのパーミッションでは、dirsrv ユーザーがファイルを読めるようになっている。
  • インポートする LDIF ファイルには、ルート接尾辞のエントリーが含まれている。
  • データをインポートしたい接尾辞とそのデータベースがディレクトリー内に存在する。
  • Directory Server インスタンスが実行している。
  • インポートする LDIF ファイルの文字セットのエンコーディングは UTF-8 である。

手順

  1. オプションです。デフォルトでは、Directory Server は、インポートされたすべてのエントリーのエントリー更新シーケンス番号 (USN) を 0 に設定します。別の初期 USN 値を設定するには、nsslapd-entryusn-import-initval パラメーターを設定します。例えば、インポートされたすべての値の USN を 12345 に設定するには、次のように入力します。

    # dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-entryusn-import-initval=12345
  2. インポートするファイルを /var/lib/dirsrv/slapd-instance_name/ldif/ にコピーした場合には、そのファイルの SELinux コンテキストをリセットします。

    # restorecon -Rv /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif
  3. LDIF ファイルからデータをインポートするには、dsconf backend import コマンドを使用します。

    たとえば、/var/lib/dirsrv/slapd-instance_name/ldif/example.ldif ファイルを userRoot データベースにインポートするには、以下を実行します。

    # dsconf -D "cn=Directory Manager" ldap://server.example.com backend import userRoot /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif
    The import task has finished successfully
  4. バックアップ中の問題について、/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