Sun ONE logo     上一章     目录     索引     文档主页     下一章    
Sun ONE Directory Server 管理指南



第 4 章   填充目录内容

目录服务器管理的数据经常进行批量导入。Directory Server 提供导入和导出全部后缀的工具。它还提供用于一次备份所有后缀和从备份恢复所有数据的工具。

本章介绍填充目录的以下过程:

设置后缀只读模式

在 Directory Server 上执行特定的导出或备份操作前,可在任何给定后缀上启用只读模式,以确保在给定时间拥有其内容状态的可靠图像。另外,在执行导入或还原操作前,必须确保受操作影响的后缀并非处于只读模式。

在执行导出或备份操作前,Directory Server 控制台和命令行公用程序不会自动将目录置于只读模式,因为这样会使目录无法更新。但是,如果拥有多主配置,则可在服务器上启用只读模式,并且数据将在其他主副本上保持可写状态。

要将后缀设为只读,请执行“设置访问权限和引荐”中所述的步骤。换句话说,可使整个 Directory Server 不可写入,如“设置全局只读模式”中所述。

导入数据

Sun ONE Directory Server 提供了两种导入数据的方法:

  • 导入 LDIF 文件允许批量添加、修改和删除任何目录后缀中的条目。
  • 初始化 LDIF 文件中的后缀,会删除该后缀中的当前数据,并替换成 LDIF 文件的内容。

这两种方法都可以通过 Directory Server 控制台和使用命令行公用程序实施。



注意

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

导入 LDIF 时,父条目必须存在于目录中或首先从文件添加。初始化后缀时,LDIF 文件必须包含根条目和相应后缀的所有目录树节点。



下表显示了导入和初始化之间的差异:

表 4-1    导入数据与初始化后缀的比较

比较的域

导入数据

初始化后缀

覆盖内容

LDAP 操作

添加、修改、删除

只添加

性能

较慢

快速

响应于服务器故障

最佳努力(保留该故障点的所有更改)

全部毁坏(发生故障后,丢失所有更改)

LDIF 文件位置

在控制台计算机上。

本地到控制台或本地到服务器

导入配置信息 (cn=config)

导入 LDIF 文件

执行导入操作时,Directory Server 控制台执行 ldapmodify 操作以向目录中添加新条目。条目在 LDIF 文件中指定,可能也包含更新语句以修改或删除现有条目,作为导入操作的一部分。

导入条目的目标,可以是 Directory Server 管理的任何后缀以及在配置中定义的任何已链接的后缀或已链接的子后缀。如同添加条目的任何其他操作一样,服务器将在导入条目时对所有新的条目编制索引。

使用控制台导入 LDIF

必须以目录管理员或管理员的身份登录执行导入操作:

  1. 在 Directory Server 控制台的顶级“任务”标签上,滚动到标签的底部,然后单击“从 LDIF 导入”旁边的按钮。
  2. 显示“导入 LDIF”对话框。

  3. 在“导入 LDIF”对话框的“LDIF 文件”字段中,输入要导入的 LDIF 文件的完整路径,或单击“浏览”以选择本地文件系统中的文件。
  4. 如果正在访问远程计算机上的目录,该字段名会显示为“LDIF 文件(在控制台计算机上)”。此标签提示您正在浏览的是本地文件系统,而不是远程目录服务器计算机上的文件系统。

  5. 按照要求设置下列选项:
    1. “仅添加”- LDIF 文件除了包含默认的添加指令外,还可能包含修改和删除指令。如果希望控制台仅执行添加指令而忽略 LDIF 文件中的所有其他指令,请选中此复选框。
    2. “出错时继续”- 如果希望控制台即使在出现错误时也能继续导出,请选中此复选框。例如,如果正在导入的 LDIF 文件包含后缀中已有的条目,则可使用此选项。控制台会记录此类错误,如执行导入操作时拒绝文件中现有的条目。
    3. 如果未选中此复选框,则在遇到第一个错误后导入操作将停止。LDIF 文件中之前的所有条目都已经成功导入,并将保留在目录中。

  6. 在“拒绝的文件”字段中,输入要控制台记录所有无法导入条目的文件的完整路径,或单击“浏览”以选择本地文件系统中的文件。
  7. 例如,服务器无法导入目录中已经存在的条目或者没有父对象的条目。控制台将在拒绝文件中写入服务器发送的错误消息。

    如果保留该字段为空,则服务器将不记录被拒绝的条目。

  8. 单击“确定”开始执行导入操作。
  9. Directory Server 控制台显示一个对话框,对话框中包含操作的状态和所有发生的错误的文本。如果“拒绝的文件”不为空,则所有错误消息也将写入到已命名的文件中。

