一尘不染

删除mongodb的日志文件是否安全?

linux

如果删除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

阅读 641

收藏
2020-06-07

共1个答案

一尘不染

TL;
DR:您有两个选择。--smallfiles启动MongoDB时,请使用启动选项将日记文件的大小限制为128MB,或使用该--nojournal选项关闭日记功能--nojournal在生产中使用通常是个坏主意,在开发中也使用不同的写关注点通常很有意义,因此您在开发和生产中没有不同的代码。

长答案 :不,删除日志文件是不安全的。日记的想法是这样的:

进入写入操作。现在,要使该写入操作具有持久性(并使数据库具有持久性),则必须以某种方式将写入操作转到磁盘。

不幸的是,与对RAM的写入相比,对磁盘的写入要困难得多,因此数据库处于两难境地:不写入磁盘是有风险的,因为意外关闭会导致数据丢失。但是,每执行一次写入操作就将磁盘写入磁盘会严重降低数据库的性能,以致无法用于实际目的。

现在,数据库将不再追加写入数据文件本身,也不是针对每个请求执行写入操作,而是将追加到日记文件中,该日志文件将存储尚未提交给实际数据文件的所有操作。这要快得多,因为文件一直被读写,因此它已经很“热”了,它只是一个文件,而不是一堆文件,最后,因为它每隔100ms批量写入所有待处理的操作默认。在某些情况下删除此文件会造成严重破坏。

2020-06-07