local
数据库
Overview
每个 mongod
实例都有自己的 local
数据库,其中其他特定于实例的数据和复制进程中存储的数据。local
数据库对于复制不可见:不会复制 local
数据库中的集合。
所有 mongod
实例上的集合
local.startup_log
启动时,每个
mongod
实例都会在startup_log
中插入一个文档,其中包含有关mongod
实例本身的诊断信息和主机信息。startup_log
是一个固定大小集合。此信息主要用于诊断目的。例如,以下是
startup_log
集合中的文档原型:{ "_id" : "<string>", "hostname" : "<string>", "startTime" : ISODate("<date>"), "startTimeLocal" : "<string>", "cmdLine" : { "dbpath" : "<path>", "<option>" : <value> }, "pid" : <number>, "buildinfo" : { "version" : "<string>", "gitVersion" : "<string>", "sysInfo" : "<string>", "loaderFlags" : "<string>", "compilerFlags" : "<string>", "allocator" : "<string>", "versionArray" : [ <num>, <num>, <...> ], "javascriptEngine" : "<string>", "bits" : <number>, "debug" : <boolean>, "maxBsonObjectSize" : <number> } } startup_log
集合中的文档包含以下字段:local.startup_log.startTime
反映服务器启动时间的 UTC ISODate 值。
local.startup_log.startTimeLocal
一个以系统本地时区报告
startTime
的字符串。
local.startup_log.cmdLine
报告
mongod
运行时选项及其值的嵌入式文档。
local.startup_log.buildinfo
一个嵌入式文档,报告了用于编译此
mongod
的编译环境和设置的信息。这与buildInfo
的输出相同。参见buildInfo
。
副本集成员上的集合
local.system.replset
local.system.replset
将复制集的配置对象作为其单个文档进行保存。要查看对象的配置信息,请从mongosh
发出
rs.conf()
。也可以直接查询此集合。
local.oplog.rs
local.oplog.rs
是存放 oplog 的固定大小集合。您可以在创建时使用oplogSizeMB
设置来设置其大小。要在副本集启动后调整 oplog 大小,请使用更改自管理副本集成员的 Oplog 大小过程。有关其他信息,请参阅 Oplog 大小部分。oplog 的大小可能会超过其配置的大小限制,从而避免删除
majority commit point
。
从 MongoDB 5.0 开始,不再支持在作为副本集运行的集群上对 oplog 执行手动写入操作。作为独立实例运行时对 oplog 执行写入操作只能在 MongoDB 支持团队的指导下完成。
限制
local
上的多文档事务- 无法在多文档
中对
local
数据库的集合执行读/写操作。 - 针对
local
的可重试写入 启用可重试写入功能后,您无法对
local
数据库中的集合执行写入操作。
重要
默认情况下,官方 MongoDB 驱动程序启用可重试写入。除非
显式禁用可重试写入,否则,写入
local
数据库的应用程序会遇到写入错误。要禁用可重试写入,请在 MongoDB 集群连接字符串
中指定
retryWrites=false
。