数据库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
。