本local
数据库
概述
每个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.system.replset
local.system.replset
包含副本集的配置对象,作为其单一文档。要查看对象的配置信息,从mongosh
中执行rs.conf()
命令。您还可以直接查询此集合。
local.oplog.rs
local.oplog.rs
是包含 操作日志(oplog) 的有界集合。您可以使用oplogSizeMB
设置在创建时设置其大小。要在副本集启动后调整 oplog 的大小,请使用 更改自托管副本集成员的 oplog 大小 过程。有关更多信息,请参阅 oplog 大小 部分。oplog 可以超出其配置大小限制,以避免删除
大多数提交点
。从 MongoDB 5.0 开始,在作为 副本集 运行的集群上,不再可以手动对 oplog 执行写操作。当作为 独立实例 运行时,对 oplog 执行写操作应仅在 MongoDB 支持的指导下进行。
限制
- 在
local
上的多文档事务 - 您无法在 多文档事务 内部对
local
数据库中的集合执行读写操作。 - 针对
local
的可重试写入 您无法在启用 可重试写入 的情况下对
local
数据库中的集合执行写入操作。重要
官方 MongoDB 驱动程序默认启用可重试写入。写入到
local
数据库的应用程序将遇到写入错误,除非 显式禁用可重试写入。要禁用可重试写入,请在 MongoDB 集群的连接字符串中指定
retryWrites=false
。