MongoDB主从复制以及副本集的配置和使用
Posted 李晓娜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB主从复制以及副本集的配置和使用相关的知识,希望对你有一定的参考价值。
上篇主要讲解的是主从复制,这次我们来讲一下副本集。
副本集的优点在于:副本集采用的是心跳机制,当主机的节点挂掉之后,会从从服务器中通过选择机制再次选择一个主节点,这个主副切换是自动进行的
Ø 副本集的配置与使用
配置
与主从配置基本类似,我们先建立与主从复制基本一直的目录,
服务器端配置文件参数配置
启动服务器的服务端
启动服务器的客户端
文件目录如图:
与主从配置唯一不一样的就是.conf文件
配置如下图:
其他的配置一样,只要把对应的输出路径,端口号进行修改即可
初始化副本集
当配置完毕之后,我们登录其中的一台,并且切换到admin数据库,此时执行配置:
输入命令后回车
之后初始化配置:
此时出现错误,大概提示错误就是我连接不上127.0.0.1:2222和127.0.0.1:3333,原因在于我没有启动这个服务,启动之后再次输入命令:提示ok.
我们可以查看一下当前的状态:
我们发现一个为主节点,其他两个为副本
Health参数为1表示机器正常
stateStr "PRIMARY", #代表是主节点,可读写
此时我们退出1111,再次登录发现提示符发生了变化
而其他两个是:SECONDARY
测试数据的写入和读取
在主节点进行数据库,集合的创建以及数据的插入,Mongodb默认会创建不存在的数据库或者集合。
之后在副本集中进行读取
副本集默认没有读取权限,所以我们需要设置使用命令db.getMongo().setSlaveOk()
此时我们就可以读取到相关的数据了
Ø 副本集的优势
不同于主从复制,副本集是不需要进行主服务器的指定的,在使用的过程中,通过一定的算法进行选出来的。
并且当当前使用的主节点宕机的时候,会从剩下的副本集中再次通过选举选出一个主节点,这样的话,服务不会间断的提供,并且当已经故障的机器再次回到这个副本集中的时候,不会再次直接以主节点的身份出现,而是以备份的身份出现。
借鉴一张图:
这张图很清晰的说明这个流程和机制。
以上是关于MongoDB主从复制以及副本集的配置和使用的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB——MongoDB副本集(Replica Sets)
MongoDB——MongoDB副本集(Replica Sets)