19.2. 手动减少大型更改日志的大小
在某些情况下,比如如果没有启用复制更改日志修剪,则更改日志可能会增加到超大的大小。要解决这个问题,您可以手动缩小更改的大小。
此流程描述了如何修剪 dc=example,dc=com 后缀的 changelog。在供应商上执行此步骤。
先决条件
-
为
dc=example,dc=com后缀启用复制。
流程
可选:显示 changelog 的大小:
识别
dc=example,dc=com后缀的后端数据库:# dsconf <instance_name> backend suffix list dc=example,dc=com (userroot)括号中的名称是存储相应后缀数据的后端数据库。
显示
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
要在减少 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 服务器将使用它们的默认值。
临时,减少与修剪相关的参数:
# dsconf <instance_name> replication set-changelog --suffix "dc=example,dc=com" --max-age "300s" --max-entries 500 --trim-interval 60重要出于性能的原因,请不要永久使用太短的间隔设置。
-
等待-
-trim-interval参数中设置的时间过期。 压缩更改日志以重新获得磁盘空间:
# dsconf <instance_name> backend compact-db --only-changelog将 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