1. 首页
  2. 数据库运维

MongoDB副本集群简介和搭建配置步骤

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/mongod
cd /etc/mongod
openssl rand -base64 756 > mongo-keyfile
chmod 400 mongo-keyfile
chown mongod.mongod mongo-keyfile
# 复制key文件到需要添加副本集的mongodb服务器中。

mongod.conf参数中配置类似如下行:

security:
  keyFile: /etc/mongod/mongo-keyfile

3、添加mongodb集群

按照mongodb1的配置启动mongodb2和mongodb3。添加mongodb2和mongodb3到集群的命令如下。

> rs.add("mongodb2:27017")
> rs.add("mongodb3:27017")

添加成功后再次查看集群状态。

查看副本集群的复制状态。

> rs.printSlaveReplicationInfo()

正常的话一个高可用的MongoDB副本集就搭建好了。

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code