二、安装配置
选择三台服务器:192.168.37.129(主节点) 192.168.37.130(副本节点) 192.168.37.131(副本节点)
制定下载的文件夹:cd /data/program/software下载mongodb:wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.7.tgz
解压:tar -zxvf mongodb-linux-x86_64-3.4.7.tgz
重命名: mv mongodb-linux-x86_64-3.4.7 mongodb
进入mongodb目录: cd mongodb
新建两个文件夹:mkdir data
mkdir logs
进入bin目录 cd bin
新建配置文件:touch mongodb.conf
dbpath=/data/program/software/mongodb/data
logpath=/data/program/software/mongodb/logs/mongodb.log
port=27017
fork=true
nohttpinterface=true
分别三台服务器上启动mongodb:
/data/program/software/mongodb/bin/mongod --replSet repset -f /data/program/software/mongodb/bin/mongodb.conf
各个服务器查看,都已经启动:
ps -ef |grep mongodb
在三台机器上任意一台机器登录mongodb:
/data/program/software/mongodb/bin/mongo
使用admin数据库
use admin
定义副本集配置变量,这里的_id:"repset"和上面命令参数-replSet repset保持一致
config={_id:"repset",
members:[{_id:0,host:"192.168.37.129:27017"},{_id:1,host:"192.168.37.130:27017"},{_id:2,host:"192.168.37.131:27017"}]
}
初始化副本集群:
rs.initiate(config);
出现{"ok":1} 表示成功
查看集群节点的状态:
rs.status();
ps
副本集群问题汇总
http://www.jb51.net/article/100172.htm
三、测试集群功能
主节点连接到终端
/data/program/software/mongodb/bin/mongo
连接到test数据库
use test;
往testdb表里插入数据
db.testdb.insert({"testkey":"testvalue"})
在副本节点连接查询:
/data/program/software/mongodb/bin/mongo
使用test数据库:use test;
查询表格:show tables;
会发现报错,原因是mongodb从主节点读写数据,副本节点上不允许读,设置副本节点可读。
db.getMongo().setSlaveOk();
然后就可以查询了:db.testdb.find();
测试集群恢复功能,去停掉主节点:
ps -ef |grep mongodb;kill -9 xx;
然后查看节点状态,发现两个副本节点有一台变为了primary,然后再启动主节点:
/data/program/software/mongodb/bin/mongod --replSet repset -f /data/program/software/,
观察状态:/data/program/software/mongodb/bin/mongo