Sun Java System Directory Server Enterprise Edition 6.3 管理指南

从 LDIF 文件导入数据

可以使用以下方法将数据导入到目录服务器后缀中:

下表显示了初始化后缀与批量添加、修改和删除条目之间的区别。

表 9–1 比较初始化后缀和批量导入数据

比较范围 

初始化后缀 

批量添加、修改和删除条目 

覆盖内容 

覆盖 

内容 

不覆盖内容 

LDAP 操作 

仅添加 

添加、修改和删除 

性能 

快 

较慢 

对服务器故障的响应 

响应能力极差(发生故障后会丢失所有更改) 

响应能力最强(将保留故障发生以前的所有更改) 

LDIF 文件位置 

客户端本地或服务器本地 

在客户机上 

导入配置信息 (cn=config)

导入配置信息 

不导入配置信息 

命令 

服务器为本地服务器并且已停止时: 

dsadm import

服务器为远程服务器并且正在运行时: 

dsconf import

ldapmodify -B

初始化后缀

初始化后缀会使用 LDIF 文件(仅包含用于添加的条目)的内容覆盖后缀中的现有数据。

要初始化后缀,您必须以目录管理员或管理者身份通过验证。

服务器正在运行时,只有目录管理员和管理者才能导入包含根条目的 LDIF 文件。出于安全考虑,只有这些用户才能访问后缀的根条目,例如 dc=example,dc=com.

在恢复复制协议中所涉及的后缀之前,请先阅读恢复复制的后缀

Procedure初始化后缀


注 –

您所导入的所有 LDIF 文件都必须使用 UTF-8 字符集编码。

在初始化后缀时,LDIF 文件必须包含相应后缀的根条目和所有目录树节点。


可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 使用以下任一命令从 LDIF 文件初始化后缀,也就是说,将数据库内容导入 LDIF 文件。


    注意 – 注意 –

    这些命令将覆盖后缀中的数据。


    • 如果您的服务器是本地服务器并且已停止,请键入:


      $ dsadm import instance-path LDIF-file suffix-DN
      

      以下示例使用 dsadm import 命令将两个 LDIF 文件导入一个后缀。


      $ 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 文件。运行此命令不需要超级用户权限,但您必须以具有超级用户权限的用户身份(如目录管理员)通过验证。


      $ 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 文件指定的,该文件包含用于修改或删除现有条目的更新语句。此操作不会删除已经存在的条目。

目录服务器所管理的任何后缀都有可能成为更改条目的目标。与添加条目的任何其他操作一样,服务器在导入新条目时会为所有新条目编制索引。

ldapmodify 命令通过 LDAP 导入 LDIF 文件,并执行该文件中包含的所有操作。使用此命令,可以同时修改所有目录后缀中的数据。

在恢复复制协议中所涉及的后缀之前,请参见恢复复制的后缀

Procedure批量添加、修改和删除条目


注 –

您所导入的所有 LDIF 文件都必须使用 UTF-8 字符集编码。

导入 LDIF 文件时,目录中必须存在父条目,或者必须先从该文件中添加父条目。


可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 从 LDIF 文件批量添加、修改或删除。


    $ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - -B baseDN -f LDIF-file
    

    以下示例使用 ldapmodify 命令执行导入。运行此命令不需要超级用户权限,但您必须以具有超级用户权限的用户身份(如 cn=Directory Managercn=admin,cn=Administrators,cn=config)通过验证。最后一个参数指定要导入的 LDIF 文件的名称。


    $ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - \
     -B dc=example,dc=com -f /local/ds/ldif/demo.ldif