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 字符设置编码。

流程

  1. 可选:默认情况下,Directory 服务器将所有导入条目的条目更新序列号(USNs)设置为 0。要设置替代的 initial USN 值,请设置 nsslapd-entryusn-import-initval 参数。例如,要将所有导入的值都设为 12345,请输入:

    # dsconf <instance_name> config replace nsslapd-entryusn-import-initval=12345
    Copy to Clipboard Toggle word wrap
  2. 如果您复制了要导入到 /var/lib/dirsrv/slapd- <instance_name>/ldif/ 的文件,请重置该文件上的 SELinux 上下文:

    # restorecon -Rv /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif
    Copy to Clipboard Toggle word wrap
  3. 使用 dsconf backend import 命令从 LDIF 文件中导入数据。

    例如,要将 /var/lib/dirsrv/slapd- <instance_name&gt; /ldif/example.ldif 文件导入到 userRoot 数据库中:

    # dsconf <instance_name> backend import userRoot /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif
    The import task has finished successfully
    Copy to Clipboard Toggle word wrap
  4. 在导入过程中搜索 /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
    Copy to Clipboard Toggle word wrap

2.2.2. 在服务器离线时使用命令行导入数据

如果 Directory Server 实例离线,请使用 dsctl ldif2db 命令导入数据。

警告

当您启动导入操作时,目录服务器首先从数据库中删除所有现有数据,然后从 LDIF 文件中导入数据。因此,如果导入失败,服务器不会返回条目或部分条目集合。

先决条件

  • LDIF 文件权限允许 dirsrv 用户读取该文件。
  • 要导入的 LDIF 文件包含 root 后缀条目。
  • 要导入数据的后缀及其数据库存在于 目录中。
  • 目录服务器实例没有运行。
  • 要导入的 LDIF 文件使用 UTF-8 字符设置编码。

流程

  1. 可选:默认情况下,Directory 服务器将所有导入条目的条目更新序列号(USNs)设置为 0。要设置替代的 initial USN 值,请设置 nsslapd-entryusn-import-initval 参数。例如,要将所有导入的值都设为 12345,请输入:

    # dsconf <instance_name> config replace nsslapd-entryusn-import-initval=12345
    Copy to Clipboard Toggle word wrap
  2. 如果您复制了要导入到 /var/lib/dirsrv/slapd- <instance_name>/ldif/ 的文件,请重置该文件上的 SELinux 上下文:

    # restorecon -Rv /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif
    Copy to Clipboard Toggle word wrap
  3. 使用 dsctl ldif2db 命令从 LDIF 文件中导入数据。例如,要将 /var/lib/dirsrv/slapd- <instance_name&gt; /ldif/example.ldif 文件导入到 userRoot 数据库中:

    # dsctl <instance_name> ldif2db userRoot /var/lib/dirsrv/slapd-instance_name/ldif/example.ldif
    OK group dirsrv exists
    OK user dirsrv exists
    [17/Jul/2021:13:42:42.015554231 +0200] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000
    ...
    [17/Jul/2021:13:42:44.302630629 +0200] - INFO - import_main_offline - import userRoot: Import complete.  Processed 160 entries in 2 seconds. (80.00 entries/sec)
    ldif2db successful
    Copy to Clipboard Toggle word wrap
  4. 在导入过程中搜索 /var/log/dirsrv/slapd-<instance_name> /errors 日志。
  5. 可选:启动实例:

    # dsctl <instance_name> start
    Copy to Clipboard Toggle word wrap

验证

  • 搜索导入的后缀下的条目,如 dc=example,dc=com

    # ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" -s sub -x
    Copy to Clipboard Toggle word wrap

目录服务器支持使用 Web 控制台导入数据。

警告

当您启动导入操作时,目录服务器首先从数据库中删除所有现有数据,然后从 LDIF 文件中导入数据。因此,如果导入失败,服务器不会返回条目或部分条目集合。

先决条件

  • LDIF 文件权限允许 dirsrv 用户读取该文件。
  • 要导入的 LDIF 文件包含 root 后缀条目。
  • 要导入数据的后缀及其数据库存在于 目录中。
  • LDIF 文件存储在 /var/lib/dirsrv/slapd- <instance_name>/ldif/ 目录中,并设置了 dirsrv_var_lib_t SELinux 上下文。
  • 目录服务器实例正在运行。
  • 在 web 控制台中登录到实例。
  • 要导入的 LDIF 文件使用 UTF-8 字符设置编码。

流程

  1. 在 Web 控制台中,打开 Database 菜单。
  2. 选择后缀条目。
  3. Suffix Tasks,然后选择 Initialize Suffix
  4. 点击您要导入的 LDIF 文件旁边的 Import 按钮。如果 LDIF 文件存储在与 /var/lib/dirsrv/slapd- <instance_name&gt; /ldif/ 以外的目录中,输入文件的完整路径并点 Import 按钮。
  5. 选择 Yes, I am sure,然后单击 Initialize Database 确认。
  6. 要在导入过程中检查日志中的问题,请打开 Monitoring Logging Errors Log 菜单。

验证

  1. 搜索导入的后缀下的条目,如 dc=example,dc=com

    # ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" -s sub -x
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat