第 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
权限。
流程
开始从 BDB 迁移到 LMDB:
dsctl instance_name dblib bdb2mdb
# dsctl instance_name dblib bdb2mdb ... Backends importation 0.000000% (userroot) Backends importation 100%
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 命令将
nsslapd-backend-implement
全局配置参数设置为mdb
,并通过设置nsslapd-mdb-max-size
参数值来计算您可以调整的数据库大小。删除迁移
.ldif
文件和旧数据库:dsctl instance_name dblib cleanup
# 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 Copied! Toggle word wrap Toggle overflow
请注意,您可以使用 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
# 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