如果我删除3.1G的日志文件,sudo service mongodb restart
会失败。但是,此文件占用了太多空间。我怎么解决这个问题?如何删除它?
bash$ du -sh /var/lib/mongodb/*
4.0K _tmp
65M auction_development.0
128M auction_development.1
17M auction_development.ns
3.1G journal
4.0K mongod.lock
最佳答案
TL;DR:你有两个选择。在启动 MongoDB 到 limit the size of the journal files 时使用 --smallfiles
启动选项到 128MB,或使用 --nojournal
选项关闭日志。在生产环境中使用 --nojournal
通常是个坏主意,而且在开发环境中使用不同的写入关注点通常是有意义的,这样您就不会在 dev 和 prod 中使用不同的代码。
长答案: 不,删除日志文件是不安全的。日记的想法是这样的:
写入。现在,为了使写入持久化(并使数据库持久化),写入必须以某种方式进入磁盘。
不幸的是,写入磁盘需要 eon compared to writes to the RAM ,所以数据库处于两难境地:不写入磁盘是有风险的,因为意外关闭会导致数据丢失。但是每次写入操作都写入磁盘会严重降低数据库的性能,以至于无法用于实际用途。
现在,数据库不再写入数据文件本身,也不再为每个请求都执行此操作,而是简单地附加到日志文件中,其中存储了尚未提交到实际数据文件的所有操作。这要快得多,因为文件已经“热”了,因为它一直在被读写,而且它只是一个文件,而不是一堆文件,最后,因为它每 100 毫秒批量写入所有待处理的操作默认。在某些事情中删除此文件会造成严重破坏。
关于linux - 删除mongodb的日志文件安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19533019/