从命令行导入 LDIF

ldif2ldap 命令(Solaris 软件包中为 directoryserver ldif2ldap)将通过 LDAP 导入 LDIF 文件并执行其包含的所有操作。使用此脚本将数据同时导入所有目录后缀。为了使用 ldif2ldap 导入,服务器必须正在运行。

该命令的完整路径为:

Solaris 软件包

# /usr/sbin/directoryserver ldif2ldap

其他安装

# ServerRoot/slapd-serverID/ldif2ldap

以下示例使用 ldif2ldap 命令执行导入。不需要 root 特权运行命令,但必须在命令行赋予目录管理员凭证。最后一个参数是一个或多个要导入的 LDIF 文件的名称。

UNIX shell 脚本:

# use directoryserver ldif2ldap on Solaris Packages installations
/var/Sun/mps/slapd-example/ldif2ldap \
  "cn=Directory Manager" 口令 \
  /var/Sun/mps/slapd-example//ldif/demo.ldif

Windows 批处理文件:

C:\Program Files\Sun\MPS\slapd-example\ldif2ldap.bat
  "cn=Directory Manager" 口令
  C:\Program Files\Sun\MPS\slapd-example\ldif\demo.ldif

有关使用此脚本的详细信息,请参阅 Sun ONE Directory Server 参考手册 第 2 章中的ldif2ldap”。

初始化后缀

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



警告

从 LDIF 文件初始化后缀时,注意不要覆盖 o=NetscapeRoot 后缀,除非正在还原数据。否则,将删除要求重新安装所有 Sun ONE 服务器的信息。



为初始化后缀,必须被验证为目录管理员或管理员。出于安全考虑,只有目录管理员和管理员具有访问后缀根条目的权限,例如 dc=example,dc=com。所以,只有这些身份可以导入包含根条目的 LDIF 文件。

从控制台初始化后缀

  1. 在 Directory Server 控制台的顶级“配置”标签上,展开“数据”节点,显示要初始化的后缀。
  2. 右键单击后缀节点,从弹出菜单中选择“初始化”。或者,可以选择后缀节点,然后从“对象”菜单中选择“初始化”。
  3. 显示“初始化后缀”对话框。

  4. 在“LDIF 文件”字段中,输入要用于初始化的 LDIF 文件的完整路径,或单击“浏览”在计算机上找到该文件。
  5. 如果操作的是导入文件的本地计算机的控制台,则可跳到第 6 步。如果操作的是包含 LDIF 文件服务器的远程计算机的控制台,则选择下列选项之一:
  6. 从本地计算机。表明 LDIF 文件位于本地计算机上。

    从服务器计算机。表明 LDIF 文件位于远程服务器上。默认情况下,控制台在以下目录中查找该文件:

    ServerRoot/slapd-serverID/ldif

  7. 单击“确定”。


  8. 警告

    该脚本会覆盖后缀中的数据。



  9. 确定您要覆盖后缀中的数据。
  10. 将继续进行后缀初始化,同时在对话框中报告所有错误。

使用 ldif2db 命令初始化后缀

ldif2db 命令(Solaris 软件包中为 directoryserver ldif2db)初始化后缀并覆盖现有的数据。脚本要求您在继续进行导入操作前关闭服务器。

默认情况下,先保存该脚本,然后将任何现有的 o=NetscapeRoot 配置信息和所导入文件中的 o=NetscapeRoot 配置信息合并。



警告

该脚本覆盖后缀中的数据。



要在导入 LDIF 的同时停止服务器,请执行以下操作:

  1. 从命令行以 root 身份使用以下命令停止服务器:

    Solaris 软件包

    # /usr/sbin/directoryserver stop

    其他安装

    # ServerRoot/slapd-serverID/stop-slapd

  2. 运行位于以下位置的命令:

    Solaris 软件包

    # /usr/sbin/directoryserver ldif2db

    其他安装

    # ServerRoot/slapd-serverID/ldif2db

  3. 使用适当的命令启动服务器:

    Solaris 软件包

    # /usr/sbin/directoryserver start

    其他安装

    # ServerRoot/slapd-serverID/start-slapd

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

