环境需求:Mongodb集群有三种模式: Replica Set, Sharding,Master-Slaver。
这里部署的是Replica Set模式。
测试环境: 这里副本集(Replica Set)采用一主一备一仲裁模型:
配置步骤:
1.下载mongodb
MongoDB官网下载中心:
mongodb 3.4.10下载地址:
2. 解压并创建目录
[root@server-1 ~]# tar zxvf mongodb-linux-x86_64-rhel70-3.4.10.tgz
[root@server-1 ~]# mv mongodb-linux-x86_64-rhel70-3.4.10 mongodb //为了方便简洁,改名
同样的,在server-2和server-3上也解压并改名(略)
接着创建相关目录:
[root@server-1 ~]# mkdir -p /date/mongodb/primary //在server-1上建立主数据存放目录
[root@server-1 ~]# mkdir /etc/mongodb/ //即将存放primary的配置文件
[root@server-2 ~]# mkdir -p /data/mongodb/secondary //在server-2上建立从数据存放目录
[root@server-2 ~]# mkdir /etc/mongodb/ //即将存放secondary的配置文件
[root@server-3 ~]# mkdir -p /data/mongodb/arbiter //在server-3上建立仲裁数据存放目录
[root@server-3 ~]# mkdir /etc/mongodb/ //即将存放arbiter的配置文件
3. 新建配置文件
[root@server-1 ~]# vim /etc/mongodb/primary.conf //新建主配置文件,内容如下:
附:
#PRIMARY.CONF
dbpath=/data/mongodb/primary logpath=/data/mongodb/primary.log pidfilepath=/data/mongodb/primary.pid #keyFile=/data/mongodb/mongodb.key directoryperdb=true logappend=true replSet=google bind_ip=192.168.1.21 port=27017 #auth=true oplogSize=100 fork=true noprealloc=true #maxConns=4000[root@server-2 ~]# vim /etc/mongodb/secondary.conf //secondary的配置文件,如下:
[root@server-3 ~]# vim /etc/mongodb/arbiter.conf // arbiter的配置文件内容如下
保存后,退出;
4. 启动mongodb服务
[root@server-1 ~]# ./mongodb/bin/mongod -f /etc/mongodb/primary.conf //启动主
[root@server-2 ~]# ./mongodb/bin/mongod -f /etc/mongodb/secondary.conf //启动从
[root@server-3 ~]# ./mongodb/bin/mongod -f /etc/mongodb/arbiter.conf //启动仲裁
5. 将节点配置组成集群
找一台节点,这里就在server-1操作:
[root@server-1 ~]# ./mongodb/bin/mongo 192.168.1.21:27017 //使用mongo命令登录,格式:mongo IP:PORT
接着:
> use admin //直接回车
> cfg={ _id:"google",members:[{_id:0,host:'192.168.1.21:27017',priority:2},{_id:1,host:'192.168.1.22:27017',priority:1},{_id:2,host:'192.168.1.23:27017',arbiterOnly:true}] };
接着:
> rs.initiate(cfg) //使配置生效
说明:cfg名字可选,只要跟mongodb参数不冲突,_id为Replica Set名字,members里面的优先级priority值高的为主节点,
对于仲裁点一定要加上arbiterOnly:true,否则主备模式不生效。
查看是否生效:rs.status()
下面会显示字样:"ok" : 1
结束.