查询MongoDB oplog.rs
发表于:2024-10-09 作者:千家信息网编辑
千家信息网最后更新 2024年10月09日,oplog是Capped Collection,默认分配5%的空闲磁盘空间。来看下oplog.rs的样子:rs_test:SECONDARY> use localswitched to db loca
千家信息网最后更新 2024年10月09日查询MongoDB oplog.rs
oplog是Capped Collection,默认分配5%的空闲磁盘空间。
来看下oplog.rs的样子:
rs_test:SECONDARY> use localswitched to db localrs_test:SECONDARY> db.oplog.rs.findOne();{ "ts" : Timestamp(1465879171, 238), "h" : NumberLong("-2275413922284641862"), "v" : 2, "op" : "u", "ns" : "MyDB.SyncTable", "o2" : { "_id" : "bbf80260-3d58-49f1-9c8c-e093d5d57527" }, "o" : { "_id" : "bbf80260-3d58-49f1-9c8c-e093d5d57527", "EntityId" : "362569", "TypeName" : "Product", "Times" : 14208, "CreateTime" : ISODate("2014-11-15T14:35:51.916Z"), "LastModified" : ISODate("2016-06-14T04:38:21.708Z"), "LastOperationTime" : ISODate("2016-06-14T04:39:30.957Z") }}
字段含义
ts:8字节的时间戳,由4字节unix timestamp + 4字节自增计数表示。
这个值很重要,在选举(如master宕机时)新primary时,会选择ts最大的那个secondary作为新primary。
op:1字节的操作类型,例如i表示insert,d表示delete。
ns:操作所在的namespace。
o:操作所对应的document,即当前操作的内容(比如更新操作时要更新的的字段和值)
o2: 在执行更新操作时的条件,仅限于update时才有该属性。
其中op,可以是如下几种情形之一:
"i": insert
"u": update
"d": delete
"c": db cmd
"db":声明当前数据库 (其中ns 被设置成为=>数据库名称+ '.')
"n": no op,即空操作,其会定期执行以确保时效性。修改配置,会产生 "n" 操作。
查询示例
oplog.rs系统集合只用于复制,不能创建索引,查询语句会很慢。
> db.oplog.rs.find({},{"ts":1}).sort({$natural: -1}){ "ts" : Timestamp(1406185666, 1) } { "ts" : Timestamp(1406180043, 1) } { "ts" : Timestamp(1406180033, 1) } { "ts" : Timestamp(1406172831, 1) } { "ts" : Timestamp(1406171938, 1) } > db.oplog.rs.find({ "ts" : { "$gte" : Timestamp(1406185630, 1) } },{"ts":1})
查询一小时内的oplog
> var SECS_PER_HOUR = 3600> var now = Math.floor((new Date().getTime()) / 1000) // seconds since epoch right now> db.oplog.rs.find({ "ts" : { "$lt" : Timestamp(now, 1), "$gt" : Timestamp(now - SECS_PER_HOUR, 1) } }
查询某一时间段内的oplog(当然注意时间是UTC存储)
> var since = Math.floor(ISODate("2014-08-12T09:00:00.000Z").getTime() / 1000)> var until = Math.floor(ISODate("2014-08-12T15:00:00.000Z").getTime() / 1000)> db.oplog.rs.find({ "ts" : { "$lt" : Timestamp(until, 1), "$gt" : Timestamp(since, 1) } })
聚合统计各个集合的UPDATE操作量
> db.oplog.rs.aggregate([ { $match: { "op":"u" }}, { $group: { _id:"$ns",count:{$sum:1}}} ])
oplog参考
Replica Set Oplog
https://docs.mongodb.com/manual/core/replica-set-oplog/
查询
字节
时间
更新
字段
数据
数据库
最大
重要
内容
名称
含义
小时
属性
情形
所在
时效
时效性
时间段
机时
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
智慧云服务器管理系统
上位机app软件开发
发电厂网络安全建设依据
数据库也有元数据信息吗
常州无线网络技术报价
内存数据库 应用场景
mssql数据库有什么用
浪潮英信服务器安装win10
深圳创途网络技术
深圳软件开发经理年薪
宁波伽伽互联网科技有限公司
基于工作过程 数据库
云手机服务器端口怎么查
软件实施还是软件开发
云层服务器
香港汇丰银行全球服务器ID
米动健康与小米运动数据库
软件开发要怎样的人
塞尔达传说电子服务器在哪
名师说计算机网络技术专业
临沂app定制软件开发哪家好
敏捷软件开发平台哪个好
好视网络技术有限公司
大乐透数据库2022
安兔兔 数据库
盒子服务器失败
创建access数据库介绍
软件实施还是软件开发
h5前端软件开发是什么
戴尔服务器电脑怎么U盘启动