MongoDB复制集搭建(单机多实例与不同服务器)

MongoDB复制集搭建

一、单机多实例搭建复制集

单机多实例只需要一台虚拟机,通过复制配置文件使用不同端口来实现。
安装MongoDB请参考我的另外一篇博客
博客地址:http://blog.51cto.com/13760226/2174032

1、创建数据存放目录,复制配置文件
mkdir -p /usr/local/mongodb/mongodb{1,2,3,4} //创建数据存放目录
cd /usr/local/mongodb/
touch mongodb{1,2,3,4}.log //创建日志文件

MongoDB复制集搭建(单机多实例与不同服务器)


复制配置文件
cp /etc/mongod.conf /etc/mongod1.conf
cp /etc/mongod.conf /etc/mongod2.conf
cp /etc/mongod.conf /etc/mongod3.conf
cp /etc/mongod.conf /etc/mongod4.conf


修改配置文件
vim /etc/mongod1.conf (234)修改的内容相似
systemLog:
path: /usr/local/mongodb/mongodb1.log //修改日志路径
storage:
dbPath: /usr/local/mongodb/mongodb1 //修改数据文件存放路径
net:
port: 27017 (2,3,4的端口号不能相同)
bindIp: 0.0.0.0 //监听任意端口
replication: //末行添加
replSetName: repl //末行添加
2,3,4的多实例数据文件存放位置,日志位置要对应好,port不能相同


开启多实例
mongod -f /etc/mongod1.conf //开启多实例

MongoDB复制集搭建(单机多实例与不同服务器)

2、进入MongoDB,进行主从配置
rs.initiate({_id:"repl",members:[{_id:1,host:'192.168.60.135:27017'}]}) //初始化复制集
第一台被初始化的为primary,剩下的都为secondary。
使用rs.status()进行查看

MongoDB复制集搭建(单机多实例与不同服务器)

3、添加复制集
rs.add('192.168.60.135:27018')
rs.status() //查看

MongoDB复制集搭建(单机多实例与不同服务器)

4、登陆27018的多实例,看到为secondary说明从复制集配置成功

MongoDB复制集搭建(单机多实例与不同服务器)
MongoDB复制集搭建(单机多实例与不同服务器)

5、移除复制集
rs.add('192.168.60.135:27019') //再添加一个27019
rs.remove('192.168.60.135:27019') //移除它

MongoDB复制集搭建(单机多实例与不同服务器)
MongoDB复制集搭建(单机多实例与不同服务器)

6、切换主从方式
●主服务器宕机,primary自动进行选举
●手动切换
rs.freeze(30) 暂停30s
rs.stepDown(60,30) 维持从服务器状态60s 等待30s使主节点和从节点同步

MongoDB复制集搭建(单机多实例与不同服务器)

注:复制集只有主的那台才能查看内容,从的都没有权限进行查看,如果想验证是否进行复制,在主集上写,用切换主从的方法,让从服务器变成主,再去查看即可。


二、不同服务器搭建复制集

原理都相同,不同服务器上搭建出MongoDB,在初始化复制集的时候操作略有不同,多实例的搭建是通过不同端口号去实现的。而不同服务器是通过不同IP地址进行实现。代码如下,结合以上的内容,理解起来其实很简单。

rs.initiate({_id:"repl",members:[{_id:1,host:'192.168.60.135:27017'}]}) //初始化一台135的服务器为主复制集
rs.add('192.168.60.136:27017') //添加从复制集的时候同样的端口,添加不同的IP
rs.remove('192.168.60.136:27017') //删除从复制集的时候,也是通过IP去确定

猜你喜欢

转载自blog.51cto.com/13760226/2174340
今日推荐