Mogodb集群搭建

1、上传解压软件包

    cd /home/dinpay/

     解压:tar -zxvf  mongodb-linux-x86_64-rhel62-3.2.2.tgz

     重命名:  mv  mongodb-linux-x86_64-rhel62-3.2.2.tgz mongodb

1.在集群的机器上建立对应的data文件夹例如:/data/mongodb/replset/data

2.建立在mongodb目录新建启动配置文件mongodb.conf:

dbpath=/data/mongodb/replset/data

logpath=data/mongodb/mongodb.log

logappend=true

fork=true

journal=true

oplogSize=2048

smallfiles=true

replSet=repset

port=27017

 

 

3.mongodb.conf分别复制到集群其他的机器上对应的mongodb的目录下

4.分别在集群机器上启动mongodb

Mongod -f mongodb.conf

5.在集群任意一台机器上任意一台机器登陆mongodb;打开mongo终端,使用如下命令初始化:

use admin

config = {_id: 'repset', members: [{_id: 0, host: 'IP1:27017',priority:1},{_id: 1, host: 'IP2:27017',priority:2},{_id: 2, host: 'IP4:27017',priority:3},{_id: 3, host: 'IP4:27017',arbiterOnly:true}]}

rs.initiate(config);

rs.status(); #查看集群节点的状态

 

7.状态意义

health: 1, #代表机器正常

stteStr: PRIMARY, #代表是主节点,可读写,其中有以下几下状态:

STARTUP:刚加入到复制集中,配置还未加载

STARTUP2:配置已加载完,初始化状态

RECOVERING:正在恢复,不适用读

ARBITER: 仲裁者

DOWN:节点不可到达

UNKNOWN:未获取其他节点状态而不知是什么状态,一般发生在只有两个成员的架构,脑裂

REMOVED:移除复制集

ROLLBACK:数据回滚,在回滚结束时,转移到RECOVERINGSECONDARY状态

FATAL:出错。查看日志grep replSet FATAL”找出错原因,重新做同步

PRIMARY:主节点

 

8.添加仲裁节点

rs.addArb("192.168.200.25:27017")

9.添加节点

rs.add("192.168.200.25:27017")

8.删除节点

Rs.remove("192.168.200.25:27017")

 

注意:

所有的Secondary都宕机、或则副本集中只剩下一个节点,则该节点只能为Secondary节点,也就意味着整个集群智能进行读操作而不能进行写操作,当其他的恢复时,之前的primary节点仍然是primary节点。

当某个节点宕机后重新启动该节点会有一段的时间(时间长短视集群的数据量和宕机时间而定)导致整个集群中所有节点都成为secondary而无法进行写操作(如果应用程序没有设置相应的ReadReference也可能不能进行读取操作)。

官方推荐的最小的副本集也应该具备一个primary节点和两个secondary节点。两个节点的副本集不具备真正的故障转移能力。

 

posted @ 2017-07-19 15:11  一心行走  阅读(263)  评论(0编辑  收藏  举报