centos Mongodb集群搭建

环境介绍:

本次部署主要采用Replica Set 模式,该模式是一种互为主从的关系。Replica Set 将数据复制多份保存,不同服务器保存同一份数据,在出现故障时自动切换,实现故障转移。如果数据量特别大,需要使用Sharding模式,该模式部署维护复杂。

名称IP操作系统
Mongodb-master192.168.0.241Centos7.6
Mongodb-slave192.168.0.242Centos7.6
Mongodb-arbiter192.168.0.243Centos7.6

一、 部署与配置

将安装包文件分别放到241、242、243三台服务器的/opt目录下,并进行解压

tar -zxf mongodb-linux-x86_64-4.0.2.tgz

将解压后的文件进行重命名

mv mongodb-linux-x86_64-4.0.2 mongodb

创建数据存储目录

241mkdir -p data/mongodb/master
242mkdir -p data/mongodb/slave
243mkdir -p data/mongodb/arbiter

(注:切到/opt目录下执行以上命令)

241上编写配置文件vim /etc/mongodb_master.conf,配置文件内容如下:

#master.conf
dbpath=/opt/data/mongodb/master
logpath=/opt/mongodb/master.log
pidfilepath=/opt/mongodb/master.pid
keyFile=/opt/mongodb/mongo.key
directoryperdb=true
logappend=true
replSet=testdb
bind_ip=192.168.0.241
port=39760
auth=true
oplogSize=100
fork=true
noprealloc=true
maxConns=800

在这里插入图片描述

242上编写配置文件vim /etc/mongodb_slave.conf,配置文件内容如下:

#slave.conf
dbpath=/opt/data/mongodb/slave
logpath=/opt/mongodb/slave.log
pidfilepath=/opt/mongodb/slave.pid
keyFile=/opt/mongodb/mongo.key
directoryperdb=true
logappend=true
replSet=testdb
bind_ip=192.168.0.242
port=39760
auth=true
oplogSize=100
fork=true
noprealloc=true
maxConns=1000

在这里插入图片描述

243上编写配置文件vim /etc/mongodb_arbiter.conf,配置文件内容如下:

#arbiter.conf
dbpath=/opt/data/mongodb/arbiter
logpath=/opt/mongodb/arbiter.log
pidfilepath=/opt/mongodb/arbiter.pid
keyFile=/opt/mongodb/mongo.key
directoryperdb=true
logappend=true
replSet=testdb
bind_ip=192.168.0.243
port=39760
auth=true
oplogSize=100
fork=true
noprealloc=true
maxConns=1000

在这里插入图片描述

二、 生成集群验证key文件

使用openssl生成key文件openssl rand -base64 741 > /opt/mongodb/mongo.key
在这里插入图片描述

将key文件分别拷贝到242和243服务器的/opt/mongodb目录下,并在每台服务器上都对key文件加400权限chmod 400 mongo.key
在这里插入图片描述

三、 配置用户密码

分别启动三台服务器上的mongodb程序,241先启,启动命令:/opt/mongodb/bin/mongod -f /etc/mongodb_master.conf
在这里插入图片描述

启动成功后,进入mongodb数据库,命令:/opt/mongodb/bin/mongo 192.168.0.241:39760(注:默认将241作为主,以下操作只需要在241上执行即可)
在这里插入图片描述

切到admin库

use admin

配置集群

cfg={ _id:"testdb", members:[ {_id:0,host:'192.168.0.241:39760',priority:2}, {_id:1,host:'192.168.0.242:39760',priority:1}, {_id:2,host:'192.168.0.243:39760',arbiterOnly:true}] };

初始化配置:

rs.initiate(cfg)

在这里插入图片描述

创建名称为myadmin的管理员用户

db.createUser({user:"myadmin",pwd:"mypassword",roles:[ { role: "userAdminAnyDatabase", db: "admin"}]});

在这里插入图片描述

至此用户创建完成,退出mongodb数据库,直接输入exit回车即可。
在这里插入图片描述

四、 重启并验证

关闭mongodb进程,将之前配置文件中注释的key验证的两行注释取消,再重启mongodb程序。
关闭mongodb方法:首先查看mongodb进程号ps -ef |grep mongodb,再杀掉进程kill -9 进程号
在这里插入图片描述

修改配置文件vim /etc/mongodb_master.conf
在这里插入图片描述

(注:以上关闭mongodb进程修改配置文件,需要在三个服务器上都操作,建议241最后关闭)
配置文件修改完成后,三台服务器上再重新启动mongodb,此时先启241,可以保障241作为主启动,后续的配置就可以在241上操作。如果先启动的别的服务器,会导致别的服务器变成主,后续的所有操作就需要在别的服务器上进行了。启动命令:

/opt/mongodb/bin/mongod -f /etc/mongodb_master.conf

1、切到admin库,命令:use admin; 授权登录,命令:db.auth(“myadmin”,“mypassword”),返回1表示登录成功。
2、给mydb库授权,所有者为用户myadmin,命令:db.grantRolesToUser( “myadmin” , [{role:“dbOwner”,db:“mydb”}])
3、切到mydb库,命令:use mydb;创建myadmin用户,命令:db.createUser( { user: “myadmin”,pwd: “mypassword”,roles: [ { role:“readWrite”,db:“mydb” } ] })
4、用户创建成功后,可以验证使用myadmin用户登录mydb库,如果返回1,表示授权成功。
在这里插入图片描述
如果要创建其它的库以及完成授权,按照以上方法操作即可。
至此部署与授权完成,当主服务器故障宕机,会有其它的服务器接管为主并继续提供服务,保障服务的长期稳定支行。

如有疑问或指正,请关注后留言,一起进步。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值