MongoDB3.0.1分片部署,国内3.0的部署文档还不是很多(何志雄)。(二)

2015-07-24 09:24:34 · 作者: · 浏览: 4
hard2 在155/153/152上执行 cd /soft/shard2Mongo/bin ./mongod - shardsvr --auth --replSet shard2 --config /soft/shard2Mongo/mongodb.conf 在Master机器上执行副本集 config={"_id" : "shard2","version" : 1,"members" : [{ "_id" : 1,"host":"192.168.62.155:17155"},{ "_id" : 2,"host":"192.168.62.153:17153"},{"_id":3,"host":"192.168.62.152:17152"}]} rs.initiate(config)
4.5、添加分片到Mongos。选择选择其中一台Mongos,连接后执行命令 ./mongo 192.168.62.153:27788 use admin db.auth("superAdmin","admin123") 4.5.1、添加分片1: sh.addShard("shard1/192.168.62.153:17053") 格式:分片名称/该分片中的至少一台Mongod实例。 添加成功显示:{ "shardAdded" : "shard1", "ok" : 1 } ps:如果只是纯粹添加一台单机的mongd实例,直接执行sh.addShard("192.168.62.153:17053") 4.5.2、添加分片2: sh.addShard("shard2/192.168.62.155:17155") 如果提示错误: "can't add shard shard2/192.168.62.155:17155 because a local database 'hezx' exists in another shard1:shard1/192.168.62.153:17053,192.168.62.154:17054,192.168.62.155:17055 那么此时需要在shard1和shard2的master上去删除hezx数据库,然后在添加分片成功后,在mongos服务器上上操作创建数据库
在另外一台mongos服务器上也和如上命令一并操作。 4.5、对某个数据库开启分片 sh.enableSharding("hezx")
4.6、创建片键(片键需要是索引,如果集合中有数据,需要手动敲创建索引命令,如果没有建立索引,创建的过程中会自动建立) 原因是,片键要求是索引,且如果是复合索引就必须是索引的开头。如果集合中没有数据,此时会自动创建索引。 sh.shardCollection("hezx.message", { "to": 1 } ) 说明:为hezx库的message集合创建以to为键片,可以是组合键。
至此,MongoDB的分片已经部署完毕。分片的相关命令如下: 1、sh.status(),查看分片的状态。有哪些分片,哪些数据库被分片了,片键是什么。 2、db.message.stats(),选择某个表,执行该命令,可以看到该表的分片情况,占用多大,数据多少。