【环境描述】
1)服务器
主机A:192.168.1.6(数据节点A和仲裁节点1)
主机B:192.168.1.7(数据节点B和仲裁节点2)
主机C:192.168.1.8(仲裁节点3)
主机D:192.168.1.9(仲裁节点4)
2)系统环境:windows Server 2008R2 Standard 64位
3)Mongodb版本:mongodb-win32-x86_64-2.6.6
【实验开始】
步骤1:将所需文件拷贝到各主机目录下
1.在E盘根目录下新建一个Mongodb文件夹
2.将mongodb-win32-x86_64-2.6.6安装包复制到Mongodb文件夹下
3.在Mongodb文件夹下新建个文件夹叫mongodbdata,并在mongodbdata下面再新建3个文件夹,分别是Arbiter,log,db
4.将MongoCmd拷贝到mongodb-win32-x86_64-2.6.6的bin目录下面
步骤2:修改MongoCmd下的配置文件
--主机A--
1.ConfigMongoCluster(配置集群结构文件)
//指定运行该脚本的计算机上mongodb的bin目录
-set MONGOPATH=E:\Mongodb\mongodb-win32-x86_64-2.6.6\bin
//指定conf文件中配置的replSet值
-set REPLSET=clu1
//配置作为数据节点的实例连接串,多个以逗号分隔
-set DATA=192.168.1.6:27017,192.168.1.7:27017
//配置作为仲裁节点的实例连接串,多个以逗号分隔
-set ARBIT=192.168.1.6:27018,192.168.1.7:27018,192.168.1.8:27018,192.168.1.9:27018
2.datanode.conf(配置数据节点信息)
//数据保存路径
-dbpath=E:\Mongodb\mongodbdata\db
//log保存路径
-logpath=E:\Mongodb\mongodbdata\log\log.txt
//端口
-port=27017
3.arbiternode.conf(配置仲裁节点信息)
-dbpath=E:\Mongodb\mongodbdata\Arbiter
-logpath=E:\Mongodb\mongodbdata\Arbiter\log.txt
-port=27018
4.regDataNodeService(配置数据节点启动命令)
//指定运行该脚本的计算机上mongodb的bin目录
-set MONGOPATH=E:\Mongodb\mongodb-win32-x86_64-2.6.6\bin
//指定服务引用的配置文件路径
-set CONF=E:\Mongodb\mongodb-win32-x86_64-2.6.6\bin\MongoCmd\datanode.conf
//指定注册服务名
-set SERVICENAME=MongoDataNode
//指定服务显示名称
-set DISPLAYNAME=Mongo Data Node Service
5.regArbiterNodeService(配置仲裁节点启动命令)
set MONGOPATH=E:\Mongodb\mongodb-win32-x86_64-2.6.6\bin
set CONF=E:\Mongodb\mongodb-win32-x86_64-2.6.6\bin\MongoCmd\arbiternode.conf
set SERVICENAME=MongoArbitNode
set DISPLAYNAME=Mongo Arbit Node Service
同理在主机B也修改如上的文件。由于主机C和主机D只做仲裁节点,所以只修改第3和第5的文件
步骤3:注册服务
--主机A--
1.运行regDataNodeService和regArbiterNodeService,将数据节点和仲裁节点服务器注册到服务中。注册成功后,可以在服务里看到服务名称。
2.运行ConfigMongoCluster,会有如下信息,表示成功.
---------------------------------------------------------------------------------------
MongoDB shell version: 2.6.6
connecting to: 192.168.1.6:27017/admin
cfgjson=
{
"_id" : "clu1",
"members" : [
{
"_id" : 0,
"host" : "192.168.1.6:27017",
"priority" : 1
},
{
"_id" : 1,
"host" : "192.168.1.7:27017",
"priority" : 2
},
{
"_id" : 2,
"host" : "192.168.1.6:27018",
"arbiterOnly" : true
},
{
"_id" : 3,
"host" : "192.168.1.7:27018",
"arbiterOnly" : true
},
{
"_id" : 4,
"host" : "192.168.1.8:27018",
"arbiterOnly" : true
},
{
"_id" : 5,
"host" : "192.168.1.9:27018",
"arbiterOnly" : true
}
]
}
initiate result:
{
"info" : "try querying local.system.replset to see current configuration
",
"ok" : 0,
"errmsg" : "already initialized"
}
同理在主机B上也运行如上程序。主机C和主机D只需要将仲裁节点服务注册(regArbiterNodeService)上就好。
步骤4:使用Windows自带的网络负载均衡软件配置集群后再运行CheckMongodbNLB文件。
主机A和主机B一个显示Master状态,一个显示Slave状态就表示工作正常,再测试下是否成功。
NLB 群集控制实用程序 V2.6 (c) 1997-2007 Microsoft Corporation.
群集 192.168.1.10
群集操作已停止。
15:01:44 SLAVE:192.168.1.6:27017
15:01:57 SLAVE:192.168.1.6:27017
15:02:09 SLAVE:192.168.1.6:27017
15:02:22 SLAVE:192.168.1.6:27017
NLB 群集控制实用程序 V2.6 (c) 1997-2007 Microsoft Corporation.
群集 192.168.1.10
群集操作已开始。
15:02:36 MASTER:192.168.1.7:27017
15:04:43 MASTER:192.168.1.7:27017