详解MongoDB数据还原及同步解决思路

mongodb数据如何还原,同步到其他系统?只要我们了解了数据库日志原理,一切都是那么简单

oplog原理

Oplog.rs 表类型为 Capped Collections

- 表类型:

Capped collections它的插入速度非常快,基本和磁盘的写入速度差不多,并且支持按照插入顺序高效的查询操作。Capped collections的大小是固定的,它的工作方式很像环形缓冲器(circular buffers), 当剩余空间不足时,会覆盖最先插入的数据。

优势:

Capped collections的特点是高效插入和检索,所以最好不要在Capped collections上添加额外的索引,否则会影响插入速度。

插入快: 没有索引

检索快: natural【插入顺序】/∗默认只支持按自然顺序(即插入顺序)返回结果Cappedcollections可以使用" role="presentation">natural【插入顺序】/默认只支持按自然顺序(即插入顺序)返回结果Cappedcollections可以使用natural【插入顺序】/默认只支持按自然顺序(即插入顺序)返回结果Cappedcollections可以使用natural操作符按插入顺序的正序或反序返回结果

*/
Oplog为了保证插入性能,不允许额外创建索引。

Capped collections可以用于以下场景:

存储日志: Capped collections的first-in-first-out特性刚好满足日志事件的存储顺序;

缓存小量数据:因为缓存的特点是读多写少,所以可以适当使用索引提高读取速度。

限制:

如果更新数据,你需要为之创建索引以防止collection scan;

更新数据时,文档的大小不能改变。比如说name属性为'abc',则只能修改成3个字符的字符串,否则操作将会失败;

数据不允许删除,如果非删除不可,只能drop collection

db[‘oplog.rs'].find({}).sort({$natural: -1})

Oplog是一种特殊的Capped collections,特殊之处在于它是系统级Collection,记录了数据库的所有操作,集群之间依靠Oplog进行数据同步。Oplog的全名是local.oplog.rs,位于local数据下。

总结

相关推荐