Mongdb Replica Set 搭建(详细步骤及截图)及测试

来源:互联网 发布:淘宝上传好评截图 编辑:程序博客网 时间:2024/06/18 14:01

1. 准备环境:

ip:192.168.200.109 主机名:master

ip:192.168.200.110主机名:slaver

ip:192.168.200.111主机名:arbiter

以上环境都是干净的,没有安装任何东西(要能ping通外网)

2.下载:

  curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.9.tgz

3.解压:

tar -zxvf mongodb-linux-x86_64-3.2.9.tgz

4.创建一些所需要的文件:

mkdir -p /usr/local/server/mongodb/data 数据库文件夹

mkdir -p  /usr/local/server/mongodb/log

mkdir -p  /usr/local/server/mongodb/data/master主机节点

mkdir -p /usr/local/server/mongodb/data/slaver从机节点

mkdir -p /usr/local/server/mongodb/data/arbiter仲裁节点

touch /usr/local/server/mongodb/log/mongod.log日志文件

touch /usr/local/server/mongodb/conf/mongodb_master.conf主机配置文件

touch /usr/local/server/mongodb/conf/mongodb_slaver.conf从机配置文件

touch /usr/local/server/mongodb/conf/mongodb_arbiter.conf仲裁配置文件

mv mongodb-linux-x86_64-3.2.9/* /usr/local/server/mongodb/

5.编辑配置文件:

vi mongodb_master.conf

dbpath=/usr/local/server/mongodb/data

logpath=/usr/local/server/mongodb/log/mongod.log

pidfilepath=/usr/local/server/mongodb/data/master/master.pid 

directoryperdb=true 

logappend=true 

replSet=testrs 

bind_ip=192.168.200.109 

port=27017 

oplogSize=10000 

fork=true 

noprealloc=true

vi mongodb_slaver.conf

dbpath=/usr/local/server/mongodb/data

logpath=/usr/local/server/mongodb/log/mongod.log

pidfilepath=/usr/local/server/mongodb/data/master/slaver.pid 

directoryperdb=true 

logappend=true 

replSet=testrs 

bind_ip=192.168.200.110

port=27017 

oplogSize=10000 

fork=true 

noprealloc=true

vi mongodb_arbiter.conf

dbpath=/usr/local/server/mongodb/data

logpath=/usr/local/server/mongodb/log/mongod.log

pidfilepath=/usr/local/server/mongodb/data/master/arbiter.pid 

directoryperdb=true 

logappend=true 

replSet=testrs 

bind_ip=192.168.200.111

port=27017 

oplogSize=10000 

fork=true 

noprealloc=true


6.启动:

./bin/mongod -f/usr/local/server/mongodb/conf/mongodb_master.conf主节点

./bin/mongod -f/usr/local/server/mongodb/conf/mongodb_slaver.conf从节点

./bin/mongod -f/usr/local/server/mongodb/conf/mongodb_arbiter.conf仲裁节点

进入到主节点中执行:./bin/mongo 192.168.200.109:27017

启动过程中可能遇到以下问题:



由于不规范关闭数据库导致
解决方法:

删除此文件,重启

7.初始化:

config={_id:"testrs",members:[

{_id:0,host:'192.168.200.109:27017',priority:2},

{_id:1,host:'192.168.200.110:27017',priority:1},
{_id:2,host:'192.168.200.111:27017',arbiterOnly:true}

] };

其中priority为优先级,大的为主节点,仲裁节点必须加上arbiterOnly:true。

效果如下:


初始化命令rs.initiate(config);会看见

8.查看状态:

rs.status()



稍等一会儿,主节点上的状态会变成“stateStr”:"PRIMARY",至此各个节点状态正常,搭建完毕(以上搭建过程中,要注意防火墙)


9.测试:

测试说明:当主节点宕机,从节点是否可以启动成为主节点

测试步骤:kill掉主节点的mongodb进程,在从节点中执行rs.status();查看状态是否成为PRIMARY

效果如下:

然后我们重新启动主节点:


192.168.200.109 主节点又恢复到主节点,而原来的从节点现在的状态secondary备用节点



主节点:提供增删查改
备节点:默认不提供服务,但是可以提供查询服务,以减少主节点压力
仲裁节点:他本身不提供数据存储,它的主要作用是决定哪一个备用节点在主节点挂掉之后,将其提升为主节点

在从节点要读取数据需要运行 db.getMongo().setSlaveOk()命令。


详细内容请参考如下地址:

参考地址:http://www.mamicode.com/info-detail-1187633.html







阅读全文
0 0
原创粉丝点击