介绍一下 MongoDB local库中表
在 MongoDB 中,local 数据库是一个特殊的数据库,它用于存储 MongoDB 内部使用的数据。
这些数据包括副本集和分片集群的状态信息、操作日志、配置信息等等。
在 local 数据库中,有一些特殊的集合(表),它们用于存储不同类型的数据。
下面是一些常见的 local 集合:
-
oplog.rs:这个集合存储了所有的写操作日志,包括插入、更新、删除等操作。它是 MongoDB 副本集的核心组件,用于实现数据的同步和复制。
-
config.system.sessions:这个集合存储了所有的客户端会话信息,包括会话 ID、过期时间、用户信息等等。这些信息可以用于实现会话管理和安全控制。
-
startup_log:这个集合记录了 MongoDB 服务器的启动日志,包括服务器版本、启动时间、配置信息等等。它可以用于故障排查和性能优化。
-
config.system.replset:这个集合存储了副本集的配置信息,包括成员列表、优先级、延迟等等。它可以用于实现副本集的管理和维护。
-
config.system.version:这个集合存储了 MongoDB 的版本信息,包括当前版本号、升级历史等等。它可以用于版本管理和升级控制。
除了以上这些集合,local 数据库中还有很多其他的集合,它们都扮演着不同的角色,用于存储不同类型的数据。了解这些集合的作用和用途,可以帮助我们更好地理解 MongoDB 的内部工作原理,并实现更好的管理和维护。
介绍一下 oplog.rs j集合中各字段的含义和作用
oplog.rs 是 MongoDB 中 local 数据库的一个集合,用于存储所有的写操作日志,包括插入、更新、删除等操作。
它是 MongoDB 副本集的核心组件,用于实现数据的同步和复制。
oplog.rs 集合中包含以下字段:
-
ts:表示当前操作的时间戳,是一个 BSON 时间戳类型,包括一个 4 字节的时间戳和一个 4 字节的递增计数器。
-
h:表示当前操作的唯一标识符,是一个 BSON 二进制类型,包括一个 12 字节的 ObjectId。
-
v:表示当前操作所使用的 oplog 格式版本号,是一个整数类型,通常为 0。
-
op:表示当前操作的类型,是一个字符串类型,包括 i(插入)、u(更新)、d(删除)等。
-
ns:表示当前操作的命名空间,是一个字符串类型,包括数据库名称和集合名称,例如 mydb.mycollection。
-
o:表示当前操作的文档数据,是一个 BSON 类型,包括插入、更新或删除的文档数据。
-
o2:表示当前操作所涉及的文档的查询条件,是一个 BSON 类型,仅在更新和删除操作中存在。
通过对 oplog.rs 集合中的字段进行解析,我们可以了解每个操作的类型、时间、文档数据以及所涉及的命名空间和查询条件等信息。这些信息可以用于实现 MongoDB 数据的同步和复制,同时也可以用于故障排查和性能优化。
> use local
> db.oplog.rs.findOne()
{
"ts" : Timestamp(1656919333, 1),
"t" : NumberLong(7),
"h" : NumberLong("1504168882813175719"),
"v" : 2,
"op" : "u",
"ns" : "testDB_testColl",
"o2" : {
"_id" : "5e683fffd08ec57c83e96cf3"
},
"o" : {
"_id" : "5e683fffd08ec57c83e96cf3",
"userId" : "fd12f98c-7789-11e7-bcae-005056a350a6",
"loginTime" : ISODate("2022-07-04T07:22:13.020Z"),
"sessionId" : "0f860b1c-aae0-43d5-8663-47445118b0ad",
"ip" : "192.168.1.110",
"uuid" : "a1109dac-6b14-4c9e-973e-7cd851764731",
"source" : "web",
"kickOut" : false
}
}
网友评论