mongo中oplog介绍

一、概念


oplog 是用于存储 MongoDB 数据库所有数据的操作记录的,有点类似于 mysql 的 binlog 日志,(实际只记录增删改和一些系统命令操作,查是不会记录的)
在进行修改操作时,客户端在主节点发送命令之后,所有从节点会将操作的数据全部备份一次,所有不管主节点还是从节点,所有的记录都是一致的,符合幂等性。

二、空间大小

对于常用的window或者unix来说,空间的额默认值如下:

引擎类型oplog大小下限上限
内存物理内存的5%50MB50GB
WiredTiger空闲磁盘的5%990MB50GB

备注:MongoDB 中的wiredtiger 是支持事务的一个数据库引擎

三、增删改操作的日志记录


(删除、修改)
经过实践,发现用户的一次删除请求,如果删除了N条记录,那么oplog中将记录N条日志,并且日志中会记录待删除记录的“_id”字段。与用户的删除请求的参数无关。

【总结性】
oplog记录的不是用户的原始命令,而是对应的逻辑命令,通过这种方式可以满足oplog的幂等性,但是也会衍生出可能产生大量oplog记录的问题

五、应用


【利用MongoDB中oplog机制实现准实时数据的操作监控】
实现原理:mongo有一个自身的机制就是主从复制,继续的日志记录中存在时间,数据操作类型。这时候要是能获取到log命令,解析命令发现存在的所需监控的操作类型,就可以进行其他操作。

【代码】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值