![]() |
iPlanet Directory Server 5.1 管理员指南 |
第 4 章 填充目录数据库
数据库中包含受目录服务器管理的目录数据。本章介绍下列填充目录数据库的操作:
启用和禁用只读模式
在 iPlanet Directory Server 上执行某些导出或备份操作之前,可以启用任何数据库上的只读模式,从而确保在给定时刻充分了解这些数据库的状态。
执行导出或备份操作之前,iPlanet Directory Server Console 及命令行实用程序不会自动将目录置于只读模式,因为这样会使目录无法进行更新。但如果为多原版配置,就不会出现上述问题。
在 iPlanet Directory Server Console 上,选择“配置”选项卡,然后展开导航树中的“数据”文件夹。
选择要置于只读模式的数据库,然后单击右侧窗口中的“数据库设置”选项卡。
所做更改将立即生效。
执行导入或恢复操作之前,应确保受该操作影响的数据库未处于只读模式下。如果确实为只读模式,请利用下列操作使之处于可更新状态下:
在 iPlanet Directory Server Console 上,选择“配置”选项卡,然后展开“数据”目录树。
选择要让其可更新的数据库,然后单击右侧窗口中的“数据库设置”选项卡。
所做更改将立即生效。
导入数据
iPlanet Directory Server 提供了三种数据导入方法:
从 iPlanet Directory Server Console 导入。
可以使用 iPlanet Directory Server Console 将数据追加到所有数据库中,包括数据库链接。
初始化数据库。
可以使用 Directory Server Console 将数据导入一个数据库中。该方法将覆盖数据库包含的所有数据。
从命令行导入数据。
下表说明导入和初始化数据库之间的区别:
比较范围
导入数据
初始化数据库
“从控制台执行导入”
从控制台执行导入
从 iPlanet Directory Server Console 执行导入操作时,系统可执行 ldapmodify 操作,从而进行数据的追加及条目的修改和删除。操作将面向所有受 从 iPlanet Directory Server Console 执行导入操作时,系统可执行 ldapmodify 操作,从而进行数据的追加及条目的修改和删除。 Server 管理的数据库,同时还包括 从 iPlanet Directory Server Console 执行导入操作时,系统可执行 ldapmodify 操作,从而进行数据的追加及条目的修改和删除。 Server 对其配置有数据库链接的远程数据库。
为执行导入,必须以目录管理员的身份进行登录。
要从 iPlanet Directory Server Console 导入数据:
在 iPlanet Directory Server Console 上,选择“任务”选项卡。滚动到屏幕的底端,选择“导入数据库”。
也可以转到“配置”选项卡并选择“控制台”菜单中的“导入”,同样可以进行导入。
此时显示“导入数据库”对话框。
在“LDIF 文件”字段中,输入所要导入的 LDIF 文件的完整路径,或者单击“浏览”以选择要导入的文件。
如果是在目录的远程计算机上运行控制台,则字段名将显示为“LDIF 文件(位于运行控制台的计算机上)”。这是提醒用户:所浏览的目录并非当前目录。相反,此时所浏览的是运行控制台的计算机的文件系统。
在“选项”框中,可选择下列一个或多个选项:
只添加。除了默认的添加指令外,LDIF 文件可能还包含修改和删除指令。如果希望服务器忽略除添加操作以外的其他操作,请选中“只添加”复选框。
出错时继续。如果希望服务器即使在出现错误的情况下仍继续导入,请选中“出错时继续”复选框。例如,如果导入的 LDIF 文件中除了新的条目外,还含有数据库中已有的某些条目,即可使用该选项。服务器会在拒绝文件中记录下已有的条目,同时添加所有新条目。
在“拒绝的文件”字段中,输入某个文件的完整路径,用于供服务器记录不能导入的条目;或者单击“浏览”以选择容纳被拒绝条目的文件。
例如,服务器无法导入数据库中已有的条目或无父对象的条目。控制台将把服务器发送来的错误信息写入拒绝文件中。
如果将该字段空置,服务器将不会记录被拒绝的条目。
单击“确定”。
服务器将执行导入并同时创建索引。
从控制台初始化数据库
您可以覆盖数据库中现有的数据。以下部分介绍利用控制台来初始化数据库。
为初始化数据库,则必须以目录管理员身份进行登录。原因是:除非您作为目录管理员绑定到目录上(根 DN),否则将无法导入包含根条目的 LDIF 文件。只有目录管理员才有权访问根条目(例如,根条目可能为 dc=siroe,dc=com)。
从 LDIF 文件初始化数据库时,除非是要恢复数据,否则应注意不要覆盖 o=NetscapeRoot 后缀。如果覆盖该后缀,就会删除某些重要信息,并因此要求重新安装所有 iPlanet 服务器。
要使用 iPlanet Directory Server Console 初始化数据库:
在 iPlanet Directory Server Console 上,选择“配置”选项卡。
展开左侧导航窗口中的“数据”目录树。展开所要初始化的数据库的后缀,然后单击该数据库。
也可以从“对象”菜单中选择“初始化数据库”。
在“LDIF 文件”字段中,输入所要导入的 LDIF 文件的完整路径,或者单击“浏览”并在计算机上进行查找。
如果是在所导入文件的本机上运行控制台,请跳到步骤 6。对于包含 LDIF 文件的服务器而言,如果是从其远程计算机运行控制台,请选择下列选项之一:
从本地机器。表明 LDIF 文件位于本地计算机上。
从服务器。表明 LDIF 文件位于远程服务器上。默认情况下,控制台将查找下列目录中的文件:
/var/ds5/slapd-serverID/ldif
单击“确定”。
使用 /usr/sbin/directoryserver ldif2db
该导入方法将覆盖数据库的内容,同时要求停止服务器。
使用 /usr/sbin/directoryserver ldif2db-task
该导入方法将覆盖数据库的内容,而服务器仍将处于运行状态。
使用 /usr/sbin/directoryserver ldif2ldap
该方法将通过 LDAP 向 LDIF 文件中追加数据。使用该方法可以将数据追加到所有数据库中。
使用 ldif2db 命令进行导入
/usr/sbin/directoryserver ldif2db 命令将覆盖所指定的数据库中的数据。该命令要求在导入前关闭服务器。
默认情况下,该命令首先保存任何现有的 o=NetscapeRoot 配置信息,然后将其与所导入文件中的 o=NetscapeRoot 配置信息进行合并。
从命令行上作为 root 用户通过以下命令停止服务器:
# /usr/sbin/directoryserver stop
使用 ldif2db 子命令:
# /usr/sbin/directoryserver ldif2db
下面的示例使用该命令将两个 LDIF 文件导入一个单一的数据库中。
如果在 -n 选项中指定的数据库并不对应于 LDIF 文件包含的后缀,则该数据库中的所有数据都将被删除,而导入操作将失败。请务必不要将数据库名称拼写错误。
#!/bin/sh
/usr/sbin/directoryserver ldif2db -n Database1 \
-i /usr/iplanet/servers/slapd-siroe/ldif/demo.ldif \
-i /usr/iplanet/servers/slapd-siroe/ldif/demo2.ldif
选项
说明 -n
-i
指定所要导入的 LDIF 文件的完整路径名。该选项为必需项。可以使用多个 -i 变量一次导入多个 LDIF 文件。导入多个文件时,服务器将按命令行中指定的顺序导入 LDIF 文件。
使用 ldif2db-task 命令进行导入
同上,/usr/sbin/directoryserver ldif2db-task 将覆盖所指定的数据库中的数据。执行导入时,该命令要求服务器处于运行状态。
以下示例导入一个 LDIF 文件。运行该脚本无需 root 权限,但是必须以目录管理员进行身份验证。
#!/bin/sh
/usr/sbin/directoryserver ldif2db-task \
-D "cn=Directory Manager" -w password -n Database1 \
-i /usr/iplanet/servers/slapd-siroe/ldif/demo.ldif
表 4-3 示例中所用的 ldif2db-task 选项说明
选项
说明 -D
-w
-n
-i
指定所要导入的 LDIF 文件的完整路径名。该选项为必需项。可以使用多个 -i 变量一次导入多个 LDIF 文件。导入多个文件时,服务器将按命令行中指定的顺序导入 LDIF 文件。
使用 ldif2ldap 命令进行导入
/usr/sbin/directoryserver ldif2ldap 命令通过 LDAP 向 LDIF 文件中追加数据。使用该命令可同时向所有目录数据库中导入数据。使用该命令导入时,服务器必须处于运行状态。
以下示例执行导入。运行该命令无需 root 权限,但必须在命令行中提供目录管理员凭证。最后一个参数是要导入的 LDIF 文件的名称。
#!/bin/sh
/usr/sbin/directoryserver ldif2ldap "cn=Directory Manager" password \
/usr/iplanet/servers/slapd-siroe/ldif/demo.ldif
导出数据
使用 LDAP 数据交换格式 (LDIF) 可以导出数据库中的数据库条目。LDIF 是一种 RFC 2849“LDAP 数据交换格式 (LDIF) - 技术规格”中所介绍的标准格式。
例如,假设目录位于某个数据库中,而您决定将其内容拆分到两个数据库中,如下所示:
填充新数据库时,要求将数据库 1 的内容导出,然后将其导入新数据库 1 和 2 中。
可以使用 iPlanet Directory Server Console 或命令行实用程序来导出数据。下列部分将详细介绍这些方法:
“使用控制台将目录数据导出到 LDIF” 导出操作并不导出配置信息 (cn=config)。
使用控制台将目录数据导出到 LDIF
您可以将部分或全部目录数据导入 LDIF 中,而这与最终导出文件的位置有关。如果 LDIF 文件位于服务器上,则可以仅将本地数据库中所含的数据导出到服务器上。如果 LDIF 文件位于服务器的远程位置,则可以导出数据库全部内容及数据库链接。
要在服务器运行状态下从 iPlanet Directory Server Console 将目录数据导入 LDIF:
在 iPlanet Directory Server Console 上,选择“任务”选项卡。滚动到屏幕的底端,然后单击“导出数据库”。
要导出数据库全部内容,也可选择“配置”选项卡,然后选择“控制台”菜单中的“导出”。
此时显示“导出数据库”对话框。
在“LDIF 文件”字段中输入 LDIF 文件的完整路径和文件名,或者单击“浏览”以查找该文件。
如果是在远程服务器上运行控制台,则不启用“浏览”按钮。如果未启用“浏览”按钮,文件将默认存储到以下目录中:
/var/ds5/slapd-serverID/ldif
如果是在服务器的远程计算机上运行控制台,则在 LDIF 文件字段的下面将出现两个单选按钮。选择“对于本地机器”则指示导出到控制台所在计算机的 LDIF 文件中。选择“对于服务器”则指示导出到服务器的 LDIF 文件中。
如果只想导出数据库中所含后缀的单个子树,请选择“子树”单选按钮,然后在“子树”文本框中输入后缀的名称。该选项可用于导出包含在多个数据库中的某个子树。
也可单击“浏览”以选择后缀或子树。
单击“确定”以导出文件。
使用控制台将单个数据库导出到 LDIF
要在服务器运行状态下从 iPlanet Directory Server Console 将一个数据库导入 LDIF:
在 Directory Server Console 上,选择“配置”选项卡。
展开左侧导航窗口中的“数据”目录树。展开所要导出的数据库所维护的后缀。选择到要导出的后缀下的数据库。
也可从“对象”菜单中选择“导出数据库”。
此时显示“导出分区”对话框。
在“LDIF 文件”字段中,输入 LDIF 文件的完整路径,或者单击“浏览”以在计算机上查找该文件。
如果未启用“浏览”按钮,文件将默认存储到以下目录中:
/var/ds5/slapd-serverID/ldif
单击“确定”以导出文件。
从命令行导出到 LDIF
使用 /usr/sbin/directoryserver db2ldif 命令可以将输入库导入到 LDIF。该命令可以将所有数据库内容或其中的一部分导出到一个 LDIF 文件,而不管服务器是否处于运行状态。
# /usr/sbin/directoryserver db2ldif
下面的示例将两个后缀下的数据库导出到一个 LDIF 文件中:
/usr/sbin/directoryserver db2ldif -n database1 -a output.ldif \
-s "dc=siroe,dc=com" -s "o=NetscapeRoot"
选项
说明 -n
-a
定义供服务器保存所导出的 LDIF 的输出文件的名称。默认情况下,该文件储存在 /var/ds5/slapdserverID 目录中。 -s
备份和恢复数据
使用 iPlanet Directory Server Console 或命令行实用程序可以备份和恢复数据库。
“备份所有数据库”
备份所有数据库
下列过程介绍如何利用 iPlanet Directory Server Console 及命令行备份目录中所有的数据库内容。
注意 对于使用数据库链接功能所链接的远程服务器而言,使用该备份方法无法备份其数据库中所含的数据。
从服务器控制台备份所有数据库
从 iPlanet Directory Server Console 备份数据库时,服务器将把数据库的全部内容及相关索引文件都复制到备份位置。执行备份时,服务器可以处于运行状态下。
在 iPlanet Directory Server Console 上,选择“任务”选项卡。
此时显示“备份目录”对话框。
在“目录”文本框中,输入用于存储备份文件的完整路径。如果是在目录所在的计算机上运行控制台,则单击“浏览”以查找某个本地目录。
或者单击“使用缺省值”将备份存储到以下目录:
/var/ds5/slapd-serverID/bak/YYYY_MM_DD_hh_mm_ss
其中 serverID 是目录服务器的名称。
单击“确定”以创建备份。
从命令行备份所有数据库
在命令行上,可以使用 /usr/sbin/directoryserver db2bak 命令进行数据库备份。无论服务器是否处于运行状态,该命令都可以工作。
使用该备份方法无法备份配置信息。有关备份配置信息的说明,请参阅“备份 dse.ldif 配置文件”。
# /usr/sbin/directoryserver db2bak backupDir
backupDir 参数指定储存备份的目录。默认的备份目录名利用当前的日期生成:YYYY_MM_DD_hh_mm_ss。
# /usr/sbin/directoryserver db2bak /var/ds5/slapd-sv/bak/checkpoint
备份单个数据库
如果符合以下条件,可以使用本部分介绍的方法:
要备份单个数据库:
从命令行上作为 root 用户通过以下命令停止服务器:
# /usr/sbin/directoryserver stop
变换到包含所要备份的数据库的目录:
# cd /var/ds5/slapd-serverID/db
将目录中的所有文件都复制到所创建的备份目录中。请勿在 slapd-serverID/bak/ 下创建目录,因为 iPlanet Directory Server Console 假定该目录所含的备份为全局备份。
备份 dse.ldif 配置文件
Directory Server 会自动备份 dse.ldif 配置文件。启动目录服务器时,它将自动在以下目录中以 dse.ldif.startOK 文件名创建 dse.ldif 文件的备份:
/var/ds5/slapd-serverID/config
对 dse.ldif 文件进行修改时,该文件将被首先备份到 config 目录下名为 dse.ldif.bak 的文件中,之后,服务器将写入对 dse.ldif 文件的修改内容。如果需要保存配置,请制作上述文件副本之一。
恢复所有数据库
下列过程介绍如何利用 iPlanet Directory Server Console 及命令行备份目录中所有的数据库内容。
注意 恢复数据库时,服务器必须处于运行状态。但在恢复过程中,数据库将无法用于处理操作。
从控制台恢复所有数据库
如果数据库已损坏,则可使用 iPlanet Directory Server Console 从以前生成的备份中进行恢复。该过程包括:停止服务器,然后将数据库及相关的索引文件从备份位置复制到数据库目录中。
在 iPlanet Directory Server Console 上,选择“任务”选项卡。
此时显示“恢复目录”对话框。
从“可用备份”列表中选择备份,或者在“目录”文本框中输入到有效备份的完整路径。
“可用备份”列表中给出以下默认目录中的所有备份:
/var/ds5/slapd-serverID/bak
单击“确定”以恢复数据库。
从命令行恢复数据库
在命令行中,可以使用下列命令来恢复数据库:
使用 /usr/sbin/directoryserver bak2db 命令。该命令要求关闭服务器。
使用 /usr/sbin/directoryserver bak2db-task 命令。使用该命令时,要求服务器处于运行状态。
使用 bak2db 命令
要在关闭服务器的情况下从命令行恢复目录:
从命令行上作为 root 用户通过以下命令停止服务器:
# /usr/sbin/directoryserver stop
使用 bak2db 命令和备份目录的完整路径:
下面的示例从默认的备份目录中恢复备份:
# /usr/sbin/directoryserver bak2db /var/ds5/slapd-sv/bak/2001_07_01_11_34_00
使用 bak2db-task 命令
要在服务器运行状态下从命令行恢复目录,请使用以下命令:
以下示例导入一个 LDIF 文件。
#!/bin/sh
/usr/sbin/directoryserver bak2db-task -D "cn=Directory Manager" \
-w password -a /usr/iplanet/servers/slapd-siroe/bak/checkpoint
选项
说明 -D
-w
-a
恢复单个数据库
如果符合以下条件,可以使用本部分介绍的方法:
要恢复单个数据库:
从命令行上作为 root 用户通过以下命令停止服务器:
# /usr/sbin/directoryserver stop
变换到包含所要恢复之备份的目录。
对于包含要用备份来予以覆盖的数据库的目录而言,请将所有文件都复制到其中。数据库目录位于:
/var/ds5/slapd-serverID/db
例如,可以键入:
cp backupDir/* /var/ds5/slap-siroe/db/databaseDir
恢复包含复制条目的数据库
本部分介绍如何在供给服务器和客户服务器上恢复数据库,以及如何确保在恢复操作后保持供给服务器和客户服务器同步。
恢复供给器副本
如果是要恢复向其它服务器提供条目的数据库(供给器副本),则必须重新初始化所有从恢复数据库中接收更新数据的服务器(例如客户服务器、中枢服务器及多原版复制环境中的其它供给服务器)。
恢复过程中,将擦除与恢复数据库相关联的更改日志。供给服务器的日志文件中将记录一条消息,指示需要重新进行初始化。
有关初始化客户服务器的信息,请参阅第 8 章“管理复制”。
恢复客户副本
如果所恢复的数据库中包含从供给服务器接收来的数据,就会出现下列两种情况之一:
更改日志条目在供给服务器上尚未过期。
只有当备份时间小于所设更改日志有效期属性的最大值时,才会出现这种情况。该属性称为 nsslapd-changelogmaxage,位于 cn=changelog5,cn=config 条目中。有关使用该选项的详细信息,请参阅 iPlanet Directory Server 配置、命令和文件参考指南。
可恢复本地客户服务器然后继续正常操作。但是,在恢复客户副本时,客户服务器必须停止。如果在恢复客户副本时继续复制,则复制过程将出现许多错误。
自本地备份以来,供给服务器上的更改日志条目已过期。
需要重新初始化客户服务器。有关重新初始化客户服务器的详细信息,请参阅“初始化客户”。
有关管理复制的信息,请参阅第 8 章“管理复制”。
恢复 dse.ldif 配置文件
要恢复 dse.ldif 配置文件,请停止服务器,然后使用“恢复单个数据库”中所述的操作过程将 dse.ldif 文件的备份副本复制到自己的目录中。复制完数据后,重新启动服务器。
目录将在以下目录中创建 dse.ldif 文件的两个备份副本:
/var/ds5/slapd-serverID/config
其中 dse.ldif.startOK 文件记录服务器启动时 dse.ldif 文件的副本。而 dse.ldif.bak 文件则包含对 dse.ldif 文件所做最新更改的备份。将带有最新更改信息的文件复制到自己的目录中。
上一页 目录 索引 文档主页 下一页
版权所有 © 2001 Sun Microsystems, Inc.。部分版权所有 © 2001 Netscape Communications Corp.。保留所有权利。
最近更新时间:2002 年 2 月 15 日