2.2. 将数据导入到目录服务器
使用命令行或 Web 控制台将数据从 LDIF 文件导入到目录服务器数据库。
要导入数据,您必须将要导入的 LDIF 文件存储在 /var/lib/dirsrv/slapd- <instance_name> /ldif/ 目录中。
2.2.1. 在服务器运行时使用命令行导入数据 复制链接链接已复制到粘贴板!
要在 Directory 服务器实例运行时导入数据,请使用 dsconf backend import 命令。
当您启动导入操作时,目录服务器首先从数据库中删除所有现有数据,然后从 LDIF 文件中导入数据。因此,如果导入失败,服务器不会返回条目或部分条目集合。
先决条件
-
LDIF 文件权限允许
dirsrv用户读取该文件。 - 要导入的 LDIF 文件包含 root 后缀条目。
- 要导入数据的后缀及其数据库存在于 目录中。
- 目录服务器实例正在运行。
- 要导入的 LDIF 文件使用 UTF-8 字符设置编码。
流程
可选:默认情况下,Directory 服务器将所有导入条目的条目更新序列号(USNs)设置为 0。
要设置替代的 initial USN 值,请设置nsslapd-entryusn-import-initval参数。例如,要将所有导入的值都设为12345,请输入:dsconf <instance_name> config replace nsslapd-entryusn-import-initval=12345
# dsconf <instance_name> config replace nsslapd-entryusn-import-initval=12345Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您复制了要导入到
/var/lib/dirsrv/slapd- <instance_name>/ldif/的文件,请重置该文件上的 SELinux 上下文:restorecon -Rv /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif
# restorecon -Rv /var/lib/dirsrv/slapd-instance_name/ldif/example.ldifCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
dsconf backend import命令从 LDIF 文件中导入数据。例如,要将
/var/lib/dirsrv/slapd- <instance_name> /ldif/example.ldif文件导入到userRoot数据库中:dsconf <instance_name> backend import userRoot /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif
# dsconf <instance_name> backend import userRoot /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif The import task has finished successfullyCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
在导入过程中搜索
/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
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" -s sub -xCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.2. 在服务器离线时使用命令行导入数据 复制链接链接已复制到粘贴板!
如果 Directory Server 实例离线,请使用 dsctl ldif2db 命令导入数据。
当您启动导入操作时,目录服务器首先从数据库中删除所有现有数据,然后从 LDIF 文件中导入数据。因此,如果导入失败,服务器不会返回条目或部分条目集合。
先决条件
-
LDIF 文件权限允许
dirsrv用户读取该文件。 - 要导入的 LDIF 文件包含 root 后缀条目。
- 要导入数据的后缀及其数据库存在于 目录中。
- 目录服务器实例没有运行。
- 要导入的 LDIF 文件使用 UTF-8 字符设置编码。
流程
可选:默认情况下,Directory 服务器将所有导入条目的条目更新序列号(USNs)设置为 0。
要设置替代的 initial USN 值,请设置nsslapd-entryusn-import-initval参数。例如,要将所有导入的值都设为12345,请输入:dsconf <instance_name> config replace nsslapd-entryusn-import-initval=12345
# dsconf <instance_name> config replace nsslapd-entryusn-import-initval=12345Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您复制了要导入到
/var/lib/dirsrv/slapd- <instance_name>/ldif/的文件,请重置该文件上的 SELinux 上下文:restorecon -Rv /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif
# restorecon -Rv /var/lib/dirsrv/slapd-instance_name/ldif/example.ldifCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
dsctl ldif2db命令从 LDIF 文件中导入数据。例如,要将/var/lib/dirsrv/slapd- <instance_name> /ldif/example.ldif文件导入到userRoot数据库中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在导入过程中搜索
/var/log/dirsrv/slapd-<instance_name> /errors日志。 可选:启动实例:
dsctl <instance_name> start
# dsctl <instance_name> startCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
搜索导入的后缀下的条目,如
dc=example,dc=com:ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" -s sub -x
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" -s sub -xCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.3. 在服务器运行时使用 Web 控制台导入数据 复制链接链接已复制到粘贴板!
目录服务器支持使用 Web 控制台导入数据。
当您启动导入操作时,目录服务器首先从数据库中删除所有现有数据,然后从 LDIF 文件中导入数据。因此,如果导入失败,服务器不会返回条目或部分条目集合。
先决条件
-
LDIF 文件权限允许
dirsrv用户读取该文件。 - 要导入的 LDIF 文件包含 root 后缀条目。
- 要导入数据的后缀及其数据库存在于 目录中。
-
LDIF 文件存储在
/var/lib/dirsrv/slapd- <instance_name>/ldif/目录中,并设置了dirsrv_var_lib_tSELinux 上下文。 - 目录服务器实例正在运行。
- 在 web 控制台中登录到实例。
- 要导入的 LDIF 文件使用 UTF-8 字符设置编码。
流程
- 在 Web 控制台中,打开 菜单。
- 选择后缀条目。
- 点 ,然后选择 Initialize Suffix。
-
点击您要导入的 LDIF 文件旁边的 按钮。如果 LDIF 文件存储在与
/var/lib/dirsrv/slapd- <instance_name> /ldif/以外的目录中,输入文件的完整路径并点 按钮。 - 选择 Yes, I am sure,然后单击 确认。
-
要在导入过程中检查日志中的问题,请打开
菜单。
验证
搜索导入的后缀下的条目,如
dc=example,dc=com:ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" -s sub -x
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" -s sub -xCopy to Clipboard Copied! Toggle word wrap Toggle overflow