mongodb3.6 副本集(三)mongodb 如何做数据备灾
前言
个人理解,副本集一个主要作用就是当Master库出现故障,其中的一个salve从库会被选举出来成为新的Master。框架图如下:

其中,选举者是不参与数据存储的,它的作用只是为了选举出新的Master。当原Master恢复后,他也只会以从库salve身份加入到副本集中。
当然,我们也可以在恢复启动它的时候手动配置priority参数,让他成为Master。
Demo
下面通过具体的例子说明。
首先在mongo目录下建立3个(一个作为master,一个作为从库,一个作为选举者,在实际项目中,这三个服务最后放在不同的服务器上)配置文件,文件内容如下:
Master
#配置mongodb数据的存储路径
dbpath=D:\mongodb\data\rs1
#配置mongodb日志文件
logpath=D:\mongodb\log\rs1.log
#配置端口,若不配置,默认27017端口
port=40001
#副本集名字,每个配置文件中需保持一致
replSet=rs_test
Salve
#配置mongodb数据的存储路径
dbpath=D:\mongodb\data\rs2
#配置mongodb日志文件
logpath=D:\mongodb\log\rs2.log
#配置端口,若不配置,默认27017端口
port=40002
#副本集名字,每个配置文件中需保持一致
replSet=rs_test
选举者配置文件
#配置mongodb数据的存储路径
dbpath=D:\mongodb\data\rs3
#配置mongodb日志文件
logpath=D:\mongodb\log\rs3.log
#配置端口,若不配置,默认27017端口
port=40003
#副本集名字,每个配置文件中需保持一致
replSet=rs_test
启动三个mongodb实例
首先,在bin 目录下打开三个shell窗口,分别启动上面配置的三个mongodb,如下命令:
mongod -f d:\mongodb\rs1.conf
若是都启动成功,我们将会在日志文件中看到主要的信息:
waiting for connections on port 40003
其次,连接配置在40001端口的mongodb实例:
mongo -port 40001
初始化40001 为master:
rs.initiate()
初始化成功,使用命令rs.status() 查看副本集状态,将会看到如下图:

从图中可以看到40001已经作为primary 启动。
再次,执行命令 rs.add("127.0.0.1:40002") 添加从库。

添加选举者:rs.addArb("127.0.0.1:40003")
再次执行 rs.status() 查看副本集的状态,将会看到如下图:

验证 选举
关闭40001 服务端窗口(故障停机),在40002窗口执行 rs.status(),将会看到如下图:

最后,再次启用40001 服务端,在bin 下 执行 mongod -f d:\mongodb\rs1.conf
然后 再次查看状态 rs.status() ,可以看到40001已经重新加入到副本集并且是作为从库加入的,如下图:

关于mongodb 副本集就介绍到这里,希望对大家有帮助。文中如有不对的地方,欢迎指出。
谢谢。
mongodb3.6 副本集(三)mongodb 如何做数据备灾的更多相关文章
- mongodb3.2副本集配置
网上的资料太乱了,等弄好了再看官网才发现官网写的最清晰和简洁 推荐官网的副本集配置:https://docs.mongodb.com/manual/tutorial/deploy-replica-se ...
- 修改mongodb3.0副本集用户密码遇到的坑
最近公司对项目安全方面的问题很是重视,进行了多次各种安全漏洞的扫描,于是乎就扫到了mongodb弱口令的问题. 在项目部署初期,因为大家对这个都不是特别重视,大概是因为觉得反正是内网项目吧,所以mon ...
- mongodb3.0副本集搭建补充~~非admin数据库的用户权限
之前有搭建mongodb3.0的副本集,不过当时直接使用的admin数据库,用户也是直接给的root. 链接:http://blog.csdn.net/tuzongxun/article/detail ...
- 创建mongodb副本集操作实例
一:概念 相关概念及图片引用自这里 mongodb副本集: 副本集是一组服务器,其中一个是主服务器,用于处理客户请求:还有多个备份服务器,用于保存主服务器的数据副本.如果主服务器崩溃了,备份服务器自动 ...
- mongodb 3.4 集群搭建:分片+副本集
mongodb是最常用的nodql数据库,在数据库排名中已经上升到了前六.这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群. 在搭建集群之前,需要首先了解几个概念:路由,分片.副本集.配置 ...
- Mongodb主从复制/ 副本集/分片集群介绍
前面的文章介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 Master-Slave 模式(主从复制),一种是 Replica Sets 模式(副本集). Mong ...
- Mongodb主从复制 及 副本集+分片集群梳理
转载努力哥原文,原文连接https://www.cnblogs.com/nulige/p/7613721.html 介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 ...
- MongoDB 3.4 高可用集群搭建(二)replica set 副本集
转自:http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html 在上一篇文章<MongoDB 3.4 高可用集群搭建(一):主从模式&g ...
- [转]搭建高可用mongodb集群(二)—— 副本集
在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...
随机推荐
- Hibernate进阶知识点必备
hibernate.cfg.xml的常用的配置 hibernate.show_sql:是否把Hibernate运行时的SQL语句输出到控制台,编码阶段便于测试,为true的好 -hibernate.f ...
- ubuntu常用文件搜索命令
1.find find [搜索路径] [搜索关键字] 比如查找/test中文件名为t5.tmp的文件: 查找根目录下大于100M的文件 注意,这里的204800单位是块,1块=512字节 在根目录下查 ...
- Beanstalkd 一个高性能分布式内存队列系统
需要一个分布式内存队列,能支持这些特性:任务不重不漏的分发给消费者(最基础的).分布式多点部署.任务持久化.批量处理.错误重试..... 转载:http://rdc.taobao.com/blog/c ...
- MySQL数据库入门笔记
2 数据库入门 2.1引入 数据保存到内存: 优点: 1)读写非常快 缺点: 1)程序关闭导致数据丢失 数据保存到文件: 优点: 1)数据可以永久保存 缺点: 1)频繁地IO操作,效率不高! 2)数据 ...
- Uva - 514 - Rails
C是一个栈,每次先检查A的第一个元素是否满足,如果满足,直接进入B:再检查C中栈顶元素是否满足,如果满足,出栈进入B:前两步都不满足将A放入C栈中.循环到B满或者A,C中都不满足条件并且A空,第一种情 ...
- HTTP请求方法
HTTP请求方法 根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:OPTIONS, ...
- Web Service进阶(六)SOAPBinding绑定方式异常 is not found. Have you run APT to generate them
当在类中填充相应方法时,提示如下错误: 出现以上错误的原因就是在注解中没有添加@SOAPBinding(style=SOAPBinding.Style.RPC)这句话.估计也与JDK的版本相关,这方面 ...
- Java创建柱状图及饼状图
Java创建图表其实还是很方便的,但是要引入相关的jar包.如下 jfreechart.jar jcommon,jar gnujaxp.jar 其中最主要的是jfreechart.jar. 下面就让我 ...
- SwiftyiRate中文说明
SwiftyiRate Github SwiftyiRate Swift语言实现的app内评分,简单易用. Requirements Integration Usage Initialization ...
- 【一天一道LeetCode】#26. Remove Duplicates from Sorted Array
一天一道LeetCode系列 (一)题目 Given a sorted array, remove the duplicates in place such that each element app ...