MongoDB测试集群搭建(切片+副本集) 3.4

MongoDB测试集群搭建(切片+副本集) 3.4

 

问题描述

原来公司使用的是 mongodb v3.2.2 版本,在这个版本中发现一个问题在集群环境下,如果有一个节点关机后,前台访问php访问mongodb的性能就会变得超慢,然后就开始各种折腾,没有解决,在升级版本到3.4.2中发现解决完成。

 

环境准备

         首先需要三台服务器,集群模式三台,在网上搜到材料都是切三个片,我没有太理解这样做的原因,我就做了一个切片+副本集,配置见如下表格:

 

服务器IP

端口

用途

备注

192.168.1.42

29017

Mongodb切片存储数据端口

 

192.168.1.43

29017

Mongodb切片存储数据端口

 

192.168.1.44

29017

Mongodb切片存储数据端口

 

192.168.1.42

20001

Congfig配置集群负责管理mongodb

 

192.168.1.43

20001

Congfig配置集群负责管理mongodb

 

192.168.1.44

20001

Congfig配置集群负责管理mongodb

 

192.168.1.42

30000

Mongodb路由端口

 

192.168.1.43

30000

Mongodb路由端口

 

192.168.1.44

30000

Mongodb路由端口

 

 

软件部署

下载地址 推荐官网 下载地址:

 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.24.tgz

 

 下载完成解压到opt目录下,重命名为mongodb注意大小写,我们后面要配置环境变量

编译 /etc/profile 在最后面加入:

export MONGODB_HOME=/opt/mongodb

export PATH=$PATH:$MONGODB_HOME/bin

然后执行 #source /etc/profile

在终端直接执行 mongo 会显示出版本号,说明配置成功

创建 mongodb用户,密码也为mongodb执行命令如下:

# useradd mongodb

# passwd mongodb

# chown -R mongodb:mongodb /data/

在/目录下创建 /data目录并创建 两个子目录 /data/r4,/data/ config,将所属修改为mongodb

请保持下服务器时钟一致否则会有问题,然后我们来正式配置数据库

服务配置

  1. 首先配置29017端口,我没用配置配置方式,直接用命令行参数形式启动命令,分别在三台服务器上执行如下命令:

#opt/mongodb/bin/mongod --shardsvr --replSet r4 --port 29017 --dbpath /data/r4 --logpath /data/r4/r4.log --logappend --nssize 64 --oplogSize 10240 --maxConns 1000 --fork

任意找一台服务器开始数据29017端口切片存储服务器集群,在终端上执行

# mongo --port 29017

>config={_id:'r4',members:[{_id:0,host:'192.168.1.42:29017'},{_id:1,host:'192.168.1.43:29017'}, {_id: 2, host: '192.168.1.44:29017'}]}

>rs.initiate(config)

>exit

在从新登录#mongo --port 29017

>rs.status();

查看那个节点显示的是PRIMARY 即为主节点,请记住这主节点 后面还有用

 

  1. 下面开始配置20001端口,编辑配置文件在每个节点上执行 #vim /data/config.conf,填入如下信息:

bind_ip=192.168.1.42,127.0.0.1

dbpath=/data/config

logpath=/data/config/config.log

port=20001

pidfilepath=/data/config.pid

directoryperdb=true

logappend=true

fork=true

configsvr=true

journal=true

replSet = config

         注意:bind_ip 是每个节点ip,记得修改

         都配置完成后20001配置端口启动mongodb服务端口

         # mongod -f /data/config.conf

任意找一台服务器开始数据20001端口管理mongodb服务器集群,在终端上执行

# mongo 127.0.0.1:20001/admin

> configSvr = {_id: 'config', members: [{_id: 0, host: '192.168.1.42:20001', priority:2},{_id: 1, host: '192.168.1.43:20001'},{_id: 2, host: '192.168.1.44:20001'},]};

>rs.initiate(configSvr)

>rs.status()

配置完成后查看 查看那个是congfig主服务,这里需要注意id: 'config' 不能修改名字

  1. 配置mongos 和 开启 数据切片,编辑配置文件在每个节点上执行

#vim /data/mongs.conf,填入如下信息:

configdb=config/192.168.1.42:20001,192.168.1.43:20001,192.168.1.44:20001

logpath=/data/route.log

port=30000

pidfilepath=/data/route.pid

logappend=true

fork=true

都配置完成后30000配置端口启动mongodb服务端口

#mongos -f /data/mongs.conf

#mongo 127.0.0.1:30000/admin

>db.runCommand({addshard:"r4/192.168.1.42:29017,192.168.1.43:29017,192.168.1.44:29017"});

> db.runCommand({ enablesharding:"adbox" });

    > db.runCommand({ enablesharding:"fbbox" });

>exit

数据库整体配置完了,接下来我开始测试会测试一下这个mongodb的性能

 

Mongodb数据库 基本查询命令

show dbs   询所有数据库列表
show collections 查看库下面有那些集合
db.user.find() 查看user集合有哪些数据  

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值