Docs 主页 → 开发应用程序 → MongoDB Manual
管理日志记录
在此页面上
MongoDB 对磁盘日志采用预写式日志,以保证写操作的持久性。
WiredTiger 存储引擎崩溃后不需要通过记录日志来保证一致状态。在恢复期间,数据库将恢复到最后一个一致的检查点。但是,如果 MongoDB 在检查点之间意外退出,则需要记录日志来恢复最后一个检查点之后发生的写入操作。
如果 mongod
意外停止,该程序可以恢复写入日志的所有内容。MongoDB 将在重启时重新应用写入操作并保持一致的状态。默认情况下,最大的丢失写入(即未对日志进行的写入)是最后 100 毫秒内进行的写入,加上执行实际日志写入所需的时间。有关默认值的更多信息,请参阅 commitIntervalMs
。
步骤
获取提交确认
监控日志状态
serverStatus
命令/ db.serverStatus()
方法返回 wiredTiger.log
,其中包含日志的统计信息。
意外关闭后恢复数据
崩溃后重新启动时,MongoDB 会在服务器可用之前播放位于日志目录中的所有日志文件。如果 MongoDB 必须重新播放日志文件,mongod
会在日志输出中记录这些事件。
没有理由运行 --repair
。
更改 WiredTiger 日志压缩器
对于 WiredTiger 存储引擎,MongoDB 默认使用snappy
压缩器作为日志。为mongod
实例指定不同的压缩算法或不进行压缩:
提示
如果在此过程中遇到 mongod
非正常关机,则必须使用旧的压缩器设置来使用日志文件进行恢复。恢复后,您可以重试该过程。