19.2. 手动减少大型更改日志的大小


在某些情况下,比如如果没有启用复制更改日志修剪,则更改日志可能会增加到超大的大小。要解决这个问题,您可以手动缩小更改的大小。

此流程描述了如何修剪 dc=example,dc=com 后缀的 changelog。在供应商上执行此步骤。

先决条件

  • dc=example,dc=com 后缀启用复制。

流程

  1. 可选:显示 changelog 的大小:

    1. 识别 dc=example,dc=com 后缀的后端数据库:

      # dsconf <instance_name> backend suffix list
      dc=example,dc=com (userroot)

      括号中的名称是存储相应后缀数据的后端数据库。

    2. 显示 userroot 后端的 changelog 文件大小:

      # ls -lh /var/lib/dirsrv/slapd-<instance_name>/db/userroot/replication_changelog.db
      -rw-------. 1 dirsrv dirsrv 517M Jul  5 12:58 /var/lib/dirsrv/slapd-<instance_name>/db/userroot/replication_changelog.db
  2. 要在减少 changelog 大小后重置参数,显示并记录相应参数的当前值:

    # dsconf <instance_name> replication get-changelog --suffix "dc=example,dc=com"
    dn: cn=changelog,cn=userroot,cn=ldbm database,cn=plugins,cn=config
    cn: changelog
    nsslapd-changelogmaxage: 4w
    nsslapd-changelogtrim-interval: 300

    如果您在输出中没有看到任何特定属性,Directory 服务器将使用它们的默认值。

  3. 临时,减少与修剪相关的参数:

    # dsconf <instance_name> replication set-changelog --suffix "dc=example,dc=com" --max-age "300s" --max-entries 500 --trim-interval 60
    重要

    出于性能的原因,请不要永久使用太短的间隔设置。

  4. 等待- -trim-interval 参数中设置的时间过期。
  5. 压缩更改日志以重新获得磁盘空间:

    # dsconf <instance_name> backend compact-db --only-changelog
  6. 将 changelog 参数重置为值,然后再临时减少它们:

    # dsconf <instance_name> replication set-changelog --suffix "dc=example,dc=com" --max-age "4w" --trim-interval 300

验证

  • 显示 changelog 的大小:

    # ls -lh /var/lib/dirsrv/slapd-<instance_name>/db/userroot/replication_changelog.db
    -rw-------. 1 dirsrv dirsrv 12M Jul  5 12:58 /var/lib/dirsrv/slapd-<instance_name>/db/userroot/replication_changelog.db
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部