次のような方法で、データを Directory Server サフィックスにインポートできます。
LDIF ファイルからサフィックスを初期化します。この操作により、サフィックス内の現在のデータが削除され、LDIF ファイルの内容と置き換えられます。
ldapadd、 ldapmodify、または ldapdelete 操作をまとめて実行するには、LDIF ファイルを使用します。これにより、ディレクトリ内の任意のサフィックスについて、そのエントリをまとめて追加、変更、削除できます。
次の表は、サフィックスの初期化と、エントリの一括の追加、変更、削除の違いを示しています。
表 9–1 サフィックスの初期化とデータの一括インポートの比較
比較ドメイン |
サフィックスの初期化 |
エントリの一括の追加、変更、削除 |
---|---|---|
内容の上書き |
内容の 上書き |
内容を上書きしない |
LDAP 処理 |
追加のみ |
追加、変更、削除 |
性能 |
高速 |
低速 |
サーバーの障害への対応 |
不可 (障害が発生するとすべての変更内容は失われる) |
ベストエフォート (障害発生時までの変更内容はそのまま残る) |
LDIF ファイルの位置 |
クライアントまたはサーバーと同じマシン上 |
クライアントマシン上 |
設定情報のインポート (cn=config) |
設定情報をインポートする |
設定情報をインポートしない |
コマンド (Commands) |
サーバーがローカルにあり、停止している場合: dsadm import サーバーがリモートにあり、実行中の場合: dsconf import |
ldapmodify -B |
サフィックスを初期化すると、サフィックスに含まれている既存のデータが、追加するエントリだけを含む LDIF ファイルの内容によって上書きされます。
サフィックスを初期化するユーザーは、ディレクトリマネージャーまたは管理者としての認証を受けている必要があります。
サーバーが実行中の場合、ルートエントリを含む LDIF ファイルをインポートできるのは、ディレクトリマネージャーと管理者のみです。セキュリティー上の理由により、これらのユーザーのみが、たとえば dc=example,dc=com. のようなサフィックスのルートエントリへのアクセス権を持ちます。
レプリケーションアグリーメントに関連するサフィックスを復元する前に、「レプリケートされたサフィックスの復元」をお読みください。
インポートする LDIF ファイルでは、UTF-8 文字セットエンコードが使用されている必要があります。
サフィックスを初期化するときは、ルートエントリと、対応するサフィックスのすべてのディレクトリツリーノードが LDIF ファイルに含まれている必要があります。
このタスクは DSCC を使用して実行することができます。詳細については、「Directory Service Control Center のインタフェース」および DSCC オンラインヘルプを参照してください。
次のコマンドのいずれかを使用して、LDIF ファイルからサフィックスを初期化します。つまり、データベースの内容を LDIF ファイルにインポートします。
次のコマンドで、サフィックスのデータを上書きします。
サーバーがローカルにあり、停止している場合は、次のように入力します。
$ dsadm import instance-path LDIF-file suffix-DN |
次の例では、dsadm import コマンドを使用して、LDIF ファイルを 1 つのサフィックスにインポートします。
$ dsadm import /local/ds /local/file/example/demo1.ldif \ /local/file/example/demo2.ldif dc=example,dc=com |
サーバーがリモートにあり、実行中の場合は、次のように入力します。
$ dsconf import -h host -p port LDIF-file suffix-DN |
次の例では、dsconf import を使用して LDIF ファイルをインポートします。このコマンドを実行するために root 権限は必要ありませんが、ディレクトリマネージャーなどの root 権限を持つユーザーとして認証される必要があります。
$ dsconf import -h host1 -p 1389 /local/file/example/demo1.ldif \ ou=People,dc=example,dc=com |
dsconf import か dsconf reindex のいずれか、または複数のサフィックスで並行して両方のコマンドを実行すると、トランザクションログが大きくなり、パフォーマンスに悪影響を及ぼすことがあります。
これらのコマンドの詳細については、dsadm(1M) および dsconf(1M) のマニュアルページを参照してください。
ldapmodify 操作を実行すると、エントリをまとめて追加、変更、削除できます。エントリは、既存のエントリを変更または削除するための更新文を含む LDIF ファイルに指定されています。この操作では、すでに存在しているエントリは消去されません。
変更されたエントリは、Directory Server で管理されるサフィックスの対象となることがあります。エントリを追加するほかの処理と同様に、インポートされた新しいエントリすべてにインデックスが付けられます。
ldapmodify コマンドにより、LDAP によって LDIF ファイルがインポートされ、このファイルに含まれるすべての操作が実行されます。このコマンドを使用すると、すべてのディレクトリサフィックスのデータを同時に変更できます。
レプリケーションアグリーメントに関連するサフィックスを復元する前に、「レプリケートされたサフィックスの復元」を参照してください。
インポートする LDIF ファイルでは、UTF-8 文字セットエンコードが使用されている必要があります。
LDIF をインポートするときは、ディレクトリ内に親エントリが存在するか、ファイルから親エントリを最初にコピーする必要があります。
このタスクは DSCC を使用して実行することができます。詳細については、「Directory Service Control Center のインタフェース」および DSCC オンラインヘルプを参照してください。
LDIF ファイルからまとめて追加、変更、または削除します。
$ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - -B baseDN -f LDIF-file |
次の例では、ldapmodify コマンドを使用してインポートが実行されます。このコマンドを実行するために root 権限は必要ありませんが、cn=Directory Manager や cn=admin,cn=Administrators,cn=config などの root 権限を持つユーザーとして認証される必要があります。最後のパラメータは、インポートする LDIF ファイルの名前を指定するものです。
$ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - \ -B dc=example,dc=com -f /local/ds/ldif/demo.ldif |