码迷,mamicode.com
首页 > 数据库 > 详细

MongoDB复制集

时间:2018-09-12 15:07:27      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:str   crs   mod   定义   生产   其他   文件   block   host   

简介:
复制集采用一主一从,一主多从方式(生产中为一主多从),每当主服务挂掉(掉线)从服务器将会采用选举的方式重新选举一个主顶上来(主:primary,从:secend)
主从切换采用的方式有两种:
手动切换:主动放弃primary;
自动切换:关闭MingoDB服务;
具体操作:在装完MongoDB的系统中操作(具体装MongoDB方法请看我前两篇博客介绍)
本实验有4个实例 开启3个 1个主3个从

主从切换
1:27017
2:27018
3:27019
4:27020
实验步骤:
[root@localhost ~]# mkdir -p /data/mongodb/mongodb{2,3,4}
[root@localhost ~]# mkdir -p /data/mongodb/logs
[root@localhost ~]# touch /data/mongodb/logs/mongodb{2,3,4}.log
[root@localhost ~]# chmod 777 /data/mongodb/logs/*.log
编辑配置文件
[root@localhost logs]# vim /etc/mongod.conf
开启replication,名字自定义
replication:
replSetName: kgcrs
[root@localhost yum.repos.d]# mongod -f /etc/mongod.conf --shutdown #关闭服务
[root@localhost yum.repos.d]# mongod -f /etc/mongod.conf #开启服务

复制产生四个实例
[root@localhost yum.repos.d]# cp -p /etc/mongod.conf /etc/mongod2.conf
[root@localhost yum.repos.d]# cp -p /etc/mongod.conf /etc/mongod3.conf
[root@localhost yum.repos.d]# cp -p /etc/mongod.conf /etc/mongod4.conf
[root@localhost yum.repos.d]# vim /etc/mongod2.conf
#修改三处
path: /data/mongodb/logs/mongodb2.log
dbPath: /data/mongodb/mongodb2
port: 27018
#将其他几个都修改
[root@localhost yum.repos.d]# cp -p /etc/mongod2.conf /etc/mongod3.conf
[root@localhost yum.repos.d]# vim /etc/mongod3.conf
(还是那三条,序号改好即可)
[root@localhost yum.repos.d]# cp -p /etc/mongod2.conf /etc/mongod4.conf
[root@localhost yum.repos.d]# vim /etc/mongod4.conf
#修改完成后依次启动
[root@localhost yum.repos.d]# mongod -f /etc/mongod2.conf
[root@localhost yum.repos.d]# mongod -f /etc/mongod3.conf
[root@localhost yum.repos.d]# mongod -f /etc/mongod4.conf
#查看端口开启
[root@localhost yum.repos.d]# netstat -ntap
#登录MongoDB
[root@localhost yum.repos.d]# mongo --port 27018
[root@localhost yum.repos.d]# mongo --port 27019
[root@localhost yum.repos.d]# mongo --port 27020
#将其他几台加入集
[root@localhost yum.repos.d]# mongo

cfg={"_id":"kgcrs","members":[{"_id":0,"host":"192.168.120.129:27017"},{"_id":1,"host":"192.168.120.129:27018"},{"_id":2,"host":"192.168.120.129:27019"}]}
db.stats()
rs.initiate(cfg) #启动
kgcrs:SECONDARY> rs.status() #查看状态
#添加节点
kgcrs:PRIMARY> rs.add("192.168.120.129:27020")
#删除节点(不想要某个,可以删除)
kgcrs:PRIMARY> rs.remove("192.168.120.129:27020")
故障转移:
[root@localhost ~]# ps aux | grep mongod
root 6036 0.7 3.6 1591944 74292 ? Sl 09:11 0:36 mongod -f /etc/mongod.conf
root 6276 0.6 3.2 1501836 66448 ? Sl 09:26 0:24 mongod -f /etc/mongod2.conf
root 6304 0.6 3.1 1581136 63152 ? Sl 09:27 0:23 mongod -f /etc/mongod3.conf
root 6356 0.5 2.9 1460340 59644 ? Sl 09:27 0:19 mongod -f /etc/mongod4.conf
root 41580 0.0 0.0 112676 984 pts/2 R+ 10:29 0:00 grep --color=auto mongod
#制造故障,干掉PRIMARY
方法一:自动切换
[root@localhost ~]# kill -9 6304
#进入其他mongo查看主(在从服务器上是无权操作的,只能去主看)
方法二:手动切换
#暂停30秒不参与选举
kgcrs:PRIMARY> rs.freeze(30)
#交出主节点位置,维持从节点状态不少于60秒,等待30秒使主节点和从节点日志同步
kgcrs:PRIMARY> rs.stepDown(60,30)

总结:MongoDB初步复制集先讲到这里,后面再继续介绍。

MongoDB复制集

标签:str   crs   mod   定义   生产   其他   文件   block   host   

原文地址:http://blog.51cto.com/13756916/2174235

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!