Ubuntu16.04搭建MongoDB3.4.3 副本集
mongodb副本集介绍:
此处省略300字....
一、搭建MongoDB副本集
准备三台机器,分别是:
1.192.168.28.217 2.192.168.28.218 3.192.168.28.219
二、下载mongodb放在218服务器目录 /data/bigdata/software/ 下
#进入mongodb目录 cd mongodb #创建文件夹replset mkdir replset #进入replset目录 cd replset #创建文件夹 mkdir data
三、利用ssh分别向217,219机器上拷贝mongodb
scp /data/bigdata/software/mongodb root@192.168.28.217:/data/bigdata/software/ scp /data/bigdata/software/mongodb root@192.168.28.219:/data/bigdata/software/
四、此时我们三台机器上分别存在了Mongodb
分别在这三台机器上启动mongodb
217:/data/bigdata/software/mongodb/bin/mongod --dbpath=/data/bigdata/software/mongodb/replset/data/ --replSet repset 218:/data/bigdata/software/mongodb/bin/mongod --dbpath=/data/bigdata/software/mongodb/replset/data/ --replSet repset 219:/data/bigdata/software/mongodb/bin/mongod --dbpath=/data/bigdata/software/mongodb/replset/data/ --replSet repset
五、启动以后我们发现副本集还没有初始化配置信息,接下来便是初始化副本集
在三台机器上任意一台登陆mongodb(我这里在218上登陆)
#进入mongodb目录 cd /data/bigdata/software/mongodb/ #进入mongodb bin/mongo #使用admin数据库 use admin #输入如下内容: config= {_id:"repset",members:[ ...{_id:0,host:"192.168.28.217:27017"}, ...{_id:1,host:"192.168.28.218:27017"}, ...{_id:2,host:"192.168.28.219:27017"}] }注:红色字体的repset要和上面参数 --replSet repset保持一致. #执行后输出内容如下:
#初始化副本集配置
rs.initiate(config);
#输出成功{"ok",1}
#查看日志,副本集启动成功后,218为主节点PRIMARY,217、219为副本节点SECONDARY。
#查看集群节点的状态
rs.status()
六、至此整个副本集就搭建成功了,接下来测试副本集数据复制功能
回到218主节点连接进入终端
#建立test数据库
use test
#往testdb插入数据
db.testdb.insert({"test1":"testval1"})
#在副节点217,219上查看数据是否复制过来
#使用test 数据库。
repset:SECONDARY> use test;
repset:SECONDARY> show tables;
#可以看见错误信息:not master and slaveOk
#mongodb默认是从主节点读写数据的,副本节点上不允许读,需要设置副本节点可以读。
repset:SECONDARY> db.getMongo().setSlaveOk();
#可以看到数据已经复制到了副本集。
repset:SECONDARY> db.testdb.find();
参考文章:http://www.csdn.net/article/2014-04-09/2819221-build-high-avialable-mongodb-cluster-part-1/1