环境

  • MongoDB 版本:2.6.5
  • 操作系统:Windows 7 SP1 (因为只有一台机器,所以会采用多实例来记录)
  • 在 C:\Windows\System32\drivers\etc\hosts 中添加如下配置:
127.0.0.1      replset 

  • 三个节点结构如下图:

   

要求

1 个 Primary 节点,2 个 Secondary 节点,其中 1 个 Secondary 节点作为 Arbiter(仲裁) 节点。

三个节点的配置文件

primary

replSet = rs1# 端口
port = 29031# 日志
logpath = F:\replSet\master\logFiles\mongodb.log# 数据库
dbpath = F:\replSet\master\data

secondary-1

replSet = rs1# 端口
port = 29032# 日志
logpath = F:\replSet\slaver-1\logFiles\mongodb.log# 数据库
dbpath = F:\replSet\slaver-1\data 

secondary-2 —— 作为仲裁(Arbiter)节点

replSet = rs1# 端口
port = 29033# 日志
logpath = F:\replSet\slaver-2\logFiles\mongodb.log# 数据库
dbpath = F:\replSet\slaver-2\data 

其实三个配置文件除了端口号其他都一样。这里我选择了 29031 作为 Primary 节点 。

启动三个节点

分别进入三个 MongoDB 主程序的 bin 目录 然后对应分别执行下面的三句命令:

F:\replSet\primary\bin> mongod -f ../primary.ini
F:\replSet\secondary-1\bin> mongod -f ../secondary-1.ini
F:\replSet\secondary-2\bin> mongod -f ../secondary-2.ini 

配置 Primary 节点

config_rs1 = {_id : "rs1",members : [ { _id:0, host:"replset:29031", priority:1 },{ _id:1, host:"replset:29032", priority:1 },{ _id:2, host:"replset:29033", priority:1, "arbiterOnly": true } ]}
rs.initiate(config_rs1)

进入 primary 节点的 bin 目录打开控制台通过命令:mongo --port 29031 连接到 primary 节点。分别执行以上两行命令。看到如下图信息表示配置成功:

注意事项

默认只可以从 primary 节点读写数据,secondary 节点不支持读写,在 secondary 节点执行 rs.slaveOk() 命令可让 secondary 节点支持读写。

其他

  • 生产环境中应该还有一个仲裁节点,它不接受复制的数据。当 primary 节点出现问题(如:宕机)之后,它会从新选出一个 secondary 节点作为 primary 节点,以保证生产线不会出问题。原来的 primary 节点修复后将做为 secondary 节点存在。
  • 单机配置复制集时,MongoDB 添加仲裁节点时 host 不能用 localhost 这个主机名 ,否则会提示重复的主机名(Duplicate host names)错误。解决办法就是文章开头说的在 hosts 做个映射。

参考资料

  http://docs.mongodb.org/manual/core/replication/

  http://docs.mongodb.org/manual/tutorial/add-replica-set-arbiter/

  http://docs.mongodb.org/manual/reference/method/db.createUser/

  http://blog.csdn.net/irelandken/article/details/8003315

  http://liyanblog.cn/articles/2013/01/15/1358217684805.html

MongoDB 复制集(Replica Set) 配置(Windows 版)相关推荐

  1. MongoDB复制集原理和配置

    MongoDB高手课_MongoDB_NoSQL-极客时间极客时间推出的MongoDB高手课是帮助互联网从业者学习MongoDB.NoSQL的在线课程,极客时间是面向IT领域的知识服务产品,致力于帮助 ...

  2. MongoDB 复制集节点增加移除及节点属性配置

    复制集(replica Set)或者副本集是MongoDB的核心高可用特性之一,它基于主节点的oplog日志持续传送到辅助节点,并重放得以实现主从节点一致.再结合心跳机制,当感知到主节点不可访问或宕机 ...

  3. MongoDB 复制集 (一) 成员介绍

       一 MongoDB 复制集简介          MongoDB复制集机制主要分为两种:          Master-Slave    (主从复制)       这个已经不建议使用     ...

  4. 配置MongoDB复制集

    什么是复制集? 复制集是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复. 复制集的优势如下: 让数据更安全 高数据可用性 ...

  5. Raft与MongoDB复制集协议比较

    在一文搞懂raft算法一文中,从raft论文出发,详细介绍了raft的工作流程以及对特殊情况的处理.但算法.协议这种偏抽象的东西,仅仅看论文还是比较难以掌握的,需要看看在工业界的具体实现.本文关注Mo ...

  6. MongoDB复制集(Replication Sets)介绍

    近年来,随着大数据越来越火,非关系型数据库的重要性被越来越多的人所认知,越来越多的开发者逐渐加入到NoSQL的阵营中.我们知道NoSQL是Not Only SQL的意思,既然如此,很多关系型数据库所支 ...

  7. MongoDB 复制集的选举原理

    复制的原理         复制时基于啊哦做日志 oplog , 相当于 MySQL 中的二进制日志,只记录发生改变的记录.复制是将主节点的oplog 日志同步并应用到其他从节点的过程. 选举的原理 ...

  8. esp8266驱动_ESP8266配置windows版

    ESP8266配置windows版 esp8266上搭载了cp210x芯片.负责开发板和电脑进行通信, https://cn.silabs.com/developers/usb-to-uart-bri ...

  9. MongoDB复制集搭建主服务器模拟切换

    前言 Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Second ...

  10. MongoDB 复制集那点事儿

    何以高可用? 我们以前用Mysql的时候,经常是一台服务器走天下,如果只是用于学习,是没有问题的,但是在生产环境中,这样的风险是很大的,如果服务器因为网络原因或者崩溃了,就会导致数据库一段时间了不可用 ...

最新文章

  1. Linux设置环境变量小结
  2. windbg查看设备栈设备树学习总结
  3. typescript ajax,TypeScript的应用方式
  4. VB为自己的程序设定消息(可接收处理)
  5. (转载)NET面向上下文、AOP架构模式(实现)
  6. 通过 GitHub Actions 自动创建 Github Release
  7. 下列python语言、返回结果不是uc_MKAN1-UC 5103作业代写、代做Analytics作业、Java,Python,c/c++程序语言作业代做...
  8. 解决python中html 代码被注释掉 依旧被解释导致报错ERROR:tornado.access:500 GET /home (xxx.xxx.xxx.xxx)
  9. GD32 使用stm32 固件库
  10. 高性能MYSQL读书笔记1
  11. Topcoder 658Div2
  12. codeforces C. Sonya and Problem Wihtout a Legend(dp or 思维)
  13. iOS开发——策略模式
  14. [Azure][PowerShell][ASM][04]Storage
  15. 帧中继的基本配置(Basic FrameRealy)
  16. qq登录界面及其实现
  17. PDF文档无法注释或高亮的解决办法
  18. 内燃机设计课设 过量空气系数与温度表对应关系自动查询
  19. 多媒体前端技术入门指南
  20. Linux设置小红点键盘,让Ubuntu完美支持Thinkpad小红点Trackpoint

热门文章

  1. Xcode不能真机调试运行
  2. LA 4794 - Sharing Chocolate dp
  3. MapGIS二调数据裁剪工具
  4. 简单的实现了Dijkstra,
  5. 基于 Mean-shift的稳健性可视跟踪研究
  6. 关于使用mac聚焦搜索无法搜索软件的情况
  7. Codeforces1005E1 - Median on Segments (Permutations Edition)(中位数计数)
  8. 利用EasyRecovery恢复照片文件的技巧
  9. 苹果移动设备用什么管理比较好?有什么推荐?
  10. elementui 日期选择值格式