Mongodb分片集群规划及部署
一、测试环境环境centos 5.5 x86_64
mongodb分片集群规划如下:
一、在服务器上启用mongos(192.168.3.242),由于测试环境,不做高负载及高可用
二、选取三台做为config server
三、在六台上都启用分片及仲裁三台服务器做一组shard server集群
具体操作如下 :
1、在192.168.3.243、192.168.3.244、192.168.3.245上启动三个分片集,分别为boy1,boy2,boy3。在boy1集群里192.168.3.243为主存储,192.168.3.244为数据备份,192.168.3.245作为仲裁,在boy2集群里192.168.3.244为主存储,192.168.3.245为数据备份,192.168.3.243作为仲裁,在boy3集群里192.168.3.245为主存储,192.168.3.243为数据备份,192.168.3.244作为仲裁。
2、同理在192.168.3.246、192.168.3.248、192.168.3.249再启动多三个分片集,对数据集进行拆分。
mongodb分片集群配置如下:
数据存储到/var/data目录下。
mongos配置(192.168.3.242)--启用config server才启用
/home/mongodb-linux-x86_64-1.8.4/bin/mongos --configdb 192.168.3.243:20000,192.168.3.244:20000,192.168.3.245:20000 --port 30000 --logpath=/var/data/mongos.log --logappend --fork
shard 配置——(192.168.3.243)
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy1 --logpath=/var/data/boy1.log --port 27017 --shardsvr --replSet boy1 --fork --logappend
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy2 --logpath=/var/data/boy2.log --port 27018 --shardsvr --replSet boy2 --fork --logappend
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy3 --logpath=/var/data/boy3.log --port 27019 --shardsvr --replSet boy3 --fork --logappend
config配置(192.168.3.243)
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --configsvr --dbpath=/var/data/config --port 20000 --logpath=/var/data/config.log --logappend --fork
shard 配置——(192.168.3.244)
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy1 --logpath=/var/data/boy1.log --port 27017 --shardsvr --replSet boy1 --fork --logappend
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy2 --logpath=/var/data/boy2.log --port 27018 --shardsvr --replSet boy2 --fork --logappend
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy3 --logpath=/var/data/boy3.log --port 27019 --shardsvr --replSet boy3 --fork --logappend
config配置(192.168.3.244)
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --configsvr --dbpath=/var/data/config --port 20000 --logpath=/var/data/config.log --logappend --fork
shard 配置——(192.168.3.245)
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy1 --logpath=/var/data/boy1.log --port 27017 --shardsvr --replSet boy1 --fork --logappend
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy2 --logpath=/var/data/boy2.log --port 27018 --shardsvr --replSet boy2 --fork --logappend
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy3 --logpath=/var/data/boy3.log --port 27019 --shardsvr --replSet boy3 --fork --logappend
config配置(192.168.3.245)
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --configsvr --dbpath=/var/data/config --port 20000 --logpath=/var/data/config.log --logappend --fork
shard 配置——(192.168.3.246)
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy4 --logpath=/var/data/boy4.log --port 27017 --shardsvr --replSet boy4 --fork --logappend
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy5 --logpath=/var/data/boy5.log --port 27018 --shardsvr --replSet boy5 --fork --logappend
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy6 --logpath=/var/data/boy6.log --port 27019 --shardsvr --replSet boy6 --fork --logappend
shard 配置——(192.168.3.248)
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy4 --logpath=/var/data/boy4.log --port 27017 --shardsvr --replSet boy4 --fork --logappend
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy5 --logpath=/var/data/boy5.log --port 27018 --shardsvr --replSet boy5 --fork --logappend
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy6 --logpath=/var/data/boy6.log --port 27019 --shardsvr --replSet boy6 --fork --logappend
shard 配置——(192.168.3.249)
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy4 --logpath=/var/data/boy4.log --port 27017 --shardsvr --replSet boy4 --fork --logappend
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy5 --logpath=/var/data/boy5.log --port 27018 --shardsvr --replSet boy5 --fork --logappend
/home/mongodb-linux-x86_64-1.8.4/bin/mongod --dbpath=/var/data/boy6 --logpath=/var/data/boy6.log --port 27019 --shardsvr --replSet boy6 --fork --logappend
连接192.168.3.243、244、245三台中任意一台的27017、27018、27019进行如下操作
config = {_id:'boy1',members: [{_id: 0, host: '192.168.3.243:27017', priority:1},{_id: 1, host: '192.168.3.244:27017'},{_id: 2, host: '192.168.3.245:27017',arbiterOnly:true}]}
config = {_id:'boy1',members: [{_id: 0, host: '192.168.3.243:27018',arbiterOnly:true},{_id: 1, host: '192.168.3.244:27018', priority:1},{_id: 2, host: '192.168.3.245:27018'}]}
config = {_id:'boy1',members: [{_id: 0, host: '192.168.3.243:27019'},{_id: 1, host: '192.168.3.244:27019',arbiterOnly:true},{_id: 2, host: '192.168.3.245:27019', priority:1}]}
连接192.168.3.246、248、249三台中任意一台的27017、27018、27019进行如下操作
config = {_id:'boy1',members: [{_id: 0, host: '192.168.3.246:27017', priority:1},{_id: 1, host: '192.168.3.248:27017'},{_id: 2, host: '192.168.3.249:27017',arbiterOnly:true}]}
config = {_id:'boy1',members: [{_id: 0, host: '192.168.3.246:27018',arbiterOnly:true},{_id: 1, host: '192.168.3.248:27018', priority:1},{_id: 2, host: '192.168.3.249:27018'}]}
config = {_id:'boy1',members: [{_id: 0, host: '192.168.3.246:27019'},{_id: 1, host: '192.168.3.248:27019',arbiterOnly:true},{_id: 2, host: '192.168.3.249:27019', priority:1}]}
用admin连接mongos(192.168.3.242:30000)路由的操作:添加分片
db.runCommand({addshard:"boy1/192.168.3.243:27017,192.168.3.244:27017"});
db.runCommand({addshard:"boy2/192.168.3.244:27018,192.168.3.245:27018"});
db.runCommand({addshard:"boy3/192.168.3.245:27019,192.168.3.243:27019"});
db.runCommand({addshard:"boy4/192.168.3.246:27017,192.168.3.248:27017"});
db.runCommand({addshard:"boy5/192.168.3.248:27018,192.168.3.249:27018"});
db.runCommand({addshard:"boy6/192.168.3.249:27019,192.168.3.246:27019"});
配置完成,后续就是建库,对表的操作了。