然后打下mongo:
E:\mongodb\bin>mongo 回车 (有时加端口会造成下面的addshard命令出问题) > use admin switched to db admin > db.runCommand( { addshard : "10.0.4.85:27020", allowLocal : 1, maxSize:2 , minKey:1, maxKey:10} ) --添加sharding,maxsize单位是M,此处设置比较小的数值只为演示sharding效果 { "shardAdded" : "shard0000", "ok" : 1 } > db.runCommand( { addshard : "10.0.4.85:27021", allowLocal : 1, minKey:1000} ) { "shardAdded" : "shard0001", "ok" : 1 } 注:如果要移除sharding,可用下面写法 db.runCommand( { removeshard : "localhost:10000" } ); > db.runCommand({listshards:1}); 查看shard节点列表 { "shards" : [ { "_id" : "shard0000", "host" : "10.0.4.85:27020" }, { "_id" : "shard0001", "host" : "10.0.4.85:27021" } ], "ok" : 1 }
接下来创建相应数据库并设置其"可以sharding",新建自动切片的库user001:
> config = connect("10.0.4.85:27022") > config = config.getSisterDB("config") > dnt_mongodb=db.getSisterDB("dnt_mongodb"); dnt_mongodb > db.runCommand({enablesharding:"dnt_mongodb"}) { "ok" : 1 }
注:一旦enable了个数据库,mongos将会把数据库里的不同数据集放在不同的分片上。除非数据集被分片(下面会设置),否则一个数据集的所有数据将放在一个分片上。
> db.printShardingStatus(); --- Sharding Status --- sharding version: { "_id" : 1, "version" : 3 } shards: { "_id" : "shard0000", "host" : "10.0.4.85:27020" } { "_id" : "shard0001", "host" : "10.0.4.85:27021" } databases: { "_id" : "admin", "partitioned" : false, "primary" : "config" } { "_id" : "dnt_mongodb", "partitioned" : true, "primary" : "shard0000" } > db.runCommand( { shardcollection : "dnt_mongodb.posts1", key : {_id : 1}, unique: true } ) { "collectionsharded" : "dnt_mongodb.posts1", "ok" : 1 }
--使用shardcollection 命令分隔数据集,key自动生成。
出处:CSDN
责任编辑:bluehearts
上一页 基于Mongodb进行分布式数据存储 [1] 下一页 基于Mongodb进行分布式数据存储 [3]
◎进入论坛网络编程版块参加讨论
|