mongodb的分片配置(五)
来源:互联网 发布:淘宝打折工具在哪 编辑:程序博客网 时间:2024/05/22 03:23
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:
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
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
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
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);
{_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
/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 --configdb10.0.0.11:20000,10.0.0.12:20000,10.0.0.14:20000 --port 30000 --chunkSize100 --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 } );
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 : “”,key : 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
}
{
"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
}
{
"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
}
{
"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
转载自:http://www.elain.org/?p=672
- mongodb的分片配置(五)
- MongoDB实战系列之五:mongodb的分片配置
- MongoDB实战系列之五:mongodb的分片配置
- MongoDB实战系列之五:mongodb的分片配置
- MongoDB实战系列之五:mongodb的分片配置
- (*)Mongodb的分片配置
- MongoDB:分片的配置
- MongoDB的分片集群配置
- Mongodb分片的简单配置
- 【MongoDB】在windows平台下mongodb的分片集群(五)
- mongodb集群与分片的配置说明
- mongodb集群与分片的配置说明
- 配置MongoDB集群分片(一)
- 配置MongoDB集群分片
- Mongodb分片配置
- 配置MongoDB集群分片
- 配置MongoDB集群分片
- MongoDB分片集群配置
- 用T-CODE查询USER EXIT的程序
- 创建类模式总结篇
- ios开发答疑录系列---(六)NSString和NSData通过Base64编码的相互转换
- 视图
- PE可执行文件格式-微软原汁原味
- mongodb的分片配置(五)
- PHP 学习资料
- 23种设计模式(6):模版方法模式
- Linux 性能测试与分析(值得收藏)
- Project Euler problem 49
- 关于const_cast
- 索引
- .NET中使用Memcached的相关资源整理
- 23种设计模式(7):中介者模式