使用MongoDB实现分片集

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liuguangrong/article/details/52328674

MongoDB的下载和安装
请参考我的博文:MongoDB实现复制集 中所述的下载和安装
分片集节点架构
分片集节点架构
创建分片设置
设置分片集
创建配置服务器

$ cd /opt/modules/mongodb/
$ mkdir -p /opt/datas/mongodb/sharding/config/data/
$ mkdir -p /opt/datas/mongodb/sharding/config/logs/
$ touch /opt/datas/mongodb/sharding/config/logs/config.log
$ bin/mongod --port 27032 --configsvr --dbpath /opt/datas/mongodb/sharding/config/data --fork --logpath /opt/datas/mongodb/sharding/config/logs/config.log

创建分片控制器

$ touch /opt/datas/mongodb/sharding/config/logs/mongos.log
$ bin/mongos --configdb [hostname]:27032 --port 27031 --chunkSize 1 --fork --logpath /opt/datas/mongodb/sharding/config/logs/mongos.log

创建分片服务器

$ mkdir -p /opt/datas/mongodb/sharding/shard00/data/
$ mkdir -p /opt/datas/mongodb/sharding/shard00/logs/
$ touch /opt/datas/mongodb/sharding/shard00/logs/shard00.log
$ bin/mongod --port 27033 --dbpath /opt/datas/mongodb/sharding/shard00/data --fork --logpath /opt/datas/mongodb/sharding/shard00/shard00.log

$ mkdir -p /opt/datas/mongodb/sharding/shard01/data/
$ mkdir -p /opt/datas/mongodb/sharding/shard01/logs/
$ touch /opt/datas/mongodb/sharding/shard01/logs/shard01.log
$ bin/mongod --port 27034 --dbpath /opt/datas/mongodb/sharding/shard01/data --fork --logpath /opt/datas/mongodb/sharding/shard01/shard01.log

连接分片控制器添加两台分片服务器

$ bin/mongo [hostname]:27031
mongos> sh.addShard("[hostname]:27033")
mongos> sh.addShard("[hostname]:27034")

检查分片服务器状态

mongos> db.printShardingStatus()

现在分片环境已经可以正常运行,但没有分片数据;接下来创建一个名为testdb的数据库,在testdb中创建一个testcollection集合。对该集合进行分片,赋予它一个名为testkey的参数,用作分片函数。

mongos> sh.enableSharding("testdb")
mongos> sh.shardCollection("testdb.testcollection", {testkey : 1})
mongos> use testdb
mongos> show collections
mongos> db.testcollection.insert({testkey:1,testname:"andy.lau"})

在集群中添加新的分片

$ mkdir -p /opt/datas/mongodb/sharding/shard02/data/
$ mkdir -p /opt/datas/mongodb/sharding/shard02/logs/
$ touch /opt/datas/mongodb/sharding/shard02/logs/shard02.log
$ bin/mongod --port 27035 --dbpath /opt/datas/mongodb/sharding/shard02/data --fork --logpath /opt/datas/mongodb/sharding/shard02/shard02.log
$ bin/mongo [hostname]:27031
mongos> sh.addShard("[hostname]:27035")

查看shard02添加情况

mongos> db.printShardingStatus()

从集群中移除分片

mongos> use admin
mongos> db.runCommand({removeShard:"[hostname]:27035"})

查看移除进度

mongos> db.runCommand({removeShard:"[hostname]:27035"})
mongos> db.runCommand({listshards:1})

确定连接方式:isdbgrid:1表示已经启用分片,isdbgrid:0表示是一个非分片数据库

mongos> db.runCommand({isdbgrid:1})

列出分片服务器的状态

mongos> sh.status()

猜你喜欢

转载自blog.csdn.net/liuguangrong/article/details/52328674