10-【MongoDB入门教程】 Journaling日志机制
Journaling日志机制 运行MongoDB如果开启了journaling日志功能,MongoDB先在内存保存写操作,并记录journaling日志到磁盘,然后才会把数据改变刷入到磁盘上的数据文件。为了保证journal日志文件的一致性,写日志是一个原子操作。本文将讨论MongoDB中journaling日志的实现机制。 Journal日志文件 如果开启了journal日志功能,MongoDB会在数据目录下创建一个 journal 文件夹,用来存放预写重放日志。同时这个目录也会有一个 last-sequence-number 文件。如果MongoDB安全关闭的话,会自动删除此目录下的所有文件,如果是崩溃导致的关闭,不会删除日志文件。在MongoDB进程重启的过程中,journal日志文件用于自动修复数据到一个一致性的状态。 journal日志文件是一种往文件尾不停追加内容的文件,它命名以 j._ 开头,后面接一个数字(从0开始)作为序列号。如果文件超过1G大小,MongoDB会新建一个journal文件 j._1 。只要MongoDB把特定日志中的所有写操作刷入到磁盘数据文件,将会删除此日志文件。因为数据已经持久化,不再需要用它来重放恢复数据了。journal日志文件一般情况下只会生成两三个,除非你每秒有大量的写操作发生。 如果你需要的话,你可以使用 storage