查询MongoDB oplog.rs
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,oplog是Capped Collection,默认分配5%的空闲磁盘空间。来看下oplog.rs的样子:rs_test:SECONDARY> use localswitched to db loca
千家信息网最后更新 2025年02月02日查询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安全错误
数据库的锁怎样保障安全
通化软件开发招聘
pgsql数据库请求数据
有哪些常用的基因组数据库
福建刷单平台软件开发公司
登录亚马逊找不到服务器
河南省司法网络技术监定所
大学生网络安全感问卷
数据库创建界面操作
网络安全面临的挑战是什么
数据库表插入数据类型是啥
中邮消费金融软件开发岗
软件开发日语概论
武汉宜源互联网科技怎么样
山西潮流软件开发值得推荐
戴尔服务器更换主板后注意事项
数据库t3怎么安装
网站服务器最多多少人访问
网络安全教育专题班会
大华软件开发薪酬
如何消除网络安全的作文
怎么调用vs里的数据库
网络安全教育考核
安徽省咔哈网络技术
yml配置数据库密码密文
做好网络安全工作培训感想
金山云网络技术有限公司经营范围
分布式数据库的技术实现
北京的软件开发公司
云南高校网络安全专家
两个电脑同时登录一个服务器