关于单台MongoDB实例开启Oplog的过程详解


本文整理自网络,侵删。

背景

随着数据的积累,MongoDB中的数据量越来越大,数据分析团队从数据库中抽取变化数据(假如依据栏位createdatetime,transdatetime),越来越困难。我们知道MongoDB的副本集有一个数据结构Oplog,里面存储了Primary节点的所有写操作(此处的写操作是指查询以外的操作,包含 更新、异常等)。其实,数据的抽取完全可以从Oplog中抓取这些操作,然后去重放。

oplog是local库下的一个固定集合,Secondary就是通过查看Primary 的oplog这个集合来进行复制的。每个节点都有oplog,记录这从主节点复制过来的信息,这样每个成员都可以作为同步源给其他节点。

Oplog 可以说是Mongodb Replication的纽带了。

但是在实际的生产环境中,我们很多MongoDB 数据库是单实例的,那么我们能否在单实例数据库上开启Oplog?

答案是肯定的。

其原理就是,在单实例上配置副本集,如果配置成功了,自然就有了Oplog

配置过程

其实配置的过程比较简单。

step 1 : 在配置文件中 添加副本集参数(replSet);

step 2 :重启服务;

step 3:在local数据库或admin数据库执行初始化副本集的脚本,rs.initiate()。

注意事项

1. 在配置文件中增加副本集参数(replSet=??),MongoDB实例重启,第一次登入,执行其他命令时(例如:show dbs),会提示错误,错误信息如下,

{
"ok" : 0,
"errmsg" : "not master and slaveOk=false",
"code" : 13435,
"codeName" : "NotMasterNoSlaveOk"
}

此时一定要执行初始化的命令:

rs.initiate({ _id: "副本集名称", members: [{_id:0,host:"ServerIP:MongoDBPort"}]})

阅读剩余部分

相关阅读 >>

mongodb中的一些坑(最好不要用)

黑马云课堂mongodb实操视频的源码课件推荐

教大家8天学通mongodb——第一天 基础入门篇

mongodb性能优化及监控

mongodb 用户管理

mongodb运维相关命令介绍

mongodb实现增删改查

阿里云服务器安装mongodb的方法

mongodb常见错误与解决方法小结(mongodb中经常出现的错误)

解决mongodb占用内存过大频繁死机的方法详解

更多相关阅读请进入《mongodb》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...