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