2015-02-06 271 views
0

我有一个关于OpenLDAP/BDB在数据目录中创建的日志文件的问题。这些文件的格式为log.XXXXXXXXXX(X是一个数字),每个文件具有相同的大小(可在DB_CONFIG中配置)。OpenLDAP BDB日志文件维护和自动删除

我在OpenLDAP和BDB文档中阅读了很多关于检查点和日志文件维护的内容。这些文件增长非常快并且需要维护似乎是正常的。通常情况下,你应该定期备份并在之后删除它们。但是如何在长时间运行的数据迁移期间处理这个问题?

在我的情况下,对375个帐户运行测试迁移,每个帐户触发3个写入请求到LDAP服务器产生6个日志文件,每个文件5MB。问题是实时系统上有超过37000个帐户需要迁移,并且不接受几千兆字节的日志文件的创建。

因此,我试图配置自动删除日志文件,但建议的解决方案不适合我。通过文档阅读后,我的结论是,我必须使通过slapd.conf中检查站,并在DB_CONFIG文件中像这样设置DB_LOG_AUTOREMOVE标志:

我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)在centos上。

+0

如果您使用HDB,您为什么会问BDB选项? – EJP 2015-02-08 22:38:50

+0

@EJP,因为它或多或少是相同的(配置方式):http://www.openldap.org/doc/admin24/backends.html – mithrandir 2015-02-09 08:29:21

回答

0

在BDB(dunno HDB)中,DB_LOG_AUTOREMOVE删除不引用数据库中当前记录的log。*文件。这与删除所有日志文件不同。

+0

我添加了这条评论,将问题提出来,因为问题仍然存在这里。 db_archive -d删除日志(除了最后一次由数据库引用的日志)是否正常? 但DB_LOG_AUTOREMOVE什么都不做。 – 2017-05-09 09:18:43