mongodb 3.4 集群搭建升级版 五台集群--windows

环境准备

系统版本 windows server 2008 r2

五台服务器:192.168.4.135/136/137/138/139

安装包: mongodb-win32-x86_64-2008plus-ssl-3.4.10-signed

服务器规划

服务器135服务器136服务器137服务器138服务器139
mongos servermongos serverconfig serverconfig serverconfig server
shard1 servershard2 servershard3 servershard4 servershard5 server
shard5 servershard1 servershard2 servershard3 servershard4 server
shard4 servershard5 servershard1 servershard2 servershard3 server

端口分配

mongos:27017
config:21000
shard1:27001
shard2:27002
shard3:27003
shard4:27004
shard5:27005

下载安装包

https://www.mongodb.com/download-center#community

创建相关目录

  • 根据服务器的规范,分别在对应的服务器上建立conf、mongos、config、shard1、shard2、shard3、shard4、shard5等目录,因为mongos不存储数据,只需要建立日志文件目录即可。
mkdir -p /data/conf
mkdir -p /data/mongos/log
mkdir -p /data/config/data
mkdir -p /data/config/log
mkdir -p /data/shard1/data
mkdir -p /data/shard1/log
mkdir -p /data/shard2/data
mkdir -p /data/shard2/log
mkdir -p /data/shard3/data
mkdir -p /data/shard3/log
mkdir -p /data/shard4/data
mkdir -p /data/shard4/log
mkdir -p /data/shard5/data
mkdir -p /data/shard5/log

配置环境变量

  • 为了后续方便操作,配置mongodb的环境变量
MONGODB_HOME=C:\Program Files\MongoDB\Server\3.4
path=%MONGO_HOME%/bin

查看mongodb版本信息mongod -v 输出版本信息表明配置环境变量成功

集群配置

1. config server配置服务器

  • 在服务器137、138、139上配置以下内容
dbpath=C:\\mongodb\\data\\config\\data
logpath=C:\\mongodb\\log\\config.log
pidfilepath=C:\\mongodb\\pid\\config.pid
directoryperdb=true
logappend=true
replSet=config
port=21000
configsvr=true
journal=true
  • 将config server配置成windows Service
mongod -f C:\mongodb\data\conf\config.conf --serviceName MongoConfig --serviceDisplayName MongoConfig --install
  • 登录任意一台配置服务器,初始化配置副本集
#连接
mongo 192.168.4.137:21000
#config变量
config = {
...    _id : "config",
...     members : [
...         {_id : 0, host : "192.168.4.137:21000" },
...         {_id : 1, host : "192.168.4.138:21000" },
...         {_id : 2, host : "192.168.4.139:21000" }
...     ]
... }

#初始化副本集
rs.initiate(config)

#查看分区状态
rs.status();

其中,”_id” : “configs”应与配置文件中配置的 replicaction.replSetName 一致,”members” 中的 “host” 为三个节点的ip和port

这样配置服务器就配置好了

2. 配置分片、副本集

  • 分片和副本集配置文件
dbpath=C:\\mongodb\\data\\shard1
logpath=C:\\mongodb\\log\\shard1.log
pidfilepath=C:\\mongodb\\pid\\shard.pid
directoryperdb=true
logappend=true
replSet=shard1
port=27001
shardsvr=true
journal=true

replSet为副本集的名字,同一副本集这个值要相同,其他分片副本集配置文件同理

  • 将shard server配置成windows Service
mongod -f C:\mongodb\data\shard\shard.conf --serviceName MongoShard --serviceDisplayName MongoShard --install
  • 登录任意一台配置服务器,初始化分片副本集
mongo 192.168.4.136:27001
#使用admin数据库
use admin
#定义副本集配置
config = {
...    _id : "shard1",
...     members : [
...         {_id : 0, host : "192.168.4.135:27001" },
...         {_id : 1, host : "192.168.4.136:27001" },
...         {_id : 2, host : "192.168.4.137:27001" }
...     ]
... }


#初始化副本集配置
rs.initiate(config);


#查看分区状态
rs.status();

其他分片配置同理

3、配置路由服务器 mongos

以下配置在服务器135、136上执行

注意:先启动配置服务器和分片服务器,后启动路由实例

  • 配置文件如下
configdb=config/192.168.4.137:27000,192.168.4.138:27000,192.168.4.139:27000
pidfilepath=C:\\mongodb\\pid\\route.pid
port=27017
logpath=C:\\mongodb\\log\\route.log
logappend=true
  • 将mongos server配置成windows Service
mongos -f C:\mongodb\data\route\route.conf --serviceName MongoRoute --serviceDisplayName MongoRoute --install
  • 启用分片

目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到mongos路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效。

登陆任意一台mongos

mongo 192.168.4.135:27017
#使用admin数据库
use  admin
#串联路由服务器与分配副本集
db.runCommand({addshard:"shard1/192.168.4.135:27001,192.168.4.136:27001,192.168.4.137:27001"})
db.runCommand({addshard:"shard2/192.168.4.136:27002,192.168.4.137:27002,192.168.4.138:27002"})
db.runCommand({addshard:"shard3/192.168.4.137:27003,192.168.4.138:27003,192.168.4.139:27003"})
db.runCommand({addshard:"shard4/192.168.4.135:27004,192.168.4.138:27004,192.168.4.139:27004"})
db.runCommand({addshard:"shard5/192.168.4.135:27005,192.168.4.136:27005,192.168.4.139:27005"})
#查看集群状态
sh.status()

集群搭建完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值