部署MongoDB复制集(主从复制、读写分离、高可用)
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,MongoDB 复制集复制集(Replica Sets)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余备份并提高了数据的可用性,通过复制集可以对硬件故障和中断的服务进行恢复。Mong
千家信息网最后更新 2025年01月21日部署MongoDB复制集(主从复制、读写分离、高可用)
MongoDB 复制集
复制集(Replica Sets)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余备份并提高了数据的可用性,通过复制集可以对硬件故障和中断的服务进行恢复。
MongoDB 复制集工作原理
- mongodb的复制集至少需要两个节点。其中一个是主节点(Primary),负责处理客户端请求,其余的都是从节点(Secondary),负责复制主节点上的数据。
- mongodb各个节点常见的搭配方式为:一主一从、一主多从。主节点记录其上的所有操作到 oplog 中,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。
- 客户端在主节点写入数据,在从节点读取数据,主节点与从节点进行数据交互保障数据的一致性。如果其中一个节点出现故障,其他节点马上会将业务接过来而无需停机操作。
MongoDB 复制集的特点及优势
复制集的特点:
- N个节点的群集
- 任何节点都可作为主节点
- 所有写入操作都在主节点上
- 自动故障转移
- 自动恢复
- 复制集的优势:
- 让数据更安全
- 高数据可用性(24x7)
- 灾难恢复
- 无停机维护(如备份、索引重建、故障转移)
- 读缩放(额外的副本读取)
- 副本集对应用程序是透明的
MongoDB 复制集部署
我们可以在一台服务器上创建多实例,来做复制集
MongoDB安装及创建多实例详解在博文CentOS 7安装MongoDB(最新版4.0)
配置复制集
- 创建4个 MongoDB 实例
# 创建实例的数据目录mkdir -p /data/mongodb/mongodb{1,2,3,4} # 创建实例的日志目录mkdir -p /data/logs # 创建实例的日志文件touch /data/logs/mongodb{1,2,3,4}.log # 赋予日志文件权限 chmod 777 /data/logs/mongodb*.log #创建实例的配置文件存放位置 mkdir -p /data/conf
- 创建配置文件,开启复制集功能
这里博主偷了个小懒,将配置文件存放在之前创建的 /data/conf/ 目录下,后面创建的启动脚本为实验机的相对路径# vim /data/conf/mongodb1.conf //简易配置为下, dbpath=/data/mongodb/mongodb1 logpath=/data/logs/mongodb1.log port=27017 replSet=testrc #配置参数值为testrc logappend=true fork=true maxConns=5000 storageEngine=mmapv1
需要注意其他三个实例的配置文件中的数据文件存放位置及日志文件和端口要改
- 编写脚本方便对4条实例进行控制(这里用的是相对路径,请根据实际修改)
[root@CentOS7 conf]# cd /usr/local/mongodb/bin[root@CentOS7 bin]# vim mongodb #!/bin/bashINSTANCE=$1ACTION=$2case "$ACTION" in'start')/usr/local/mongodb/bin/mongod -f /data/conf/"$INSTANCE".conf;;'stop')/usr/local/mongodb/bin/mongod -f /data/conf/"$INSTANCE".conf --shutdown;;'restart')/usr/local/mongodb/bin/mongod -f /data/conf/"$INSTANCE".conf --shutdown/usr/local/mongodb/bin/mongod -f /data/conf/"$INSTANCE".conf;;esac [root@CentOS7 bin]# chmod +x mongodb[root@CentOS7 bin]# ./mongodb mongodb1 restart[root@CentOS7 bin]# ./mongodb mongodb2 restart[root@CentOS7 bin]# ./mongodb mongodb3 restart[root@CentOS7 bin]# ./mongodb mongodb4 restart[root@CentOS7 bin]# netstat -ntap | grep mongod
- 配置三个节点的复制集
4.1 查看复制集的状态信息mongo #(默认端口:27017)> rs.status()
4.2 定义cfg初始化参数(这里添加三台,剩下的那台实验添加节点功能)> cfg={"_id":"testrc","members":[{"_id":0,"host":"192.168.125.119:27017"},{"_id":1,"host":"192.168.125.119:27018"},{"_id":2,"host":"192.168.125.119:27019"}]}
4.3 启动复制集功能,初始化配置时保证从节点没有数据,保持主从节点数据同步> rs.initiate(cfg)
- 添加节点
testrc:PRIMARY> rs.add("192.168.125.119:27020")
- 删除节点
testrc:PRIMARY> rs.remove("192.168.125.119:27020")
节点
数据
实例
配置
文件
副本
故障
日志
功能
目录
服务
一致
三个
优势
位置
参数
可用性
备份
客户
客户端
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发语言会一种即可
魔力宝贝单机 数据库修改器
部队网络安全方面
软件开发技术股份比例
qt 客户端安全断开服务器
怀旧服pvp哪个服务器最猛
职校大专计算机网络技术
歌尔的软件开发岗位
网络技术教程路由表
部队网络安全教育照片
圣诞节铃声软件开发
服务器怎么换系统
数据库定义一个规则对象
质量过硬的即时通讯软件开发
联想服务器专卖
如何理解管理和服务器
漯河网络安全协会
数据库倒库是什么意思
三级数据库
河北省网络安全技术协会
网络安全等级保护有几个等级
阿里云服务器攻击
电脑服务器中程序重启怎么弄
湖南pdu服务器电源生产厂
产业互联网龙头的股票科技
公安局线上网络安全宣讲
数据库表高效设计书籍
以太网串口服务器价格
衡水市瑞腾软件开发有限公司
戴尔服务器磁盘阵列不引导