基于副本集的分片高可用mongo集群安装
KryYoon
9年前
来自: http://my.oschina.net/shyloveliyi/blog/611058
先上一张拓扑
所有mongo全部安装到本地(windows)
其中:
分片端口27017
副本1端口27018
仲裁端口27019
路由端口27020
配置端口27021
在各mongo目录下的bin文件里创建配置文件
#shard.conf dbpath=D:\mongo\shard\mongodb-win32-x86_64-2.6.6\data logpath=D:\mongo\shard\mongodb-win32-x86_64-2.6.6\log\log.log pidfilepath=D:\mongo\shard\mongodb-win32-x86_64-2.6.6\pid\pid.pid directoryperdb=true logappend=true replSet=testrs bind_ip=127.0.0.1 port=27017 oplogSize=10000 noprealloc=true
#slaver.conf dbpath=D:\mongo\shard\slaver\mongodb-win32-x86_64-2.6.6\data logpath=D:\mongo\shard\slaver\mongodb-win32-x86_64-2.6.6\log\log.log pidfilepath=D:\mongo\shard\slaver\mongodb-win32-x86_64-2.6.6\pid\pid.pid directoryperdb=true logappend=true replSet=testrs bind_ip=127.0.0.1 port=27018 oplogSize=10000 noprealloc=true
#arbiter.conf dbpath=D:\mongo\shard\arbiter\mongodb-win32-x86_64-2.6.6\data logpath=D:\mongo\shard\arbiter\mongodb-win32-x86_64-2.6.6\log\log.log pidfilepath=D:\mongo\shard\arbiter\mongodb-win32-x86_64-2.6.6\pid\pid.pid directoryperdb=true logappend=true replSet=testrs bind_ip=127.0.0.1 port=27019 oplogSize=10000 noprealloc=true
#mongos.conf logpath=D:\mongo\mongos\mongodb-win32-x86_64-2.6.6\log\log.log pidfilepath=D:\mongo\mongos\mongodb-win32-x86_64-2.6.6\pid\pid.pid bind_ip=127.0.0.1 port=27020 configdb=127.0.0.1:27021
#mongos.conf dbpath=D:\mongo\config\mongodb-win32-x86_64-2.6.6\data logpath=D:\mongo\config\mongodb-win32-x86_64-2.6.6\log\log.log pidfilepath=D:\mongo\config\mongodb-win32-x86_64-2.6.6\pid\pid.pid bind_ip=127.0.0.1 port=27021
副本:
启动分片、副本、仲裁
mongod -f 配置文件
连接到分片执行如下操作
use admin cfg={_id:"testrs",members:[{_id:0,host:"127.0.0.1:27017",priority:2},{_id:1,host:"127.0.0.1:27018",priority:1},{_id:2,host:"127.0.0.1:27019",arbiterOnly:true}]};
分片:
启动配置
mongod -f 配置文件
启动路由
mongos -f 配置文件
连接路由,使用admin添加分片
use admin db.runCommand({"addShard":"testrs/127.0.0.1:27017"})
开启分片及设置片键
db.runCommand({"enablesharding":"test"}) db.runCommand({"shardcollection":"test.person","key":{_id:'hashed'}})
查看状态
printShardingStatus() --- Sharding Status --- sharding version: { "_id" : 1, "version" : 4, "minCompatibleVersion" : 4, "currentVersion" : 5, "clusterId" : ObjectId("56a9e3c876c1778c5a28ae2b")} shards: { "_id" : "testrs", "host" : "testrs/127.0.0.1:27017,127.0.0.1:27018" } databases: { "_id" : "admin", "partitioned" : false, "primary" : "config" } { "_id" : "test", "partitioned" : true, "primary" : "testrs" } test.person shard key: { "_id" : "hashed" } chunks: testrs 2 { "_id" : { "$minKey" : 1 } } -->> { "_id" : NumberLong(0) } on : testrs Timestamp(1, 1) { "_id" : NumberLong(0) } -->> { "_id" : { "$maxKey" : 1 } } on : testrs Timestamp(1, 2)