Mongodb6.x 副本集集群部署

注意:mongo5.0+开始,需要cpu支持avx指令
不支持的话运行mongod -f mongo.conf出现报错 Illegal instruction (core dumped)的错误提示。如果cpu不支持,就只能用4.x部署了。

# 查看cpu是否支持avx,支持的话,会有打印
cat /proc/cpuinfo | grep avx 

节点规划

Primary        172.25.6.75    27017
Secondary1     172.25.6.76    27017
Secondary2     172.25.6.77    27017

一、前期准备

1、下载安装包

1.1 数据库

在这里插入图片描述

1.2 mongosh

mongodb的命令行工具,6.x需要单独下载
在这里插入图片描述

1.3 tools

包含mongodump,mongoexport、mongostat等工具
在这里插入图片描述

2、服务器环境初始化

2.1 修改hostname

hostnamectl  set-hostname mongo1
hostnamectl  set-hostname mongo2
hostnamectl  set-hostname mongo3

2.2 配置hosts

vi /etc/hsots

172.25.6.75 mongo1
172.25.6.76 mongo2
172.25.6.77 mongo3

2.3 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

二、安装

1、解压

mkdir /data

tar -zxvf mongodb-database-tools-rhel70-x86_64-100.7.2.tgz 
mv mongodb-database-tools-rhel70-x86_64-100.7.2 mongotools

tar -zxvf mongodb-linux-x86_64-rhel70-6.0.6.tgz 
mv mongodb-linux-x86_64-rhel70-6.0.6 mongo6rs

tar -zxvf mongosh-1.9.1-linux-x64.tgz 
mv mongosh-1.9.1-linux-x64 mongosh

2、添加环境变量

cd ~
vi .bash_profile

export PATH=/data/mongosh/bin:$PATH
export PATH=/data/mongotools/bin:$PATH
export PATH

source .bash_profile

3、配置文件

3.1 创建相关文件夹

mkdir -p /data/mongo6rs/{db,log,key}

3.2 生成key

#在节点1操作
cd /data/mongo6rs/key
openssl rand -base64 756 > mongo.key
chmod 400 mongo.key
# 将key文件发送到另外2个节点的相同位置
scp /data/mongo6rs/key/mongo.key mongo2:/data/mongo6rs/key/
scp /data/mongo6rs/key/mongo.key mongo3:/data/mongo6rs/key/

3.3 配置conf文件

vi /data/mongo6rs/mongod.conf

# 设置数据文件的存放目录
dbpath=/data/mongo6rs/db

# 设置日志文件的存放目录及其日志文件名
logpath=/data/mongo6rs/log/mongodb.log

# 设置为以守护进程的方式运行,即在后台运行
fork=true

#使用追加的方式写日志
logappend=true

#每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)
journal=true

#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复
#存储引擎有mmapv1、wirtiger、mongorocks
storageEngine=wiredTiger

#最大同时连接数
maxConns=1000

#绑定ip
bind_ip= 0.0.0.0

#端口
port=27017
 
# 设置副本集名称
replSet=mongors

#是否需要认证,如果启用,则需要创建mongodb账号密码,使用账号密码才可以远程访问
auth = true

#key文件
keyFile=/data/mongo6rs/key/mongo.key

3.4 启动3个节点的mongod

/data/mongo6rs/bin/mongod --config  /data/mongo6rs/mongod.conf

3.5 集群初始化

在主节点上运行
[root@mongodb1 mongo4rs]# mongosh

test> use admin
switched to db admin

rs.initiate({  
    _id:"mongors", 
    members:[    
        {_id:0,host:"172.25.6.75:27017",priority:3},  
        {_id:1,host:"172.25.6.76:27017",priority:2},
        {_id:2,host:"172.25.6.77:27017",priority:1}
    ]
});
#返回OK:1表示初始化成功
{ ok: 1 }

#查看集群状态
rs.status();

如果想初始化一个仲裁节点

rs.initiate({  //复制集初始化
    _id:"rs0", //复制集的名称 与几个配置文件相同
    members:[    //复制集成员信息
        {_id:0,host:"127.0.0.1:27017",priority:3},   //_id唯一标记 priority权重,越大优先级越高。host主机地址
        {_id:1,host:"127.0.0.1:27018",priority:2},
        {_id:2,host:"127.0.0.1:27019",priority:1},
        {_id:3,host:"127.0.0.1:27020",arbiterOnly:true}  //arbiterOnly:是否是仲裁节点,权重越高越能成为主节点
    ]
});

3.6 创建admin用户

db.createUser({
  user: "admin",
  pwd: "admin",
  roles: [
    { role: "root", db: "admin"}
  ]
});
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值