MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3293字,纯文字阅读大概需要5分钟。
内容图文
![MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理](/upload/InfoBanner/zyjiaocheng/451/eea04093830a4512a08b3930663dc8aa.jpg)
1:local库是MongoDB的系统库,记录着时间戳和索引和复制集等信息
gechongrepl:PRIMARY> use local switched to db local gechongrepl:PRIMARY> show tables me oplog.rs replset.minvalid slaves startup_log system.indexes system.replset temp
2:local库下的每个集合分别记录的内容
local库下面的me集合保存了服务器名称 local库下面的replset.minvalid集合保存了数据库最新操作的时间戳 local库下面的startup_log集合记录这mongod每一次的启动信息 local库下面的system.indexes集合记录当前库的所有索引信息 local库下面的system.replset记录着复制集的成员配置信息rs.conf()读取这个集合 local库下面的oplog.rs集合记录这所有操作 MongoDB就是通过oplog.rs来实现数据同步的。当Primary节点插入一条数据后,oplog.rs集合中就会多一条记录
3:模拟数据插入,观察oplog.rs的变化
gechongrepl:PRIMARY> use testoplog switched to db testoplog gechongrepl:PRIMARY> db.user.insert({"name":"shanghai"}) WriteResult({ "nInserted" : 1 }) gechongrepl:PRIMARY> use local switched to db local gechongrepl:PRIMARY> db.oplog.rs.find() { "_id" : ObjectId("5593628989b809ea7938cc09"), "ts" : Timestamp(1435721382, 1), "h" : NumberLong("-5496045509734463589") } { "ts" : Timestamp(1435733782, 1), "h" : NumberLong("3093554192925239676"), "v" : 2, "op" : "n", "ns" : "", "o" : { "msg" : "Reconfig set", "version" : 57 } } { "ts" : Timestamp(1435734113, 1), "h" : NumberLong("2858511747060359631"), "v" : 2, "op" : "n", "ns" : "", "o" : { "msg" : "Reconfig set", "version" : 58 } } { "ts" : Timestamp(1435741269, 1), "h" : NumberLong("-4071658638798562344"), "v" : 2, "op" : "i", "ns" : "test.testfile", "o" : { "_id" : ObjectId("5593ac558336a98fb6114045"), "a" : "1" } } { "ts" : Timestamp(1435745379, 1), "h" : NumberLong("2363981837641873443"), "v" : 2, "op" : "i", "ns" : "test.testfile", "o" : { "_id" : ObjectId("5593bc638336a98fb6114046"), "a" : "1" } } { "ts" : Timestamp(1435745380, 1), "h" : NumberLong("1415177671185209492"), "v" : 2, "op" : "i", "ns" : "test.testfile", "o" : { "_id" : ObjectId("5593bc648336a98fb6114047"), "a" : "1" } } { "ts" : Timestamp(1435745570, 1), "h" : NumberLong("-8642862752172159081"), "v" : 2, "op" : "n", "ns" : "", "o" : { "msg" : "Reconfig set", "version" : 59 } } { "ts" : Timestamp(1435746145, 1), "h" : NumberLong("4895205971378560688"), "v" : 2, "op" : "n", "ns" : "", "o" : { "msg" : "Reconfig set", "version" : 60 } } { "ts" : Timestamp(1435803750, 1), "h" : NumberLong("-6248101199236942548"), "v" : 2, "op" : "i", "ns" : "testoplog.user", "o" : { "_id" : ObjectId("5594a065a26e221874aa3e32"), "name" : "shanghai" } }
ts:两个参数:第一个表示时间戳;第二个表示每秒操作的次数 op:操作码:i表示插入; ns:操作的命名空间 o:表示插入操作包含的文档对象
4:Secondary和Primary数据同步的详细过程
当Primary节点完成数据操作后,Secondary会做出一系列的动作保证数据的同步: 1:检查自己local库的oplog.rs集合找出最近的时间戳。 2:检查Primary节点local库oplog.rs集合,找出大于此时间戳的记录。 3:将找到的记录插入到自己的oplog.rs集合中,并执行这些操作。
注意:新同步过来的数据并不能查看。Secondary默认不可读不可写。如果需要查看要执行rs.slaveOk(),则当前的连接可以查看,后续的连接还是不可读不可写。
关于oplog.rs的注意事项详见上一篇博客:
http://www.cnblogs.com/xiaoit/p/4585363.html
MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理
标签:
本文系统来源:http://www.cnblogs.com/xiaoit/p/4615352.html
内容总结
以上是互联网集市为您收集整理的MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理全部内容,希望文章能够帮你解决MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。