2014-02-20 62 views
1

我有一个mongodb副本集。数据文件的大小非常大,因为有很多写操作。一个mongodb节点由于缺少磁盘空间而崩溃,因为一个diaglog文件为38GB。MongoDB活动diaglog文件变得太大

是否有任何方式diaglog文件没有得到这么大,而是它创建了多个小(2GB或4GB)文件,然后我将能够删除未使用的?

+0

什么是对话框文件?你的意思是像编程语言? – Sammaye

+0

diaglog.XXX就是这样的数据文件旁边的文件(dialog.4d65d6d),写有MongoDb服务器所执行操作的诊断日志。写| |读取+写入等。 – Zango

+0

哦,你的意思是说,不,我认为日志输出到文件是非常基本的atm,你可能会更好使用监视工具,如服务器密度或其他东西 – Sammaye

回答

2

这些文件应该只存在于服务器是配置服务器的位置,或者在启动mongod时明确设置了命令行选项的位置。

--configsvr or --diaglog 

由于这是打算用于诊断您可能不希望这打开所有的时间具体问题。在这种情况下,除非您专门将其放在那里,否则请从启动中删除--diaglog选项。

所以问题是,在--diaglog选项,以便存在非常详细的日志记录的宗旨,为您二诊断问题。应该在生产环境中通常使用而不是

如果您确实需要它,那么您正在查看日志旋转和归档方法,这些方法对于此处提出的问题类型有点超出范围。

查看documentation

+0

正如我所知,diaglog = 1是oplog副本集的必选项。我错了吗?我已启用diaglog = 1副本集合工作。 – Zango

+0

@Zango这不应该是**强制**,就像你对一个副本集所说的那样,我给了你它存在的条件。如所建议的那样,除非您需要进行调试,否则请从启动中删除此选项。否则住在它并按照建议旋转日志。 –

+0

@Zango全面重新阅读答案回复以了解使用此选项的含义 –

1

副本集不需要diaglog parameter。它为故障排除创建了一个非常详细的日志,并且绝对不应默认启用。

您可以安全地从mongod配置中删除此参数,并删除dbpath中的diaglog。*文件。

我怀疑你是diaglog输出与复制oplog (operations log)混淆。 oplog存储在名为oplog.rs的集合中的local数据库中,并在您初始化副本集时进行预分配。对于大多数64位操作系统,oplog size默认为可用磁盘空间的5%;如MongoDB手册所述,OS X和32位系统有一些例外。

+1

注意:diaglog参数在MongoDB 2.5.5开发版本(参考:[SERVER-12149](https://jira.mongodb.org/browse/SERVER-12149))中已被弃用,并且将会是在未来的MongoDB服务器版本中删除。 – Stennie