二、集群网络环境测试
224心跳节点
253分片节点
227分片节点
三、集群环境NTP时钟检查
可以看到3个节点的时钟并不同步,接下来进行NTP时钟同步
点击windows界面右下角时间
点击更改日期和时间设置
点击Internet时间
点击更改设置
服务器输入: NTP 服务器所在机器的 IP 地址,本集群选取10.138.2.227作为NTP时钟服务器
点击立即更新
NTP时钟重新同步后:
四、检查操作系统补丁
主要检查系统补丁 Windows6.1-KB2577795-x64.msu 、 Windows6.1-KB2731284-v3-x64.msu 是否安装,如果已安装则跳过,没有安装则从微软官方下载后点击自动安装。
注意:这2个补丁集的安装需要重启服务器
检查步骤:
打开控制面板
点击系统和安全
点击查看已安装的更新
在“搜索 已安装更新”框里输入补丁号进行查看:KB2577795、KB2731284
五、创建软件安装目录
三个节点一致的目录(打开cmd直接执行命令即可,记得要查看是否创建成功):
mkdir –p D:\MongoDB
mkdir –p D:\mongodata
10.138.2.227
mkdir -p d:\mongodata\rs0-0
mkdir -p d:\mongodata\rs0-arb
mkdir -p d:\mongodata\rs1-1
mkdir -p d:\mongodata\cfg
10.138.2.224
mkdir -p D:\MongoDB
mkdir -p D:\mongodata\cfg
10.138.2.253
mkdir -p D:\mongodata\rs0-1
mkdir -p D:\mongodata\rs1-0
mkdir -p D:\mongodata\rs1-arb
mkdir -p D:\mongodata\cfg
安装步骤
1、点击mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi安装包,启动安装程序
2、接受许可点击下一步
3、选择手动安装custom
4、调整软件安装目录后点击下一步进行安装
5、点击界面的finish完成安装
七、配置集群
1、各分片节点和心跳节点开启相应的实例进程
10.138.2.227分片操作
开启实例
d:\MongoDB\Server\3.2\bin\mongod --dbpath d:\mongodata\rs0-0 --replSet rs0 --oplogSize 4096 --port 27011 --directoryperdb --syncdelay 15
d:\MongoDB\Server\3.2\bin\mongod --dbpath d:\mongodata\rs1-1 --replSet rs1 --oplogSize 4096 --port 27012 --directoryperdb --syncdelay 15
d:\MongoDB\Server\3.2\bin\mongod --dbpath d:\mongodata\rs0-arb --replSet rs0 --port 27015 --directoryperdb
d:\MongoDB\Server\3.2\bin\mongod --configsvr --replSet configReplSet --port 27001 --dbpath d:\mongodata\cfg
10.138.2.224 心跳节点操作
开启实例
D:\MongoDB\Server\3.2\bin\mongod --configsvr --replSet configReplSet --port 27001 --dbpath D:\mongodata\cfg
10.138.2.253 分片操作
开启实例
D:\MongoDB\Server\3.2\bin\mongod --dbpath D:\mongodata\rs0-1 --replSet rs0 --oplogSize 4096 --port 27012 --directoryperdb --syncdelay 15
D:\MongoDB\Server\3.2\bin\mongod --dbpath D:\mongodata\rs1-0 --replSet rs1 --oplogSize 4096 --port 27011 --directoryperdb --syncdelay 15
D:\MongoDB\Server\3.2\bin\mongod --dbpath D:\mongodata\rs1-arb --replSet rs1 --port 27015 --directoryperdb
D:\MongoDB\Server\3.2\bin\mongod --configsvr --replSet configReplSet --port 27001 --dbpath D:\mongodata\cfg
2、通过10.138.2.227节点配置副本集及成员
D:\MongoDB\Server\3.2\bin\mongo 10.138.2.227:27011
use admin
rsconf = { _id: "rs0",members: [ { _id: 0, host: "10.138.2.227:27011" } ] }
rs.initiate(rsconf)
rs.conf()
rs.add("10.138.2.253:27012")
rs.addArb("10.138.2.227:27015")
cfg = rs.conf()
cfg.members[0].priority = 100
cfg.members[1].priority = 1
rs.reconfig(cfg)
exit
#相关操作记录见第八部分
D:\MongoDB\Server\3.2\bin\mongo 10.138.2.253:27011
use admin
rsconf = { _id: "rs1",members: [ { _id: 0, host: "10.138.2.253:27011" } ] }
rs.initiate(rsconf)
rs.conf()
rs.add("10.138.2.227:27012")
rs.addArb("10.138.2.253:27015")
cfg = rs.conf()
cfg.members[0].priority = 100
cfg.members[1].priority = 1
rs.reconfig(cfg)
exit
3、配置config的rs模式
https://docs.mongodb.org/manual/tutorial/deploy-shard-cluster/#using-3-mirrored-config-servers-deprecated
rs模式配置操作:
d:\MongoDB\Server\3.2\bin\mongo 10.138.2.227:27001
use admin
rs.initiate( {
_id: "configReplSet",
configsvr: true,
members: [
{ _id: 0, host: "10.138.2.227:27001" },
{ _id: 1, host: "10.138.2.224:27001" },
{ _id: 2, host: "10.138.2.253:27001" }
]
} )
cfg = rs.conf()
cfg.members[0].priority = 100
cfg.members[2].priority = 100
rs.reconfig(cfg)
exit
4、在227、253分片节点启动mongos进程
D:\MongoDB\Server\3.2\bin\mongos --configdb configReplSet/10.138.2.227:27001,10.138.2.224:27001,10.138.2.253:27001 --port 27000 --chunkSize 128
D:\MongoDB\Server\3.2\bin\mongos --configdb configReplSet/10.138.2.227:27001,10.138.2.224:27001,10.138.2.253:27001 --port 27000 --chunkSize 128
5、在10.138.2.227节点添加分片信息
D:\MongoDB\Server\3.2\bin\mongo 10.138.2.227:27000/admin
sh.addShard("rs0/10.138.2.227:27011")
sh.addShard("rs1/10.138.2.253:27011")
6、业务数据库初始化操作
八、 部分操作记录
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\Administrator>D:\MongoDB\Server\3.2\bin\mongo 10.138.2.227:27011
2016-10-21T11:09:24.527+0800 I CONTROL [main] Hotfix KB2731284 or later update is installed, no need to zero-out data files
MongoDB shell version: 3.2.10
connecting to: 10.138.2.227:27011/test
> use admin
switched to db admin
> rsconf = { _id: "rs0",members: [ { _id: 0, host: "10.138.2.227:27011" } ] }
{
"_id" : "rs0",
"members" : [
{
"_id" : 0,
"host" : "10.138.2.227:27011"
}
]
}
> rs.initiate(rsconf)
{ "ok" : 1 }
rs0:OTHER> rs.conf()
{
"_id" : "rs0",
"version" : 1,
"protocolVersion" : NumberLong(1),
"members" : [
{
"_id" : 0,
"host" : "10.138.2.227:27011",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"getLastErrorModes" : {
},
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
},
"replicaSetId" : ObjectId("5809870eca9ddae850ca70c4")
}
}
rs0:PRIMARY> rs.add("10.138.2.253:27012")
{ "ok" : 1 }
rs0:PRIMARY> rs.addArb("10.138.2.227:27015")
{ "ok" : 1 }
rs0:PRIMARY> cfg = rs.conf()
{
"_id" : "rs0",
"version" : 3,
"protocolVersion" : NumberLong(1),
"members" : [
{
"_id" : 0,
"host" : "10.138.2.227:27011",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 1,
"host" : "10.138.2.253:27012",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 2,
"host" : "10.138.2.227:27015",
"arbiterOnly" : true,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"getLastErrorModes" : {
},
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
},
"replicaSetId" : ObjectId("5809870eca9ddae850ca70c4")
}
}
rs0:PRIMARY> cfg.members[0].priority = 100
100
rs0:PRIMARY> cfg.members[1].priority = 1
1
rs0:PRIMARY> rs.reconfig(cfg)
{ "ok" : 1 }
rs0:PRIMARY> exit
bye