MongoDB实战系列之五:mongodb的分片配置
2012-01-18 19:51
555 查看
md01 10.0.0.11
md02 10.0.0.12
md03 10.0.0.14
2、启动三台机器的mongod实例
根据Replica Set、Sharding策略部署mongod。将两个sharding组部署到三台服务器上,每个sharding组有三个replica set成员。
#Server1:
#Server2:
#Server3:
4、启动并配置三台Config Server
#Server1、2、3:
5、部署并配置三台Routing Server
指定所有的config sever地址参数,chunkSize是分割数据时每块(Chunk)的单位大小
#Server1、2、3:
6、命令行添加分片
连接到mongs服务器,并切换到admin
要使单个collection也分片存储,需要给collection指定一个分片key,通过以下命令操作:
注:
a. 分片的collection系统会自动创建一个索引(也可用户提前创建好)
b. 分片的collection只能有一个在分片key上的唯一索引,其它唯一索引不被允许
One note: a sharded collection can have only one unique index, which must exist on the shard key. No other unique indexes can exist on the collection.
分片collection例子
删除片操作
再执行,可看到removeshard的挪动进度
例:
md02 10.0.0.12
md03 10.0.0.14
2、启动三台机器的mongod实例
根据Replica Set、Sharding策略部署mongod。将两个sharding组部署到三台服务器上,每个sharding组有三个replica set成员。
#Server1:
mkdir -p /elain/data/mongodb/shard11 mkdir -p /elain/data/mongodb/shard21 /elain/apps/mongodb/bin/mongod --shardsvr --replSet shard1 --port 27017 --dbpath /elain/data/mongodb/shard11 --oplogSize 100 --logpath /elain/data/mongodb/shard11.log --logappend --fork --rest /elain/apps/mongodb/bin/mongod --shardsvr --replSet shard2 --port 27018 --dbpath /elain/data/mongodb/shard21 --oplogSize 100 --logpath /elain/data/mongodb/shard21.log --logappend --fork --rest
#Server2:
mkdir -p /elain/data/mongodb/shard12/ mkdir -p /elain/data/mongodb/shard22/ /elain/apps/mongodb/bin/mongod --shardsvr --replSet shard1 --port 27017 --dbpath /elain/data/mongodb/shard12 --oplogSize 100 --logpath /elain/data/mongodb/shard12.log --logappend --fork --rest /elain/apps/mongodb/bin/mongod --shardsvr --replSet shard2 --port 27018 --dbpath /elain/data/mongodb/shard22 --oplogSize 100 --logpath /elain/data/mongodb/shard22.log --logappend --fork --rest
#Server3:
mkdir -p /elain/data/mongodb/shard13/ mkdir -p /elain/data/mongodb/shard23/ /elain/apps/mongodb/bin/mongod --shardsvr --replSet shard1 --port 27017 --dbpath /elain/data/mongodb/shard13 --oplogSize 100 --logpath /elain/data/mongodb/shard13.log --logappend --fork --rest /elain/apps/mongodb/bin/mongod --shardsvr --replSet shard2 --port 27018 --dbpath /elain/data/mongodb/shard23 --oplogSize 100 --logpath /elain/data/mongodb/shard23.log --logappend --fork --rest 3、初始化Replica Set 通过命令行初始化两组Replica Set,通过mongo连接到一个mongod
/elain/apps/mongodb/bin/mongo 10.0.0.11:27017 config = {_id: 'shard1', members: [ {_id: 0, host: '10.0.0.11:27017'}, {_id: 1, host: '10.0.0.12:27017'}, {_id: 2, host: '10.0.0.14:27017'}]};
rs.initiate(config); /elain/apps/mongodb/bin/mongo 10.0.0.11:27018 config = {_id: 'shard2', members: [ {_id: 0, host: '10.0.0.11:27018'}, {_id: 1, host: '10.0.0.12:27018'}, {_id: 2, host: '10.0.0.14:27018'}]}; rs.initiate(config);
4、启动并配置三台Config Server
#Server1、2、3:
mkdir -p /elain/data/mongodb/config/ /elain/apps/mongodb/bin/mongod --configsvr --dbpath /elain/data/mongodb/config/ --port 20000 --logpath /elain/data/mongodb/config1.log --logappend --fork
5、部署并配置三台Routing Server
指定所有的config sever地址参数,chunkSize是分割数据时每块(Chunk)的单位大小
#Server1、2、3:
/elain/apps/mongodb/bin/mongos --configdb 10.0.0.11:20000,10.0.0.12:20000,10.0.0.14:20000 --port 30000 --chunkSize 100 --logpath /elain/data/mongodb/mongos.log --logappend --fork
6、命令行添加分片
连接到mongs服务器,并切换到admin
/elain/apps/mongodb/bin/mongo 10.0.0.11:30000/admin
db.runCommand( { addshard : "shard1/10.0.0.11:27017,10.0.0.12:27017,10.0.0.14:27017", name:"shard1", maxsize:2048, allowLocal:true } ); db.runCommand( { addshard : "shard2/10.0.0.11:27018,10.0.0.12:27018,10.0.0.14:27018", name:"shard2", maxsize:2048, allowLocal:true } ); db.runCommand( { listshards : 1 } ); 如果列出(sharding)了以上二个你加的shards,表示shards已经配置成功 #激活数据库分片
db.runCommand( { enablesharding : "elain" } );
要使单个collection也分片存储,需要给collection指定一个分片key,通过以下命令操作:
db.runCommand( { shardcollection : “<namespace>”,key : <shardkeypatternobject});
注:
a. 分片的collection系统会自动创建一个索引(也可用户提前创建好)
b. 分片的collection只能有一个在分片key上的唯一索引,其它唯一索引不被允许
One note: a sharded collection can have only one unique index, which must exist on the shard key. No other unique indexes can exist on the collection.
mongoimport -d elain -c test --type csv --headerline --file test.csv --host 10.0.0.11:30000
分片collection例子
db.runCommand( { shardcollection : "elain.test",key : {id: 1} } ) mongos> db.chujq.t1.stats(); { "sharded" : true, "flags" : 1, "ns" : "elain.test", "count" : 4058977, "numExtents" : 34, "size" : 675039816, "storageSize" : 818757632, "totalIndexSize" : 131854352, "indexSizes" : { "_id_" : 131854352 }, "avgObjSize" : 166.30786919955446, "nindexes" : 1, "nchunks" : 14, "shards" : { "shard1" : { "ns" : "elain.test", "count" : 1860365, "size" : 309376352, "avgObjSize" : 166.29873815084673, "storageSize" : 408920064, "numExtents" : 16, "nindexes" : 1, "lastExtentSize" : 77955072, "paddingFactor" : 1, "flags" : 1, "totalIndexSize" : 60371584, "indexSizes" : { "_id_" : 60371584 }, "ok" : 1 }, "shard2" : { "ns" : "elain.test", "count" : 2198612, "size" : 365663464, "avgObjSize" : 166.31559547569103, "storageSize" : 409837568, "numExtents" : 18, "nindexes" : 1, "lastExtentSize" : 74846208, "paddingFactor" : 1, "flags" : 1, "totalIndexSize" : 71482768, "indexSizes" : { "_id_" : 71482768 }, "ok" : 1 } }, "ok" : 1 }
删除片操作
mongos> db.runCommand({"removeshard" : "10.0.0.11:27018"}); { "msg" : "draining started successfully", "state" : "started", "shard" : "shard2", "ok" : 1 }
再执行,可看到removeshard的挪动进度
mongos> db.runCommand({"removeshard" : "10.0.0.11:27018"}); { "msg" : "draining ongoing", "state" : "ongoing", "remaining" : { "chunks" : NumberLong(3), "dbs" : NumberLong(0) }, "ok" : 1 }
例:
/elain/apps/mongodb/bin/mongod --config /elain/data/mongodb/shard1/shard1.properties --rest
相关文章推荐
- MongoDB实战系列之五:mongodb的分片配置
- MongoDB实战系列之五:mongodb的分片配置
- MongoDB实战系列之五:mongodb的分片配置
- MongoDB实战系列之五:mongodb的分片配置
- MongoDB实战系列之五:mongodb的分片配置
- MongoDB实战系列之四:mongodb副本集部署
- MongoDB实战系列之六:mongodb的高可用集群设计实战
- MongoDB配置选项、Shell函数、游标类型、分片等
- mongodb系列-conf配置文件
- 配置MongoDB集群分片
- MongoDB副本集配置系列三:副本集的认证方式
- mongodb架构mongodb分片集群与简易搭建方案---ttlsa教程系列之mongodb
- MongoDB实战系列之六:mongodb的高可用集群设计实战
- springboot和mongoDB分片配置 集群配置
- MongoDB分片配置
- 配置MongoDB3.04集群分片
- MongoDB 高可用分片配置(Windows、Linux)
- MongoDB系列之三(副本集配置 持续更新)
- MongoDB实战系列之三:MongoDB的主从部署
- MongoDB实战系列之六(1):mongodb的高可用集群设计实战