搜索百度或谷歌都有大量的文档可以参考,只是由于自己理解能力不够,看的不是太懂。因此自己把实验成功的步骤记录下来。
我在自己的虚拟机里实现的,ip为192.168.92.107,使用的是mongodb3.0.2版本。配置信息如下,不过我没有为每个集群配置一个arbiter。
创建shard-a集群数据库目录
mkdir /data/rs-a-1 mkdir /data/rs-a-2
创建shard-b集群数据库目录
mkdir /data/rs-b-1 mkdir /data/rs-b-2
启动集群shard-a:
/home/mongodb/bin/mongod --shardsvr --replSet shard-a --dbpath /data/rs-a-1 --port 30000 --fork --logpath=/data/rs-a-1.log --logappend /home/mongodb/bin/mongod --shardsvr --replSet shard-a --dbpath /data/rs-a-2 --port 30001 --fork --logpath=/data/rs-a-2.log --logappend
设置集群shard-a:
/home/mongodb/bin/mongo --port 30000 config={_id:"shard-a","members":[{_id:1,"host":"192.168.92.107:30000"},{_id:2,"host":"192.168.92.107:30001"}]} rs.initiate(config)
启动集群shard-b:
/home/mongodb/bin/mongod --shardsvr --replSet shard-b --dbpath /data/rs-b-1 --port 30010 --fork --logpath=/data/rs-b-1.log --logappend /home/mongodb/bin/mongod --shardsvr --replSet shard-b --dbpath /data/rs-b-2 --port 30011 --fork --logpath=/data/rs-b-2.log --logappend
设置集群shard-b:
/home/mongodb/bin/mongo --port 30010 config={_id:"shard-b","members":[{_id:1,"host":"192.168.92.107:30010"},{_id:2,"host":"192.168.92.107:30011"}]} rs.initiate(config)
创建shard-config数据库目录
mkdir /data/config-1
启动配置服务器:
/home/mongodb/bin/mongod --configsvr --dbpath /data/config-1 --port 27019 --logpath=/data/config-1.log --fork --nojournal
开启shard-mongos:
/home/mongodb/bin/mongos --configdb 192.168.92.107:27019 --port 40000 --logpath=/data/mongos.log --fork
配置分片信息:
1)添加分片信息:
sh.addShard("shard-a/192.168.92.107:30000,192.168.92.107:30001") sh.addShard("shard-b/192.168.92.107:30010,192.168.92.107:30011")
2)指定数据库分片:
sh.enableSharding("mongoCache")
3)指定分片数据库中的集合的分片键(这里通过id来分片):
sh.shardCollection("mongoCache.cacheInfo",{_id:1})