MongoDB副本集配置

1.MongoDB副本集

在MongoDB新版本中已经不在支持主从复制,取而代之的是使用Mongodb副本集,MongoDB副本集(Replica Set)其实就是具有自动故障恢复功能的主从集群,和普通的主从复制最大的区别在于副本集中没有固定的”主节点”,整个副本集会选出一个节点作为主节点,当其挂掉后,会在剩下的节点中选举一个节点成为新的主节点,保证有一个主节点(primary)和一个或多个备份节点(secondary),官方推荐副本集最小配置需要三个节点,一个主节点接收和处理所有的写操作,其余的备份节点来对主节点的数据进行同步备份。

     成为primary 对客户端可见 参与投票 延迟同步 复制数据
Default /
Secondary-Only / /
Hidden / / /
Delayed /
Arbiters / / / /
Non-Voting / /

2.副本集配置

修改各个节点的mongodb.conf,增加副本集相关配置

1
2
3
4
5
6
7
8
9
dbpath=/data/mongo
logpath=/var/log/mongodb.log
port=27017
journal=false
storageEngine=mmapv1
bind_ip_all=true

##新增副本集名称,同一个副本集,在各个配置文件中,值必须相同
replSet=aaa

配置完成后,重新加载配置文件

1
2
3
mongod -config ./mongodb.conf
或者
mongod - f ./mongodb.conf

3.副本集初始化

连接到每一个MongoDB实例,执行rs.initiate()方法对副本集进行初始化

1
2
3
4
5
6
7
8
9
10
conf = {
"_id":"aaa",
"members":[
{"_id":0,"host":"192.168.1.120:27017"},
{"_id":1,"host":"192.168.1.121:27017"},
{"_id":2,"host":"192.168.1.122:27017"}
]
}

rs.initiate(conf)

4.副本集更新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#向副本集中添加成员
rs.add("192.168.1.123:27017")

#从副本集中删除成员
rs.remove("192.168.1.123:27017")

#向副本集添加仲裁
rs.addArb("192.168.1.124:27017")

#向副本集中添加备份节点
rs.add({"_id":4,"host":"192.168.1.125:27017","priority":0,"hidden":true})

#更改副本集配置
var conf = rs.conf()
conf.members[1].priority = 5
rs.reconfig(conf)

#增加force参数
rs.reconfig(conf,{force:true})

#查看副本集状态
rs.status()
-------------本文结束感谢您的阅读-------------
分享不易,请我喝杯咖啡吧~~~