MongoDB Replica Set使用经验分享
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MongoDB Replica Set使用经验分享,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2319字,纯文字阅读大概需要4分钟。
内容图文

MongoDB Replica Set是MongoDB官方推荐的主从复制和高可用方案,用于替代原有的Master-Slave主从复制方案。Replicat Set具有自动切换功能,当Primary挂掉之后,可以自动由Replica Set中的某一个Secondary来切换到Primary,以实现高可用的目的,不像MySQL那样需要使用第三方软件。
目前很多游戏公司都开始使用MongoDB作为数据库,我们公司线上使用的版本是2.4.6.
一 MongoDB Replica Set的原理
复制主要用于备份、灾难恢复和读写分离。一个Replica Set就是一组mongod实例。Replica Set中的Primary接收所有的写操作,Secondaries从Primary复制操作然后应用到自己的data set。
650) this.width=650;" src="http://docs.mongodb.org/v2.4/_images/replica-set-read-write-operations-primary.png" />
650) this.width=650;" src="http://docs.mongodb.org/v2.4/_images/replica-set-primary-with-two-secondaries.png" />
650) this.width=650;" src="http://docs.mongodb.org/v2.4/_images/replica-set-primary-with-secondary-and-arbiter.png" />
650) this.width=650;" src="http://docs.mongodb.org/v2.4/_images/replica-set-trigger-election.png" />
一个Replica Set中的成员角色有三种:Primary,Secondary和Arbiter。
Primary 接收来自客户端的所有的写操作,一个Replica Set中有且只有一个Primary。Primary如果宕掉,Replica Set会自动选举一个Secondary成为Primary。Primary将它data sets的所有操作都记录到oplog中。
Secondary Secondary从Primary复制oplog,然后将oplog中的操作应用到自己的data sets。Secondary和Primary之间是异步复制,也就是Secondary中的数据可能不是最新的。默认情况下,Secondary不可读不可写,但是可以通过设置运行客户端从Secondary读。
Arbiter Arbiter不需要维护自己的data sets,只是当Primary挂掉之后参与投票选择哪个Secondary可以升级为Primary。当Replica Set中的成员个数为偶数个时,就需要添加一个Arbiter用于投票选举哪个可以升级为Primary。Arbiter对硬件的要求很低。不能在Primary或者Secondary主机上运行Arbiter。
一个Replica Set可以最多拥有12个成员,但是只有7个成员可以同时参与投票选举成为Primary,如果成员数量超过12,就需要使用Master-Slave主从复制方式。
部署一个Replica Set至少需要三个成员,一个Arbiter,一个Secondary和一个Primary或者一个Primary,两个Secondary。
可以将Secondary配置为以下几种特殊用途:
A.在选举中阻止其成为Primary,只用作备份数据。通过设置优先级priority为0来实现。
650) this.width=650;" src="http://docs.mongodb.org/v2.4/_images/replica-set-three-members-geographically-distributed.png" />
B.阻止应用程序从它读,通过设置优先级priority为0和设置hidden为true来实现。
650) this.width=650;" src="http://docs.mongodb.org/v2.4/_images/replica-set-hidden-member.png" />
一个隐藏的成员同样复制Primary的数据,但是对于客户端应用程序来讲,它不可见。
C.保留历史镜像数据用于数据回档,比如如果误删除数据,可以使用Delayed Replica Set成员中的数据恢复。
650) this.width=650;" src="http://docs.mongodb.org/v2.4/_images/replica-set-delayed-member.png" />
Delayed members即延时成员会延时从Primary复制oplog
参考文档
http://docs.mongodb.org/v2.4/replication/
本文出自 “Linux SA John” 博客,请务必保留此出处http://john88wang.blog.51cto.com/2165294/1598982
原文:http://john88wang.blog.51cto.com/2165294/1598982
内容总结
以上是互联网集市为您收集整理的MongoDB Replica Set使用经验分享全部内容,希望文章能够帮你解决MongoDB Replica Set使用经验分享所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。