第 4 章 调整 BDB 锁定数


当目录服务器实例使用 Berkeley 数据库(BDB)时,锁定机制控制目录服务器进程可以同时运行多少个副本。例如,在导入作业过程中,Directory 服务器在 /run/lock/dirsrv/slapd-instance_name/imports/ 目录中设置一个锁定,以防止 ns-slapd Directory Server 进程、另一个导入或导出操作运行。

如果服务器没有可用的锁定,Directory 服务器会在 /var/log/dirsrv/slapd-instance_name/errors 文件中记录以下错误:

libdb: Lock table is out of available locks
Copy to Clipboard Toggle word wrap

但是,Directory 服务器默认设置会尝试防止服务器没有锁定,以避免数据崩溃。详情请参阅 监控免费数据库锁定的数据崩溃

使用 Berkeley 数据库(BDB)锁定可能会导致数据崩溃。要避免这种情况,目录服务器默认每 500 毫秒监控剩余的空闲锁定数量,如果活跃数据库锁的数量相等或大于 90%,则目录服务器会停止所有搜索。

以下流程将间隔更改为 600 毫秒,阈值更改为 85%

注意

如果您设置了太高的间隔,则服务器可在下一次监控检查发生前退出锁定。设置太短的间隔可能会减慢服务器的速度。

先决条件

  • 目录服务器实例使用 BDB。

流程

  1. 设置间隔和阈值:

    # dsconf instance_name backend config set --locks-monitoring-enabled on --locks-monitoring-pause 600 --locks-monitoring-threshold 85
    Copy to Clipboard Toggle word wrap
  2. 重启实例:

    # dsctl instance_name restart
    Copy to Clipboard Toggle word wrap

验证

  • 显示锁定监控设置:

    # dsconf -D "cn=Directory Manager" ldap://supplier.example.com backend config get | grep "nsslapd-db-locks-monitoring"
    nsslapd-db-locks-monitoring-enabled: on
    nsslapd-db-locks-monitoring-threshold: 85
    nsslapd-db-locks-monitoring-pause: 600
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat