第 1 章 将数据导入到目录服务器
使用命令行或 Web 控制台将数据从 LDIF 文件导入到目录服务器数据库。
要导入数据,您必须将要导入的 LDIF 文件存储在 /var/lib/dirsrv/slapd-instance_name/ldif/
目录中。
1.1. 在服务器运行时使用命令行导入数据
要在 Directory Server 实例运行时导入数据,请使用 dsconf backend import
命令。
当您启动导入操作时,目录服务器首先从数据库中删除所有现有数据,然后从 LDIF 文件中导入数据。因此,如果导入失败,服务器不会返回条目或部分条目集合。
先决条件
-
LDIF 文件权限允许
dirsrv
用户读取该文件。 - 要导入的 LDIF 文件包含 root 后缀条目。
- 要导入数据的后缀及其数据库存在于目录中。
- 目录服务器实例正在运行。
- 要导入的 LDIF 文件使用 UTF-8 字符集编码。
流程
可选:默认情况下,Directory 服务器将所有导入的条目序列号(USN)设置为 0。
要设置替代的 initial USN 值,请设置
nsslapd-entryusn-import-initval
参数。例如,要将所有导入的值的 USN 设置为12345
,请输入:#
dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-entryusn-import-initval=12345
如果要将要导入的文件复制到
/var/lib/dirsrv/slapd-instance_name/ldif/
,请在该文件中重置 SELinux 上下文:#
restorecon -Rv /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif
使用
dsconf backend import
命令从 LDIF 文件中导入数据。例如,要将
/var/lib/dirsrv/slapd-instance_name/ldif/example.ldif
文件导入到userRoot
数据库中:#
dsconf -D "cn=Directory Manager" ldap://server.example.com backend import userRoot /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif
The import task has finished successfully-
搜索
/var/log/dirsrv/slapd-instance_name/errors
日志在导入过程中出现问题。
验证
搜索导入的后缀下的条目,如
dc=example,dc=com
:#
ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" -s sub -x