mongodb副本集搭建

本文详细介绍了如何在三台CentOS7服务器上搭建MongoDB集群,包括关闭防火墙和SELinux服务,安装MongoDB,配置数据目录和配置文件,启动服务,初始化副本集,以及进行主备切换测试。同时,还提到了副本集的成员管理操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.本次搭建使用三台centos7主机搭建集群,关闭防火墙和selinux服务

2.主机信息如下图所示

主机名称IPPortService
A10.1.60.11427017mongodb
B10.1.60.11527017mongodb
C10.1.60.11827017mongodb

3.从官网下载mongodb安装包(我这里下载的是6.0.5版本的tgz包)

Install MongoDB Community Kubernetes Operator | MongoDB

4.创建mongodb目录并将安装包放到目录下解压(以下所有操作没有特殊标明的都要在三台主机上执行)

mkdir /etc/mongodb

tar -zxvf /etc/mongodb/mongodb-linux-x86_64-rhel70-6.0.5.tgz /etc/mongodb/

mv /etc/mongodb/mongodb-linux-x86_64-rhel70-6.0.5 /etc/mongodb/mongodb

ls /etc/mongodb

5. 创建mongodb存放数据目录和配置文件目录

cd /etc/mongodb/mongodb

mkdir data

mkdir conf

6.编辑mongodb配置文件

vi conf/mongodb.conf

logappend=true   #以追加的形式写入日志
logpath=/etc/mongodb/mongodb/mongodb.log  #存放mongodb日志文件
dbpath=/etc/mongodb/mongodb/data   #mongodb存放数据目录
journal=true   #journal是一种用于持久化写入操作的机制。当MongoDB执行写入操作时,它会先将操作写入journal文件,然后再写入到数据文件中。这样可以确保在发生故障或崩溃时,MongoDB可以从journal文件中恢复数据,并保证数据的一致性和完整性
fork=true      #在后台启动mongodb服务
pidfilepath=/etc/mongodb/mongodb/mongodb.pid  #存放mongodb服务的pid
port=27017   #mongodb客户端端口
bind_ip=0.0.0.0    
replSet=rs   #副本集名称

7.启动mongodb服务

bin/mongod --config conf/mongodb.conf

 bin/mongod --config conf/mongodb.conf --shutdown 此条是mongodb停止服务命令

8.安装mongosh服务(mongodb的6.0.5版本没有自带的客户端)

参考:

安装mongodb客户端_Apex Predator的博客-优快云博客

9.初始化副本集(在任意节点执行即可)

/etc/mongodb/mongosh-1.8.1-linux-x64/bin/mongosh --port 27017

rs.initiate({

_id:"rs"    #填写配置文件中设置的副本集名称

members:[

{_id:0,host:"10.1.60.114:27017"},

{_id:1,host:"10.1.60.115:27017"},

{_id:2,host:"10.1.60.118:27017",arbiterOnly:true}   #配置仲裁节点

]})

10.查看副本集状态

 rs.status()

可以看到副本集成功分配了主节点和备节点还有仲裁节点 

11.测试副本集主备切换

把主节点的服务先关闭,模拟主节点宕机

bin/mongod --config config/mongodb.conf --shutdown

 登录114节点查看副本集状态

/etc/mongodb/mongosh-1.8.1-linux-x64/bin/mongosh --host 10.1.60.114 --port 27017

rs.status()

 可以看到115节点服务状态不正常,114变更为了主节点,写入查询更新等操作在新的主节点上也正常,这里就不展示了,我已经测试过了

现在将115节点恢复看一下副本集状态

bin/mongod --config conf/mongodb.conf

 /etc/mongodb/mongosh-1.8.1-linux-x64/bin/mongosh --port 27017

rs.status()

可以看到115节点服务恢复正常后,变成了备节点,114依然是主节点 

12.副本集的管理

添加成员

rs.add('ip:port')

移除成员

rs.remove('ip:port')

只输出副本集成员信息

rs.status().members

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值