MongoDB 复制集(Replica Set) 配置(Windows 版)
环境
- 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 版)相关推荐
- MongoDB复制集原理和配置
MongoDB高手课_MongoDB_NoSQL-极客时间极客时间推出的MongoDB高手课是帮助互联网从业者学习MongoDB.NoSQL的在线课程,极客时间是面向IT领域的知识服务产品,致力于帮助 ...
- MongoDB 复制集节点增加移除及节点属性配置
复制集(replica Set)或者副本集是MongoDB的核心高可用特性之一,它基于主节点的oplog日志持续传送到辅助节点,并重放得以实现主从节点一致.再结合心跳机制,当感知到主节点不可访问或宕机 ...
- MongoDB 复制集 (一) 成员介绍
一 MongoDB 复制集简介 MongoDB复制集机制主要分为两种: Master-Slave (主从复制) 这个已经不建议使用 ...
- 配置MongoDB复制集
什么是复制集? 复制集是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复. 复制集的优势如下: 让数据更安全 高数据可用性 ...
- Raft与MongoDB复制集协议比较
在一文搞懂raft算法一文中,从raft论文出发,详细介绍了raft的工作流程以及对特殊情况的处理.但算法.协议这种偏抽象的东西,仅仅看论文还是比较难以掌握的,需要看看在工业界的具体实现.本文关注Mo ...
- MongoDB复制集(Replication Sets)介绍
近年来,随着大数据越来越火,非关系型数据库的重要性被越来越多的人所认知,越来越多的开发者逐渐加入到NoSQL的阵营中.我们知道NoSQL是Not Only SQL的意思,既然如此,很多关系型数据库所支 ...
- MongoDB 复制集的选举原理
复制的原理 复制时基于啊哦做日志 oplog , 相当于 MySQL 中的二进制日志,只记录发生改变的记录.复制是将主节点的oplog 日志同步并应用到其他从节点的过程. 选举的原理 ...
- esp8266驱动_ESP8266配置windows版
ESP8266配置windows版 esp8266上搭载了cp210x芯片.负责开发板和电脑进行通信, https://cn.silabs.com/developers/usb-to-uart-bri ...
- MongoDB复制集搭建主服务器模拟切换
前言 Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Second ...
- MongoDB 复制集那点事儿
何以高可用? 我们以前用Mysql的时候,经常是一台服务器走天下,如果只是用于学习,是没有问题的,但是在生产环境中,这样的风险是很大的,如果服务器因为网络原因或者崩溃了,就会导致数据库一段时间了不可用 ...
最新文章
- Linux设置环境变量小结
- windbg查看设备栈设备树学习总结
- typescript ajax,TypeScript的应用方式
- VB为自己的程序设定消息(可接收处理)
- (转载)NET面向上下文、AOP架构模式(实现)
- 通过 GitHub Actions 自动创建 Github Release
- 下列python语言、返回结果不是uc_MKAN1-UC 5103作业代写、代做Analytics作业、Java,Python,c/c++程序语言作业代做...
- 解决python中html 代码被注释掉 依旧被解释导致报错ERROR:tornado.access:500 GET /home (xxx.xxx.xxx.xxx)
- GD32 使用stm32 固件库
- 高性能MYSQL读书笔记1
- Topcoder 658Div2
- codeforces C. Sonya and Problem Wihtout a Legend(dp or 思维)
- iOS开发——策略模式
- [Azure][PowerShell][ASM][04]Storage
- 帧中继的基本配置(Basic FrameRealy)
- qq登录界面及其实现
- PDF文档无法注释或高亮的解决办法
- 内燃机设计课设 过量空气系数与温度表对应关系自动查询
- 多媒体前端技术入门指南
- Linux设置小红点键盘,让Ubuntu完美支持Thinkpad小红点Trackpoint