mongodb分片配置

搜索百度或谷歌都有大量的文档可以参考,只是由于自己理解能力不够,看的不是太懂。因此自己把实验成功的步骤记录下来。


我在自己的虚拟机里实现的,ip为192.168.92.107,使用的是mongodb3.0.2版本。配置信息如下,不过我没有为每个集群配置一个arbiter。

wKiom1U59K_CdYWHAACh4XmnJ1k442.jpg


创建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})


至此一个基本的mongodb分片集群就创建成功了。i_f01.gif

你可能感兴趣的:(mongodb,sharding,分片配置)