一 硬件配置
采用高配置的服务器用ESXI进行虚拟化出来11台相同测试服务器,每台具体配置为:
磁盘:500G
cpu核数:16核
内存:64G
二 下载mongodb,此处可以到官网下载,由于文件太大,就不上传了,我下载的是mongodb-linux-x86_64-2.4.12.tgz,原因是该版本比较稳定。
配置服务器
config1:
config2:
config3:
路由服务器
mongos:
数据服务器firstSet:
主primarydata1:
备seconddata1:
仲裁arbiterdata1:
数据服务器secondSet:
主primarydata2:
备seconddata2:
仲裁arbiterdata2:
数据服务器thirdSet:
主primarydata3:
备seconddata3:
仲裁arbiterdata3:
数据服务器fourthSet:
主primarydata4:
备seconddata4:
仲裁arbiterdata4:
数据服务器fifthSet:
主primarydata5:
备seconddata5:
仲裁arbiterdata5:
配置第一个Replica Set:
配置第二个Replica Set:
配置第三个Replica Set:
配置第四个Replica Set:
配置第五个Replica Set:
将三个Replica Set添加到集群中
五 设置分片
采用高配置的服务器用ESXI进行虚拟化出来11台相同测试服务器,每台具体配置为:
磁盘:500G
cpu核数:16核
内存:64G
二 下载mongodb,此处可以到官网下载,由于文件太大,就不上传了,我下载的是mongodb-linux-x86_64-2.4.12.tgz,原因是该版本比较稳定。
三 安装图解
配置服务器
config1:
/soft/mongodb/bin/mongod --configsvr --dbpath=/soft/mongodb/data/configdb --port 40001 --bind_ip 192.168.50.39 --fork --logpath=/soft/mongodb/log/configlog/configlog.log --logappend&
config2:
/soft/mongodb/bin/mongod --configsvr --dbpath=/soft/mongodb/data/configdb --port 40002 --bind_ip 192.168.50.46 --fork --logpath=/soft/mongodb/log/configlog/configlog.log --logappend&
config3:
/soft/mongodb/bin/mongod --configsvr --dbpath=/soft/mongodb/data/configdb --port 40003 --bind_ip 192.168.50.28 --fork --logpath=/soft/mongodb/log/configlog/configlog.log --logappend&
路由服务器
mongos:
/soft/mongodb/bin/mongos --configdb 192.168.50.39:40001,192.168.50.46:40002,192.168.50.28:40003 --port 50001 --bind_ip 192.168.50.45 --fork --logpath=/soft/mongodb/log/mongoslog/mongoslog.log --logappend&
数据服务器firstSet:
主primarydata1:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/primarydata --bind_ip 192.168.50.48 --port 30001 --replSet firstSet --fork --logpath=/soft/mongodb/log/primarylog/primarylog.log --logappend&
备seconddata1:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/seconddata --bind_ip 192.168.50.39 --port 30002 --replSet firstSet --fork --logpath=/soft/mongodb/log/secondlog/secondlog.log --logappend&
仲裁arbiterdata1:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/arbiterdata --bind_ip 192.168.50.46 --port 30003 --replSet firstSet --fork --logpath=/soft/mongodb/log/arbiterlog/arbiterlog.log --logappend&
数据服务器secondSet:
主primarydata2:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/primarydata --bind_ip 192.168.50.27 --port 30004 --replSet secondSet --fork --logpath=/soft/mongodb/log/primarylog/primarylog.log --logappend&
备seconddata2:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/seconddata --bind_ip 192.168.50.46 --port 30005 --replSet secondSet --fork --logpath=/soft/mongodb/log/secondlog/secondlog.log --logappend&
仲裁arbiterdata2:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/arbiterdata --bind_ip 192.168.50.28 --port 30006 --replSet secondSet --fork --logpath=/soft/mongodb/log/arbiterlog/arbiterlog.log --logappend&
数据服务器thirdSet:
主primarydata3:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/primarydata --bind_ip 192.168.50.32 --port 30007 --replSet thirdSet --fork --logpath=/soft/mongodb/log/primarylog/primarylog.log --logappend&
备seconddata3:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/seconddata --bind_ip 192.168.50.28 --port 30008 --replSet thirdSet --fork --logpath=/soft/mongodb/log/secondlog/secondlog.log --logappend&
仲裁arbiterdata3:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/arbiterdata --bind_ip 192.168.50.39 --port 30009 --replSet thirdSet --fork --logpath=/soft/mongodb/log/arbiterlog/arbiterlog.log --logappend&
数据服务器fourthSet:
主primarydata4:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/primarydata --bind_ip 192.168.50.78 --port 30010 --replSet fourthSet --fork --logpath=/soft/mongodb/log/primarylog/primarylog.log --logappend&
备seconddata4:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/seconddata --bind_ip 192.168.50.80 --port 30011 --replSet fourthSet --fork --logpath=/soft/mongodb/log/secondlog/secondlog.log --logappend&
仲裁arbiterdata4:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/arbiterdata --bind_ip 192.168.50.81 --port 30012 --replSet fourthSet --fork --logpath=/soft/mongodb/log/arbiterlog/arbiterlog.log --logappend&
数据服务器fifthSet:
主primarydata5:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/primarydata --bind_ip 192.168.50.79 --port 30013 --replSet fifthSet --fork --logpath=/soft/mongodb/log/primarylog/primarylog.log --logappend&
备seconddata5:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/seconddata --bind_ip 192.168.50.81 --port 30014 --replSet fifthSet --fork --logpath=/soft/mongodb/log/secondlog/secondlog.log --logappend&
仲裁arbiterdata5:
/soft/mongodb/bin/mongod --dbpath=/soft/mongodb/data/arbiterdata --bind_ip 192.168.50.80 --port 30015 --replSet fifthSet --fork --logpath=/soft/mongodb/log/arbiterlog/arbiterlog.log --logappend&
配置第一个Replica Set:
/soft/mongodb/bin/mongo 192.168.50.48:30001
cfgfirstSet = { _id:"firstSet", members:[ {_id:0,host:'192.168.50.48:30001',priority:2}, {_id:1,host:'192.168.50.39:30002',priority:1},
{_id:2,host:'192.168.50.46:30003',arbiterOnly:true}] }
rs.initiate(cfgfirstSet)
配置第二个Replica Set:
/soft/mongodb/bin/mongo 192.168.50.27:30004
cfgsecondSet= { _id:"secondSet", members:[ {_id:0,host:'192.168.50.27:30004',priority:2}, {_id:1,host:'192.168.50.46:30005',priority:1},
{_id:2,host:'192.168.50.28:30006',arbiterOnly:true}] }
rs.initiate(cfgsecondSet)
配置第三个Replica Set:
/soft/mongodb/bin/mongo 192.168.50.32:30007
cfgthirdSet = { _id:"thirdSet", members:[ {_id:0,host:'192.168.50.32:30007',priority:2}, {_id:1,host:'192.168.50.28:30008',priority:1},
{_id:2,host:'192.168.50.39:30009',arbiterOnly:true}] }
rs.initiate(cfgthirdSet)
配置第四个Replica Set:
/soft/mongodb/bin/mongo 192.168.50.78:30010
cfgfourthSet = { _id:"fourthSet", members:[ {_id:0,host:'192.168.50.78:30010',priority:2}, {_id:1,host:'192.168.50.80:30011',priority:1},
{_id:2,host:'192.168.50.81:30012',arbiterOnly:true}] }
rs.initiate(cfgfourthSet)
配置第五个Replica Set:
/soft/mongodb/bin/mongo 192.168.50.79:30013
cfgfifthSet = { _id:"fifthSet", members:[ {_id:0,host:'192.168.50.79:30013',priority:2}, {_id:1,host:'192.168.50.81:30014',priority:1},
{_id:2,host:'192.168.50.80:30015',arbiterOnly:true}] }
rs.initiate(cfgfifthSet)
将三个Replica Set添加到集群中
/soft/mongodb/bin/mongo 192.168.50.45:50001
sh.addShard("firstSet/192.168.50.48:30001")
sh.addShard("secondSet/192.168.50.27:30004")
sh.addShard("thirdSet/192.168.50.32:30007")
sh.addShard("fourthSet/192.168.50.78:30010")
sh.addShard("fifthSet/192.168.50.79:30013")
五 设置分片
> use admin
> printShardingStatus()
> use DIPatent
>db.createCollection('patent')
>use admin
>db.runCommand({enablesharding:'DIPatent'}) //设置数据库可以分片
>db.runCommand({shardcollection:'DIPatent.patent',key:{sid:1}}) //设置表的分区主键为order_id