当前位置: 首页 > 工具软件 > OpLog4j > 使用案例 >

mongo中oplog介绍

盖翰池
2023-12-01

一、概念


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命令,解析命令发现存在的所需监控的操作类型,就可以进行其他操作。

【代码】

 类似资料: