mongodb 副本集(replica set)是有自动故障恢复功能的主从集群,有一个primary节点和一个或多个secondary节点组成,只有配置两个以上secondary节点的时候副本集才具备primary节点故障自动切换的功能。副本集中数据同步过程:primary节点写入数据,secondary通过读取primary的oplog得到复制信息,开始复制数据并且将复制信息写入到自己的oplog。数据同步是一个异步的过程。mongodb主备模式从3.2版本以后已经不被推荐使用,被副本集替代。
注意:在副本集的环境中,要是所有的secondary都宕机了,只剩下primary。最后primary会变成secondary,不能提供服务。
副本集的搭建过程如下,还是比较简单的。
1、安装mongodb副本集群准备3台(或大于3台的奇数)。
安装步骤参考:mongodb安装
集群分别为mongodb1,mongodb2,mongodb3
添加/etc/hosts短域名相对应的ip地址。
2、集群初始化确保每台mongodb的/usr/local/mongodb/etc/mongod.conf有指定replset名,例如:
replication: replsetname: rs1其中集群里replsetname必须相同。
运行如下命令初始化
mongo> rs.initiate()默认初始化mongodb会获取hostname作为集群地址,如果需要ip地址可以使用下面的方法。
mongo> config = {_id: \rs1\, members:[{_id: 0, host: \'192.168.1.106:27017\'}]}> rs.initiate(config)查看集群配置和状态
> rs.conf()> rs.status()如果mongod启动添加 –auth 参数,集群之间需要配置认证key。
mkdir -pv /etc/mongodcd /etc/mongodopenssl rand -base64 756 > mongo-keyfilechmod 400 mongo-keyfilechown mongod.mongod mongo-keyfile# 复制key文件到需要添加副本集的mongodb服务器中。mongod.conf参数中配置类似如下行:
security: keyfile: /etc/mongod/mongo-keyfile3、添加mongodb集群按照mongodb1的配置启动mongodb2和mongodb3。添加mongodb2和mongodb3到集群的命令如下。
> rs.add(\mongodb2:27017\)> rs.add(\mongodb3:27017\)添加成功后再次查看集群状态。
查看副本集群的复制状态。
> rs.printslavereplicationinfo()正常的话一个高可用的mongodb副本集就搭建好了。
双11电商大战前夜 天猫和他的对手们客户网站备案查询-其他问题腾讯云建站选哪种服务器云服务器内存区别无法启动系统-云服务器问题戴尔考虑剥离VMware部门 最早明年9月前完成买阿里云服务器学大数据库吗百度云服务器解析