UNIX shell 脚本:

# use directoryserver ldif2db on Solaris Packages installations
/var/Sun/mps/slapd-example/ldif2db -n Database1 \
 -i /var/Sun/mps/slapd-example/ldif/demo.ldif \
 -i /var/Sun/mps/slapd-example/ldif/demo2.ldif

Windows 批处理文件:

C:\Program Files\Sun\MPS\slapd-example\ldif2db.bat -n Database1
  -i C:\Program Files\Sun\MPS\slapd-example\ldif\demo.ldif
  -i C:\Program Files\Sun\MPS\slapd-example\ldif\demo2.ldif

表 4-2    示例中使用的 ldif2db 选项的说明

选项

说明

-n

指定导入数据的数据库名称。

警告:如果在 -n 选项中指定数据库不与 LDIF 文件中包含的后缀相对应,则该数据库中包含的所有数据都将被删除,并且导入失败。确保数据库的名称没有拼错。

-i

指定要导入的 LDIF 文件的完整路径名称。该选项是必需的。可以使用多个 -i 参数一次导入多个 LDIF 文件。导入多个文件时,服务器按从命令行指定的顺序导入 LDIF 文件。

有关使用该命令的详细信息,请参阅 Sun ONE Directory Server 参考手册 第 2 章中的“ldif2db”

使用 ldif2db.pl Perl 脚本初始化后缀

ldif2db 命令一样, ldif2db.pl 脚本(Solaris 软件包中为 directoryserver ldif2db-task)覆盖指定后缀中的数据。该脚本要求服务器正在运行,以执行导入。



警告

该脚本覆盖后缀中的数据。



此脚本的命令依平台而定:

Solaris 软件包

# /usr/sbin/directoryserver ldif2db-task

Windows 平台

cd ServerRoot
bin\slapd\admin\bin\perl slapd-serverID\ldif2db.pl

其他安装

# ServerRoot/slapd-serverID/ldif2db.pl

以下示例使用 ldif2db.pl 脚本导入 LDIF 文件。运行该脚本无需 root 特权,但必须进行目录管理员身份的验证。

UNIX shell 脚本:

# use directoryserver ldif2db-task on Solaris Packages installations
/var/Sun/mps/slapd-example/ldif2db.pl \
  -D "cn=Directory Manager" -w 口令 -n Database1 \
  -i /var/Sun/mps/slapd-example/ldif/demo.ldif

Windows 批处理文件:

C:\Program Files\Sun\MPS\bin\slapd\admin\bin\perl.exe
  
C:\Program Files\Sun\MPS\slapd-example\ldif2db.pl
    -
D "cn=Directory Manager" -w 口令 -n Database1
    -
i C:\Program Files\Sun\MPS\slapd-example\ldif\demo.ldif

下表说明本示例中使用的 ldif2db.pl 选项:

表 4-3    示例中使用的 ldif2db.pl 选项的说明

选项

说明

-D

指定目录管理员的 DN。

-w

指定目录管理员的口令。

-n

指定导入数据的数据库名称。

-i

指定要导入的 LDIF 文件的完整路径名称。该选项是必需的。可以使用多个 -i 参数一次导入多个 LDIF 文件。导入多个文件时,服务器按从命令行指定的顺序导入 LDIF 文件。

有关使用该 perl 脚本的详细信息,请参阅 Sun ONE Directory Server 参考手册 第 2 章中的“ldif2db.pl”

导出数据

