第 7 章 将数据库类型从 BDB 迁移到现有 DS 实例上的 LMDB


如果您有带有 Berkeley Database (BDB)后端的实例,您可以将此实例上的 BDB 更改为 Lightning Memory-Mapped Database (LMDB)。

注意

从 BDB 迁移到 LMDB 仅适用于 Directory Server 版本 12.5 或更高版本的实例。

在混合环境中,请考虑以下限制:

  • 您不能使用备份来恢复具有不同数据库类型的实例,因为备份和恢复格式与这个类型相关联。
  • 您不能将后端与实例上的不同类型混合在一起。

但是,可以采用以下实现组合:

  • 您可以将实例与主机上的不同后端类型混合在一起。
  • 您可以在复制拓扑中将副本与不同类型的混合混合。

目前,您只能使用命令行从 BDB 迁移到 LMDB 或后向。

7.1. 使用 dsctl将数据库类型从 BDB 迁移到 LMDB

您可以使用 dsctl 工具自动将实例上的 Berkeley 数据库(BDB)后端迁移到 Lightning Memory-Mapped 数据库(LMDB)。

前提条件

  • 您有 root 权限。

流程

  1. 开始从 BDB 迁移到 LMDB:

    # dsctl instance_name dblib bdb2mdb
    ...
    Backends importation 0.000000% (userroot)
    Backends importation 100%
    Copy to Clipboard Toggle word wrap

    命令将 nsslapd-backend-implement 全局配置参数设置为 mdb,并通过设置 nsslapd-mdb-max-size 参数值来计算您可以调整的数据库大小。

  2. 删除迁移 .ldif 文件和旧数据库:

    # dsctl instance_name dblib cleanup
    cleanup dbmapdir=/var/lib/dirsrv/slapd-instance_name/db dbhome=/dev/shm/slapd-instance_name dblib=mdb
    Copy to Clipboard Toggle word wrap

请注意,您可以使用 dsctl instance_name dblib mdb2bdb 命令从 LMDB 迁移到 BDB。

验证

  • 检查 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
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat