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

从 LDIF 进行副本初始化

Procedure从 LDIF 初始化复制后缀

此过程介绍从 LDIF 文件初始化复制后缀时所使用的一般步骤。

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

使用 DSCC 以联机方式对复制后缀进行初始化是初始化或重新初始化使用方的简便方法。但是,如果要初始化大量条目,则此过程可能会非常耗时。在这种情况下,使用命令行以脱机方式初始化使用方可能会更加有效。

  1. 确保已设置了复制协议。

    必须在初始化副本之前执行此操作。

  2. 将主服务器复制后缀中的后缀数据的原始副本导出到 LDIF 文件。

    请参见将复制后缀导出到 LDIF

    在多主复制环境中,可以使用从原始主服务器导出的 LDIF 文件来初始化其他主服务器和所有使用方。在级联复制环境中,可以使用相同的文件来初始化集线器副本及其使用方。

    在任何情况下,都必须以 LDIF 文件(从已配置的主副本中导出)开始。无法使用任意的 LDIF 文件初始化所有副本,因为它不包含复制元数据。

  3. 如果要初始化部分副本,请过滤此文件以便只保留复制的属性,然后将该文件传送到所有使用方服务器。

    请参见为部分复制过滤 LDIF 文件

  4. 初始化副本。

    执行以下任一操作:

    • 要在已脱机(停止)的服务器上进行快速初始化,请使用 dsadm import 命令。


      $ dsadm import instance-path LDIF_file suffix-DN
      
    • 要从 LDIF 文件以联机方式初始化副本,请使用 dsconf import 命令。


      $ dsconf import -h host -p port LDIF_file suffix-DN
      

      使用 dsconf import 比使用 dsadm import 要慢,但不必在执行导入操作时停止服务器。

    有关初始化后缀的更多详细信息以及示例,请参见初始化后缀。有关命令用法的详细信息,请参见 dsadm(1M)dsconf(1M)

  5. (可选的)针对每个协议检查后缀是否已初始化。


    $ dsconf show-repl-agmt-status -h host -p port suffix-DN destination-host:destination-port 
    

Procedure将复制后缀导出到 LDIF

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

  1. 使用以下任一命令导出 LDIF 文件中的复制后缀内容:

    • 要以脱机方式导出,请键入:


      $ dsadm export instance-path suffix-DN LDIF_file
      
    • 要以联机方式导出,请键入:


      $ dsconf export -h host -p port suffix-DN LDIF_file
      

    以下示例将整个 dc=example,dc=com 复制后缀及复制信息导出到 example_replica_export.ldif 文件中:


    $ dsconf export -h host2 -p 1389 dc=example,dc=com  \
     /local/ds/ldif/example_export_replica.ldif

    有关详细信息,请参见备份到 LDIF 以及 dsadm(1M)dsconf(1M) 手册页。

为部分复制过滤 LDIF 文件

使用 DSCC 时,对配置了部分复制的副本进行初始化的过程是不可视的。在初始化期间只会将选定属性发送给使用方。

如果已经配置了部分复制,应该在将导出的 LDIF 文件复制到使用方服务器之前过滤出所有未使用的属性。为此,目录服务器提供了 fildif 工具。此工具将过滤给定的 LDIF 文件,以便只保留复制协议中定义的属性集所允许的属性。

此工具将读取服务器配置以确定属性集定义。要读取配置文件,必须以超级用户身份或拥有此过程和文件(由 nsslapd-localuser 属性指定)的用户身份运行 fildif 工具。例如,以下命令将过滤前面示例中从 dc=example,dc=com 后缀导出的文件:


$ fildif -i /local/ds1/ldif/example_master.ldif \
 -o /local/ds1/ldif/filtered.ldif -b "cn=host2.example.com:1389, \
 cn=replica,cn=\\"dc=example,dc=com\\",cn=mapping tree,cn=config" -p /local/ds1

有关 fildif 命令的位置,请参见命令位置

-i-o 选项分别是输入和输出文件。-b 选项是定义部分复制的复制协议的 DN。可使用以下命令查找此 DN:


$ ldapsearch -h host -p port -D cn=admin,cn=Administrators,cn=config -w - \
 -b "cn=config" "(&(objectclass=nsds5replicationagreement) (nsDS5ReplicaPort=replica-port) \
 (nsDS5ReplicaHost=replica-host))" dn

例如:


$ ldapsearch -h host2 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - \
 -b "cn=config" "(&(objectclass=nsds5replicationagreement) \
 (nsDS5ReplicaPort=2090)(nsDS5ReplicaHost=host2))" dn
Enter bind password:
version: 1
dn: cn=host2:1389,cn=replica,cn=dc\=example\,dc\=com,cn=mapping tree,cn=config

有关 fildif 工具的完整命令行语法,请参见 fildif(1) 手册页。

接下来,可以使用由 fildif 生成的 filtered.ldif 文件初始化此复制协议中的使用方。将此文件传送到使用方服务器并进行导入,如从 LDIF 文件导入数据所述。