集群架构
本次实验部署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