我对OpenLDAP / BDB在数据目录中创建的日志文件有疑问。这些文件的格式为log.XXXXXXXXXX
(X为数字),每个文件的大小相同(可在DB_CONFIG中配置)。
我在OpenLDAP和BDB文档中阅读了很多关于检查点和日志文件维护的内容。这些文件增长非常快并且需要维护似乎是正常的。通常你应该定期备份它们并在之后删除它们。但是如何在长时间运行数据迁移期间处理这个问题?
在我的情况下,运行375个帐户的测试迁移,每个帐户向LDAP服务器触发3个写入请求,生成6个日志文件,每个文件5 MB。问题是,在实时系统上有超过37000个帐户需要迁移,并且不接受创建几千兆字节的日志文件。
因此我尝试配置自动删除日志文件,但建议的解决方案对我不起作用。阅读完文档后,我的结论是我必须通过slapd.conf启用检查点,并在DB_LOG_AUTOREMOVE
文件中设置DB_CONFIG
标志,如下所示:
我在slapd.conf中的设置:
checkpoint 128 15
我在DB_CONFIG中的设置:
set_flags DB_LOG_AUTOREMOVE
set_lg_regionmax 262144
set_lg_bsize 2097152
但是日志文件仍然存在 - 即使我将检查点设置减少到checkpoint 1 1
。如果我在数据目录中运行slapd_db_archive -d
所有这些文件,但最后一个文件被删除。
有没有人知道如何让自动删除工作?我很接近放弃并添加一个cron作业以在迁移期间运行slapd_db_archive -d
。但我不确定这是否会引起问题。
我们正在使用OpenLDAP 2.3.43和BDB后端(精确的HDB)。
答案 0 :(得分:0)
在BDB(dunno HDB)中,DB_LOG_AUTOREMOVE删除不引用数据库中当前记录的日志。*文件。这与删除所有日志文件不同。