文档菜单
文档首页
/
MongoDB 手册
/ /

为自托管部署配置日志记录

本页内容

  • 程序

MongoDB 使用 预写日志 记录到磁盘上的日志 来保证 写操作 的持久性。

WiredTiger 存储引擎不需要日志记录来保证崩溃后的数据一致性。在恢复过程中,数据库将恢复到最后一个一致性的 检查点。然而,如果 MongoDB 在检查点之间意外退出,则需要日志记录来恢复最后一次检查点之后发生的写入操作。

如果mongod意外停止,程序可以恢复写入到日志的所有内容。MongoDB在重启时会重新应用写入操作,并保持一致状态。默认情况下,丢失写入的最大范围,即未写入日志的写入,是最后100毫秒内进行的写入,加上实际执行日志写入所需的时间。有关默认值更多信息,请参阅commitIntervalMs

您可以使用写入关注j选项来获取提交确认。详细信息请参阅写入关注。

命令 serverStatus 以及方法 db.serverStatus() 返回 wiredTiger.log,其中包含关于日志的统计数据。

在崩溃后的重启过程中,MongoDB会在服务器可用之前重新播放日志目录中的所有日志文件。如果MongoDB必须重新播放日志文件,则会在日志输出中记录这些事件。

没有必要运行 --repair

使用WiredTiger存储引擎时,MongoDB默认使用snappy压缩器进行日志压缩。要为mongod实例指定不同的压缩算法或不对日志进行压缩

提示

如果在执行此过程时遇到mongod的未清理关闭,您必须使用旧的压缩器设置,通过日志文件进行恢复。一旦恢复,您可以重试此过程。

使用以下过程更改独立mongod实例的日志压缩器

  1. storage.wiredTiger.engineConfig.journalCompressor更新为新值。

    如果您使用命令行选项而不是配置文件,则必须在以下重启期间更新--wiredTigerJournalCompressor命令行选项。

  2. 执行 mongod 实例的干净关闭。例如,连接mongosh 到实例并发出 db.shutdownServer():

    db.getSiblingDB('admin').shutdownServer()
  3. 确认进程不再运行后,重新启动 mongod 实例

    • 如果您使用配置文件

      mongod -f <path/to/myconfig.conf>
    • 如果您使用的是命令行选项而不是配置文件,则更新 --wiredTigerJournalCompressor 为新值。

      mongod --wiredTigerJournalCompressor <differentCompressor|none> ...

使用以下步骤更改副本集成员的日志压缩程序

  1. 执行 mongod 实例的干净关闭。例如,连接 mongosh 到实例并发出 db.shutdownServer():

    db.getSiblingDB('admin').shutdownServer()
  2. storage.wiredTiger.engineConfig.journalCompressor更新为新值。

    如果您使用的是命令行选项而不是配置文件,则在以下重启过程中必须更新命令行选项。

  3. 重新启动 mongod 实例

    • 如果您使用配置文件

      mongod -f <path/to/myconfig.conf>
    • 如果您使用的是命令行选项而不是配置文件,则更新 --wiredTigerJournalCompressor 为新值。

      mongod --wiredTigerJournalCompressor <differentCompressor|none> ...

使用以下步骤更改分片副本集成员或配置服务器副本集成员的日志压缩程序

  1. 执行 mongod 实例的干净关闭。例如,连接 mongosh 到实例并发出 db.shutdownServer():

    db.getSiblingDB('admin').shutdownServer()
  2. storage.wiredTiger.engineConfig.journalCompressor更新为新值。

    如果您使用的是命令行选项而不是配置文件,则在以下重启过程中必须更新命令行选项。

  3. 重新启动 mongod 实例

    • 如果您使用配置文件

      mongod -f <path/to/myconfig.conf>
    • 如果您使用的是命令行选项而不是配置文件,则更新 --wiredTigerJournalCompressor 为新值。

      mongod --shardsvr --wiredTigerJournalCompressor <differentCompressor|none> --replSet ...

返回

内存中

本页内容