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