1.環境準備:建議使用15臺機,若無此資源,可採用3臺機作測試mongodb
##環境規劃以下shell
服務器1(192.168.12.249):數據庫
Mongos(Route) 【端口:20000】服務器
config server【端口:21000】app
shard server1 主節點【端口:28001】測試
shard server2 仲裁【端口:28002】this
shard server3 副節點【端口:28003】server
服務器2(192.168.12.247):ip
Mongos(Route) 【端口:20000】資源
config server【端口:21000】
shard server1 副節點【端口:28001】
shard server2 主節點【端口:28002】
shard server3 仲裁【端口:28003】
服務器3(192.168.12.253):
Mongos(Route) 【端口:20000】
config server 【端口:21000】
shard server1 仲裁【端口:28001】
shard server2 副節點【端口:28002】
shard server3 主節點【端口:28003】
##建立目錄以下:
2.搭建配置服務器(config server)
1) 配置服務器內容
## 配置文件地址:D:\MongoDB\MongoDB3.4.2\conf\config.properties
pidfilepath = D:\MongoDB\MongoDB3.4.2\config\log\configsrv.pid
dbpath = D:\MongoDB\MongoDB3.4.2\config\data
logpath = D:\MongoDB\MongoDB3.4.2\config\log\congigsrv.log
logappend = true
bind_ip = 0.0.0.0
port = 21000
#declare this is a config db of a cluster;
configsvr = true
#副本集名稱
replSet=configs
#設置最大鏈接數
maxConns=20000
serviceName=MongoDBConfig
serviceDisplayName=MongoDB Config Server
2)安裝服務並啓動
D:\MongoDB\MongoDB3.4.2\bin>
mongod.exe -config D:\MongoDB\MongoDB3.4.2\conf\config.properties --install
D:\MongoDB\MongoDB3.4.2\bin>net start MongoDBConfig
3)登陸任意一臺配置服務器,初始化配置副本集,其中,」_id」 : 「configs」應與配置文件中配置的 replicaction.replSetName 一致,」members」 中的 「host」 爲三個節點的 ip 和 port
D:\MongoDB\MongoDB3.4.2\bin>mongo --port 21000
MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:21000/
> config = {
_id : "configs",
members : [
{_id : 0, host : "192.168.15.253:21000" },
{_id : 1, host : "192.168.14.253:21000" },
{_id : 2, host : "192.168.13.253:21000" }
]
}
> rs.initiate(config)
{ "ok" : 1 }
3.配置分片副本集(shard server)
1)修改配置文件:D:\MongoDB\MongoDB3.4.2\conf\shard1.properties
pidfilepath = D:\MongoDB\MongoDB3.4.2\shard1\log\shard1.pid
dbpath = D:\MongoDB\MongoDB3.4.2\shard1\data
logpath = D:\MongoDB\MongoDB3.4.2\shard1\log\shard1.log
logappend = true
bind_ip = 0.0.0.0
port = 28001
#副本集名稱
replSet=shard1
#declare this is a shard db of a cluster;
shardsvr = true
#設置最大鏈接數
maxConns=20000
serviceName=MongoDBShard1
serviceDisplayName=MongoDB Shard Server 1
2)安裝服務並啓動
D:\MongoDB\MongoDB3.4.2\bin>
mongod.exe -config D:\MongoDB\MongoDB3.4.2\conf\shard1.properties --install
D:\MongoDB\MongoDB3.4.2\bin>net start MongoDBShard1
3)登陸任意一臺配置服務器,初始化分片1
D:\MongoDB\MongoDB3.4.2\bin>mongo --port 28001
> use admin
> config = {
_id : "shard1",
members : [
{_id : 0, host : "192.168.15.253:28001" },
{_id : 1, host : "192.168.14.253:28001" },
{_id : 2, host : "192.168.13.253:28001" , arbiterOnly: true }
]
}
> rs.initiate(config)
4.配置路由服務器(Route)
1)修改配置文件地址:D:\MongoDB\MongoDB3.4.2\conf\mongos.properties
pidfilepath = D:\MongoDB\MongoDB3.4.2\mongos\log\mongos.pid
logpath = D:\MongoDB\MongoDB3.4.2\mongos\log\mongos.log
logappend = true
bind_ip = 0.0.0.0
port = 20000
#監聽的配置服務器,只能有1個或者3個 configs爲配置服務器的副本集名字
configdb = configs/192.168.15.253:21000,192.168.14.253:21000,192.168.13.253:21000
#設置最大鏈接數
maxConns=20000
serviceName=MongoDBRoute3
serviceDisplayName=MongoDB Route Server 3
2)安裝服務並啓動
D:\MongoDB\MongoDB3.4.2\bin>
mongos.exe -config D:\MongoDB\MongoDB3.4.2\conf\mongos.properties --install
D:\MongoDB\MongoDB3.4.2\bin>net start MongoDBRoute3
5.啓用分片
D:\MongoDB\MongoDB3.4.2\bin>mongo --port 20000
> use admin
>mongos> sh.addShard("shard1/192.168.15.253:28001,192.168.14.253:28001,192.168.13.253:28001")
{ "shardAdded" : "shard1", "ok" : 1 }
mongos> sh.addShard("shard2/192.168.15.253:28002,192.168.14.253:28002,192.168.13.253:28002")
{ "shardAdded" : "shard2", "ok" : 1 }
mongos> sh.addShard("shard3/192.168.15.253:28003,192.168.14.253:28003,192.168.13.253:28003")
{ "shardAdded" : "shard3", "ok" : 1 }
mongos>
6.查看集羣狀態 mongos>sh.status():能夠看到集羣的狀態:分片摘要信息、數據庫摘要信息、集合摘要信息。