mongodb 集群linux,mongodb 分片集群搭建

集群架构

本次实验部署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

你可能感兴趣的