我有一个mongodb副本集。数据文件的大小非常大,因为有许多写操作。一个mongodb节点由于缺少磁盘空间而崩溃,因为一个diaglog文件为38GB。
是否有任何方式diaglog文件没有这么大,而是它创建了多个小(2GB或4GB)文件然后我将能够删除未使用的文件?
答案 0 :(得分:2)
文件应仅存在于服务器是配置服务器或启动mongod时已明确设置命令行选项的位置。
--configsvr or --diaglog
由于这是预期用于诊断特定问题,您可能不希望它一直打开。在这种情况下,请从启动中删除--diaglog
选项,除非您特意将其放在那里。
所以关键是,--diaglog
选项的存在是为了非常详细日志记录,以便您解决诊断问题。 不通常应该在生产环境中使用。
如果您真的需要它,那么您正在查看日志轮换和归档方法,这些方法有点超出此处提出的问题类型。
请参阅documentation。
答案 1 :(得分:1)
副本集不需要diaglog
parameter。它会创建一个非常详细的日志以进行故障排除,默认情况下绝对不能启用。
您可以安全地从mongod
配置中删除此参数,并删除dbpath
中的diaglog。*文件。
我怀疑您将diaglog
输出与复制oplog
(operations log)混淆。 oplog
存储在名为local
的集合中的oplog.rs
数据库中,并在初始化副本集时预先分配。对于大多数64位操作系统,oplog size默认为可用磁盘空间的5%;如MongoDB手册中所述,OS X和32位系统有一些例外。