集群架构
本次实验部署3台主机node1、node2、node3,2个副本集db1、db2作为分片,3台主机均有1个配置库实例
操作步骤
安装
node1上执行如下命令,完成后拷贝/mongodb目录到node2、node3
useradd mongodb mkdir -p /mongodb/data/{db1,db2,db3,configdb} wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.10.tgz tar -zxvf mongodb-linux-x86_64-rhel62-3.2.10.tgz mv mongodb-linux-x86_64-rhel62-3.2.10/* /mongodb chown -R mongodb:mongodb /mongodb
启动副本实例和配置库实例
3台主机分别运行如下命令
/mongodb/bin/mongod --dbpath /mongodb/data/db1 --port 10001 --replSet db1 --fork /mongodb/bin/mongod --dbpath /mongodb/data/db2 --port 10002 --replSet db2 --fork /mongodb/bin/mongod --dbpath /mongodb/data/configdb --port 20000 --fork
初始化副本
/mongodb/bin/mongo node1:10001 > use admin > db.runCommand( { "replSetInitiate": { "_id":"db1", "members": [ { "_id":1, "host":"node1:10001" }, { "_id":2, "host":"node2:10001" }, { "_id":3, "host":"node3:10001" } ] } }) > exit; /mongodb/bin/mongo node1:10002 > use admin > db.runCommand( { "replSetInitiate": { "_id":"db2", "members": [ { "_id":1, "host":"node1:10002" }, { "_id":2, "host":"node2:10002" }, { "_id":3, "host":"node3:10002" } ] } }) > exit;
node1上启动mongos
/mongodb/bin/mongos --port 30000 --configdb node1:20000,node2:20000,node3:20000 --fork /mongodb/bin/mongo node1:30000 > use admin #添加分片 > db.runCommand({"addShard":"db1/node1:10001"}) > db.runCommand({"addShard":"db2/node1:10002"}) #此时listshards会显示主辅所有节点 > db.runCommand({listshards:1}) #新建库并开启分片 > db.runCommand({"enablesharding":"testdb"}) > db.runCommand({"shardcollection":"testdb.testcoll","key":{_id:'hashed'}})
插入测试数据,可看到数据分配在随机分片
> for(var i=0;i<10;i++){db.testcoll.insert({testkey:"testvalue"+i});} /mongodb/bin/mongo node1:10002 > db.testcoll.find() /mongodb/bin/mongo node2:10001 > db.testcoll.find()
原创文章,作者:N24_lizi1,如若转载,请注明出处:http://www.178linux.com/58095
评论列表(1条)
赞,应该比其他小伙伴领先好多,可以多加个场景,mongodb设置副本集之后,如果一个node 节点的数据被删除了,该如何处理~