7.2. 手动将数据库类型从 BDB 迁移到 LMDB


在以下情况下,使用实例的 Berkeley Database (BDB)后端手动迁移到 Lightning Memory-Mapped 数据库(LMDB):

  • 无法执行 dsctl 工具的迁移。
  • 您需要手动设置 LMDB 配置属性。

前提条件

  • 您有 root 权限。
  • 您有目录管理器密码。

流程

  1. 将所有数据库导出到 LDIF 文件,如 在服务器离线时使用命令行导出数据 中所述。
  2. 通过阐明现有数据库大小并添加安全边缘 20% 来确定 LMDB 数据库最大大小。如果您从 LMDB 迁移到 BDB,请跳过这一步。

    1. 阐明现有数据库大小:

      # du -hs /var/lib/dirsrv/slapd-instance_name/db/*/ 
      1.8GB
    2. 添加 20% 的安全利润:

      1.8 GB + 20% = 2.16 GB

      在以后的步骤中,您需要最大数据库大小。

  3. 将实例上的数据库类型更改为 LMDB,然后重新启动实例:

    # dsconf instance_name backend config set --db-lib mdb
    Successfully updated database configuration
    
    # dsctl instance_name restart
    Instance "instance_name" has been restarted

    当您从 LMDB 迁移到 BDB 时,将 --db-lib 选项设置为 bdb

  4. 将 LMDB 最大大小设置为您在前面的步骤(2.16 GB)中计算的值,然后重启实例:

    # dsconf instance_name backend config set --mdb-max-size 2319282339
    Successfully updated database configuration
    
    # dsctl instance_name restart
    Instance "instance_name" has been restarted

    命令设置 nsslapd-mdb-max-size 配置参数值。

    注意

    如果您从 LMDB 迁移到 BDB,请跳过这一步。

  5. 从 LDIF 文件 导入所有数据库,如在服务器离线时使用命令行导入数据 中所述。

验证

  • 检查 nsslapd-backend-implement 配置参数值是否已设置为 mdb
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend config get | grep nsslapd-backend-implement
Enter password for cn=Directory Manager on ldap://server.example.com: password
nsslapd-backend-implement: mdb
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部