可以使用纯文本 LDAP 数据交换格式 (LDIF) 导出目录的内容。LDIF 是条目、属性以及其值的文本表示。LDIF 是一种标准格式,在 RFC 2849 (http://www.ietf.org/rfc/rfc2849.txt) 中对其进行了说明。

导出数据可以有下列用途:

  • 备份服务器中的数据。
  • 将数据复制到另一个目录服务器。
  • 将数据导出到另一个应用程序。
  • 更改目录拓扑结构后,重新填充后缀。

导出操作不会导出配置信息 (cn=config)。



警告

在执行导出操作期间,请不要停止服务器。



使用控制台将整个目录导出到 LDIF

可以将部分或所有目录数据导出到 LDIF,具体情况要视最终导出的文件位置而定。如果 LDIF 文件在服务器上,则可以仅导出服务器上本地后缀中包含的数据。如果 LDIF 文件不在服务器上,则可以导出所有的后缀和链接的后缀。

要在服务器运行的情况下从 Directory Server 控制台导出目录数据,请执行以下操作:

  1. 在 Directory Server 控制台的顶级“任务”标签上,滚动到标签的底部,然后单击“导出到 LDIF”旁边的按钮。
  2. 显示“导出”对话框。

  3. 在“LDIF 文件”字段中输入 LDIF 文件的完整路径和文件名,或单击“浏览”查找该文件。
  4. 如果在远程服务器上使用控制台,则不能使用“浏览”。未启用“浏览”按钮时,默认情况下,该文件存储在下列目录中:

    ServerRoot/slapd-serverID/ldif

  5. 如果在服务器的远程计算机上运行控制台,则在 LDIF 文件字段下显示两个单选按钮。选择“到本地计算机”,表明您正在导出到运行控制台的计算机上的 LDIF 文件中。选择“到服务器计算机”,表明您正在导出到位于服务器计算机上的 LDIF 文件。
  6. 如果要导出整个目录,请选择“所有后缀”单选按钮。
  7. 如果只想导出目录的一个子树,请选择“子树”单选按钮,然后在文本框中输入子树基准上的 DN。

    还可以单击“浏览”选择子树。

  8. 单击“确定”将目录内容导出到文件。

使用控制台将单一后缀导出到 LDIF

要在服务器运行的情况下将一个后缀从 Directory Server 控制台导出到 LDIF,请执行以下操作:

  1. 在 Directory Server 控制台的顶级“配置”标签上,展开“数据”节点,显示要导出的后缀。
  2. 右键单击后缀节点,从弹出菜单中选择“导出”。或者,可以选择后缀节点,然后从“对象”菜单中选择“导出”。
  3. 显示“导出后缀”对话框。

  4. 在“LDIF 文件”字段中,输入该 LDIF 文件的完整路径,或单击“浏览”以在计算机上找到它。
  5. 未启用“浏览”按钮时,默认情况下,该文件存储在下列目录中:

    ServerRoot/slapd-serverID/ldif

  6. 如果复制了后缀,您可以选中复选框以“导出复制信息”。仅当使用导出的 LDIF 初始化该后缀的其他副本时,才需要使用该功能。
  7. 如果对此后缀启用了属性加密,则可以选中该复选框对属性进行“解密”。为此,必须提供保护服务器证书数据库的口令。选择该选项,输入口令或输入包含口令的文件名称。如果无法提供口令对属性值进行解密,则 LDIF 输出中将显示加密的值。
  8. 单击“确定”将后缀的内容导出到文件。

从命令行导出到 LDIF

可以使用 db2ldif 命令(Solaris 软件包中为 directoryserver db2ldif)将任意后缀或目录的子树导出到 LDIF。当服务器运行或停止时,该脚本将所有的后缀内容或部分内容导出到 LDIF 文件。

要将数据库的内容导出到 LDIF 文件中,请使用下列命令:

Solaris 软件包

# /usr/sbin/directoryserver db2ldif

其他安装

# ServerRoot/slapd-serverID/db2ldif

以下示例将两个后缀导出到一个 LDIF 文件中:

db2ldif -a output.ldif \
        -s "dc=example,dc=com" -s "o=NetscapeRoot"

下表介绍本示例中使用的 db2ldif 选项:

表 4-4    本示例中使用的 db2ldif 选项的说明

选项

说明

-a

定义输出文件的名称,服务器将导出的 LDIF 保存到该文件中。默认情况下,该文件存储在 ServerRoot/slapd-serverID 目录下。

-s

指定要包括在导出中的后缀或子树。可以使用多个 -s 参数指定多个后缀或子树。

db2ldif 命令可同时与 -r 选项一起使用,以将复制的后缀导出到 LDIF 文件中。结果 LDIF 将包含复制机制使用的属性子类型。然后可以将该 LDIF 文件导入到使用者服务器中,以初始化使用者副本,如“初始化副本”中所述。

db2ldif 命令与 -r  选项一起使用时,不可运行服务器。必须先停止服务器,然后再启动它,或者将 db2ldif.pl 脚本与 -r 选项一起使用,该选项不需要停止服务器。

有关使用该脚本的详细信息,请参阅 Sun ONE Directory Server 参考手册 第 2 章中的“db2lidf”

备份数据

备份数据会保存内容或目录的快照,以备将来数据库文件损坏或被删除时使用。可以使用 Directory Server 控制台或命令行脚本备份后缀。



警告

在执行备份操作期间,切勿停止服务器。



默认情况下,此处说明的所有备份步骤都将把服务器文件的副本存储在同一主机上。然后,您应该将备份复制并存储到其他计算机或文件系统上,以保证更好的安全性。



注意

无法使用这些备份方法备份远程服务器上的链接后缀。必须独立地备份单独的服务器。



使用控制台备份服务器

从 Directory Server 控制台备份服务器时,服务器将所有的数据库内容及相关的索引文件复制到备份位置。可以在运行服务器的同时执行备份操作。

要从 Server Console 备份服务器,请执行以下操作:

  1. 在 Directory Server 控制台的顶级“任务”标签上,单击“备份 Directory Server”旁边的按钮。
  2. 显示“备份目录”对话框。

  3. 在“目录”文本框中,输入要存储备份的目录的完整路径。如果在目录所在的计算机上运行控制台,请单击“浏览”查找本地目录。
  4. 或单击“使用默认目录”在以下目录中存储备份:

    ServerRoot/slapd-serverID/bak/YYYY_MM_DD_hh_mm_ss

    其中,serverID 是目录服务器的名称,同时还将生成目录名称以包含备份的创建日期和时间。

  5. 单击“确定”,创建该备份。

从命令行备份服务器

可以使用 db2bak 命令(Solaris 软件包中为 directoryserver db2bak)从命令行备份服务器。不管服务器是否正在运行,该脚本都可以起作用。

不能使用该备份方法备份配置信息。有关备份配置信息的详细信息,请参阅“备份 dse.ldif 配置文件”

要备份目录,请使用以下命令:

Solaris 软件包

# /usr/sbin/directoryserver db2bak backupDir

其他安装

# ServerRoot/slapd-serverID/db2bak backupDir

backupDir 参数指定应在其中存储备份的目录。默认备份目录名称从当前日期生成:YYYY_MM_DD_hh_mm_ss。有关使用该脚本的详细信息,请参阅 Sun ONE Directory Server 参考手册 第 2 章中的“db2bak”

备份 dse.ldif 配置文件

Directory Server 自动备份 dse.ldif 配置文件。启动 Directory Server 时,它会自动在以下目录中名为 dse.ldif.startOK 的文件中,创建 dse.ldif 文件的备份:

ServerRoot/slapd-serverID/config

如果您对 cn=config 分支进行修改,则服务器在将修改写入到 dse.ldif 文件之前,会首先将文件备份到 config 目录中的名为 dse.ldif.bak 的文件中。如果需要保存配置,请创建这些文件之一的副本。

从备份还原数据

以下步骤说明如何使用 Directory Server 控制台或命令行还原目录中的后缀。服务器必须已经使用“备份数据”中所述的步骤进行了备份。在还原复制参数中涉及的后缀之前,请阅读“还原已复制的后缀”



警告

在执行备份或还原操作期间,不要停止服务器。

还原服务器会覆盖任何现有的数据库文件,并会丢失备份后对数据所做的任何修改。



还原已复制的后缀

还原在供应商服务器和使用者服务器之间复制的后缀之前,需要特殊的考虑。如果可能,您应该通过复制机制更新后缀,而不是从备份进行还原。该小节说明如何和何时还原副本,以及在操作后如何确保其与其他副本同步。有关使用备份和还原初始化副本的进一步信息,请参阅“初始化副本”

在单个主方案中还原供应商

后缀,即单主供应商,包含整个复制拓扑的授权数据。因此,还原该后缀等于重新初始化整个拓扑中的所有数据。只有要重新初始化要还原的备份内容的所有数据时,才需要还原单主副本。

如果单主数据由于错误而无法恢复,则可以考虑使用使用者副本之一上的数据,因为它可能包含比备份更新的更新内容。在这种情况下,则需要将数据从使用者副本导出到 LDIF 文件,并从 LDIF 文件重新初始化主副本。

无论是在主副本上还原备份还是导入 LDIF 文件,接下来都必须重新初始化从该副本接收更新的所有集线器副本和使用者副本。供应商服务器的日志会记录一条消息,提示您需要对使用者副本重新初始化。

在多主方案中还原供应商

在多主复制中,其他主副本每个都包含复制数据的授权副本。不能用当前的副本内容还原可能已过时的旧备份。如有可能,应允许复制机制从其他主副本的内容更新该主副本。

如果不可能,则只应当以下列方式中的一种还原多主副本:

  • 最简单的方式不是还原备份,而是从其他主副本中的一个重新初始化计划的主副本。这样可以确保将最新的数据发送到计划主副本中,并准备好供复制的数据。请参阅“使用控制台初始化副本”“从命令行初始化副本”
  • 对于具有数百万个条目的副本,更快的方法是使用新的二进制复制功能还原较近的、从其他主副本中获取的备份。请参阅“使用二进制复制初始化副本”
  • 如果主副本的备份不比任何其他主副本上的更改日志内容的最早日期更早,则该备份可用来还原此主副本。有关更改日志存留期的说明,请参阅“高级多主复制配置”。还原旧备份时,其他主副本将使用其更改日志更新该主副本,更新内容包括备份保存以来已经处理的所有修改。

不管采用何种方式还原或重新初始化,主副本初始化后都将保持只读模式。该行为允许该副本与其他主副本同步,此后,可允许执行写操作,如“多主副本初始化后会聚”中所述。

允许在还原或重新初始化主副本上执行写操作之前,允许会聚所有副本的优点是,不需要重新初始化集线器或使用者服务器。

还原集线器副本

本节只适用于复制机制不能自动更新集线器副本的情况。例如,如果数据库文件毁坏或复制中断的时间很长。在这样的情况下,将需要以以下方式之一还原或重新初始化集线器副本:

  • 最简单的方式不是还原备份,而是从主副本中的一个重新初始化集线器。这样可以确保将最新的数据发送到集线器,并准备好供复制的数据。请参阅“使用控制台初始化副本”“从命令行初始化副本”
  • 对于具有数百万个条目的副本,更快的方法是使用新的二进制复制功能还原较近的、从另一个集线器副本中获取的备份。请参阅“使用二进制复制初始化副本”。如果没有要复制的其他集线器副本,则必须如前一段落中所述的那样重新初始化集线器,或者按下一段落中所述的那样进行还原(如果可能)。
  • 如果集线器的备份不比任何供应商副本(集线器副本或主副本)上的更改日志内容的最早日期早,则该备份可用来还原此集线器。有关更改日志存留期的说明,请参阅“高级多主复制配置”。还原旧备份时,它的供应商副本将使用其更改日志更新该集线器,更新内容包括备份保存以来已经处理的所有修改。


  • 注意

    不管还原或重新初始化集线器副本的方式如何,随后都必须重新初始化该集线器的所有使用者,包括任何其他级别的集线器。



还原专门的客户

本节只适用于复制机制不能自动更新专门的使用者副本的情况。例如,数据库文件毁坏或复制中断的时间很长的情况。在这样的情况下,将需要以以下方式之一还原或重新初始化使用者副本:

  • 最简单的方式不是还原备份,而是从其供应商副本(主副本或集线器副本)中的一个重新初始化使用者。这样可以确保将最新的数据发送到使用者,并准备好供复制的数据。请参阅“使用控制台初始化副本”“从命令行初始化副本”
  • 对于具有数百万个条目的副本,更快的方法是使用新的二进制复制功能还原较近的、从另一个使用者副本中获取的备份。请参阅“使用二进制复制初始化副本”。如果没有要复制的其他使用者,则必须如前一段落所述的那样重新初始化副本,或按下一段落所述的那样进行还原(如果可能)。
  • 如果使用者的备份不比任何供应商副本(集线器副本或主副本)上的更改日志内容的最早日期更早,则该备份可用来还原使用者。有关更改日志存留期的说明,请参阅“高级多主复制配置”。还原旧备份时,它的供应商副本将使用其更改日志更新该集线器,更新内容包括备份保存以来已经处理的所有修改。

使用控制台还原服务器

如果目录数据已毁坏,则可使用 Directory Server 控制台从先前生成的备份还原数据。为了使用控制台还原服务器,必须运行目录服务器。然而,在还原期间不能使用相应的后缀处理操作。

要从先前创建的备份还原服务器,请执行以下操作:

  1. 在 Directory Server 控制台的顶级“任务”标签上,单击“还原 Directory Server”旁边的按钮。
  2. 显示“还原目录”对话框。

  3. 从“可用的备份”列表中选择备份,或在“目录”文本框中输入有效备份的完整路径。
  4. “可用的备份”列表会显示默认目录中的全部备份:

    ServerRoot/slapd-serverID/bak

  5. 单击“确定”还原服务器。

从命令行还原服务器

可使用以下脚本从命令行还原服务器:

  • 使用 bak2db 命令(Solaris 软件包中为 directoryserver bak2db)。该脚本需要关闭服务器。
  • 使用 bak2db.pl perl 脚本(Solaris 软件包中为 directoryserver bak2db-task)。该脚本需要运行服务器。

使用 bak2db 命令行脚本。

要在关闭服务器的情况下从命令行还原目录,请执行以下操作:

  1. 从命令行以 root 身份使用以下命令停止服务器:

    Solaris 软件包

    # /usr/sbin/directoryserver stop

    其他安装

    # ServerRoot/slapd-serverID/stop-slapd

  2. bak2db 命令与备份目录的完整路径一起使用:

    Solaris 软件包

    # /usr/sbin/directoryserver bak2db backupDir

    其他安装

    # ServerRoot/slapd-serverID/bak2db backupDir

  3. 使用适当的命令启动服务器:

    Solaris 软件包

    # /usr/sbin/directoryserver start

    其他安装

    # ServerRoot/slapd-serverID/start-slapd

以下示例从默认的备份目录中还原备份:

# bak2db /var/Sun/mps/slapd-example/bak/2001_07_01_11_34_00

详细信息,请参阅 Sun ONE Directory Server 参考手册 第 2 章中的“bak2db”

使用 bak2db.pl Perl 脚本

要在服务器运行的情况下从命令行还原目录,请使用以下 perl 脚本:

Solaris 软件包

# /usr/sbin/directoryserver bak2db-task

Windows 平台

cd ServerRoot
bin\slapd\admin\bin\perl slapd-serverID\bak2db.pl

其他安装

# ServerRoot/slapd-serverID/bak2db.pl

以下示例使用 ldif2db.pl 脚本导入 LDIF 文件。-a 选项给出备份目录的完整路径。

UNIX shell 脚本:

# use directoryserver bak2db-task on Solaris Packages installations
/var/Sun/mps/slapd-example/bak2db.pl \
  -D "cn=Directory Manager" -w 口令 \
  -a /var/Sun/mps/slapd-example/bak/checkpoint

Windows 批处理文件:

C:\Program Files\Sun\MPS\bin\slapd\admin\bin\perl.exe
 
C:\Program Files\Sun\MPS\slapd-example\bak2db.pl
  -
D "cn=Directory Manager" -w 口令
  -a C:\Program Files\Sun\MPS\slapd-example\bak\2001_07_01_11_34_00

详细信息,请参阅 Sun ONE Directory Server 参考手册 第 2 章中的“bak2db.pl”

还原 dse.ldif 配置文件

该目录在以下目录中创建 dse.ldif 文件的两个备份副本:

ServerRoot/slapd-serverID/config

dse.ldif.startOK 文件在服务器启动时,记录 dse.ldif 文件的副本。 dse.ldif.bak 文件包含 dse.ldif 文件最近所做更改的备份。将包含最近更改的文件复制到目录中。

要还原 dse.ldif 配置文件,请执行以下操作:

  1. 从命令行以 root 身份使用以下命令停止服务器:

    Solaris 软件包

    # /usr/sbin/directoryserver stop

    其他安装

    # ServerRoot/slapd-serverID/stop-slapd

  2. 改为包含配置文件的目录。
  3. 使用已知为完好的备份配置文件覆盖 dse.ldif 文件。例如,可键入以下内容:
  4. cp dse.ldif.startOK dse.ldif

  5. 使用适当的命令启动服务器:

    Solaris 软件包

    # /usr/sbin/directoryserver start

    其他安装

    # ServerRoot/slapd-serverID/start-slapd


上一章     目录     索引     文档主页     下一章    
版权所有 2003 Sun Microsystems, Inc. 保留所有权利。