2020-9-4MongoDB集群配置


CentOS 7 MongoDB集群搭建–超详细步骤-新手必看

2020-9-4MongoDB集群配置

我的三个虚拟主机名分别是wq1、wq2、wq3 下面的各个端口都是默认值,无需改动
路由服务端口:在客户端应用程序和分片群集之间提供接口
配置服务端口:存储集群的元数据和配置设置
分片端口:每个碎片包含碎片数据的子集

主机 路游服务端口 配置服务端口 分片端口1 分片端口2 分片端口3

wq1
27017
27018
27001
27002
27003

wq2
27017
27018
27001
27002
27003

wq3
27017
27018
27001
27002
27003

一些说明:在进行配置文件时,三个虚拟主机都要进行配置,凡牵扯需要运行的部分可在一个虚拟主机上运行,
按照以下步骤进行操作可以运行成功的,本文旨在强调如何搭建,对具体原理稍作浅析方便操作时方便理解,理论深度还远未达到,适用于初学新手
2020-9-4MongoDB集群配置

0.MongoDB分片群集主要有如下

Shard:分片服务器,用于存储实际的数据块,实际生产环境中一个shard server 角色可以由几台服务器组成一个Replica Set 承担,防止主机单点故障。

Config Server:配置服务器,存储了整个分片群集的配置信息,其中包括chunk信息。

Routers:前端路由,客户端由此接入,且让整个群集看上去像单一数据库,前端应用可以透明使用。

1、下载解压MongoDB

到MongoDB官网下载:点击下载mongodb4.0.6版本
链接如果失效请私信联系
点击查看MongoDB中文手册
解压方式:tar zxvf mongodb-linux-x86_64-4.0.6.tgz
解压后改名并放到 home下 mv mongodb-linux-x86_64-4.0.6.tgz /home/mongodb
(下面的操作则在 /home/mongodb 不再单独声明)

2、设置环境变量

1、vim /etc/profile
2、export PATH=.:/home/mongodb/bin:$PATH
3、source /etc/profile

3、创建配置文件、日志文件所需的文件夹)

启动配置文件存放的文件夹:mkdir -p /home/mongodb/conf
配置服务数据存放目录:mkdir -p /home/mongodb/data/config
分片1服务数据存放目录:mkdir -p /home/mongodb/data/shard1
分片2服务数据存放目录:mkdir -p /home/mongodb/data/shard2
分片3服务数据存放目录:mkdir -p /home/mongodb/data/shard3

创建log目录: mkdir -p /home/mongodb/log
配置服务日志存放文件:touch /home/mongodb/log/config.log
路由服务日志存放文件:touch /home/mongodb/log/mongos.log
分片1服务日志存放文件:touch /home/mongodb/log/shard1.log
分片2服务日志存放文件:touch /home/mongodb/log/shard2.log
分片3服务日志存放文件:touch /home/mongodb/log/shard3.log
(因为mongodb文件下没有创建这些文件夹,但又不能缺少,因此需自己创建)

4、配置服务器部署

    创建config.conf

1、cd /home/mongodb/conf
2、 vim config.conf
3 、插入的数据如下

#插入如下内容
dbpath=/home/mongodb/data/config
logpath=/home/mongodb/log/config.log
port=27018
logappend=true
fork=true
maxConns=5000
#复制集名称
replSet=configs
#置参数为true
configsvr=true
#允许任意机器连接
bind_ip=0.0.0.0 ```

    配置复制集

mongod -f /home/mongodb/conf/config.conf

    连接mongo

1、mongo --host wq1 --port 27018
2、use admin
3、初始化复制集(#config是config.conf配置文件的复制集名称,三台机器配置服务组成配置集):
rs.initiate({_id:"configs",members:[{_id:0,host:"wq1:27018"},{_id:1,host:"wq2:27018"}, {_id:2,host:"wq3:27018"}]})
运行后三个机器的显示分别为: configs:SECONDARY>
configs:PRIMARY>
configs:PRIMARY>

4、查看状态:rs.status()
运行后如果出现该字段: “ok” : 1,
“operationTime” : Timestamp(1599217827, 2),

    使用脚本语言把一台机器的数据传给另一个机器

该脚本起名为copyall.sh
进行复制的脚本 源文件 目标文件
进行复制的命令:copyall.sh /home/mongodb /home/mongodb
在进行配置时可先配置好一个虚拟机最后通过该命令把配置好的文件传给其他两台虚拟机,另两台再稍作修改即可使用

#根据自己的机器名修改后再使用
#!/bin/bash
HOSTS='wq1 wq2 wq3'
for HOST in ${HOSTS}
do
echo "++正在复制$1到$HOST的$2中..."
scp -rq ${1} ${HOST}:${2}
echo "--发送完成!"
done

5、分片服务部署

    在 /home/mongodb/conf 下分别创建shard1.conf、shard2.conf、shard3.conf 并按照提示依次插入

配置内容大致相同,改动部分注在后面

dbpath=/home/mongodb/data/shard1 #shard2、shard3
logpath=/home/mongodb/log/shard1.log #shard2.log、shard3.log
port=27001 #27002、27003
logappend=true
fork=true
maxConns=5000
storageEngine=mmapv1
shardsvr=true
replSet=shard1 #shard2、shard3
bind_ip=0.0.0.0

    启动分片服务

每台机器分别在一个端口形成一个分片的复制集
#每台机器均运行如下片段

mongod -f /home/mongodb/conf/shard1.conf
mongod -f /home/mongodb/conf/shard2.conf
mongod -f /home/mongodb/conf/shard3.conf

    将分片配置为复制集(一台机器上进行操作)

下面运行完后还要分别运行mongo --host wq1 --port 27002
mongo --host wq1 --port 27003
再改变复制集的节点名
1、连接mongo:mongo --host wq1 --port 27001
2、切换数据库:use admin
3、初始化复制集:
rs.initiate({_id:"shard1",members:[{_id:0,host:"wq1:27001"},{_id:1,host:"wq2:27001"},{_id:2,host:"wq3:27001"}]})

6、路由服务部署

    创建mongos.conf
logpath=/home/mongodb/log/mongos.log
logappend = true
port = 27017
fork = true
configdb = configs/wq1:27018, wq2:27018, wq3:27018
maxConns=20000
bind_ip=0.0.0.0

    启动mongos

三台机器分别运行如下片段
mongos -f /home/mongodb/conf/mongos.conf

    启动分片功能(一台机器运行也可)

1、mongo --host wq1 --port 27017
2、use admin

#3 加入如下部分
sh.addShard("shard1/wq1:27001,wq2:27001,wq3:27001")
sh.addShard("shard2/wq1:27002,wq2:27002,wq3:27002")
sh.addShard("shard3/wq1:27003,wq2:27003,wq3:27003")

    查看集群状态

sh.status()

异常情况处理

环境变量配置完成后未能执行 source /etc/profile
在 vim config.conf 直接粘入代码 没有点击插入命令
虚拟机内存分配过小

配置成功

欢迎在评论区进行讨论

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

2020-9-4MongoDB集群配置

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 2020-9-4MongoDB集群配置
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