首页 > 数据库 > SQL > 正文

mongodb如何做主从?

冷炫風刃
发布: 2025-11-05 08:01:02
原创
855人浏览过
副本集是MongoDB实现高可用的推荐方式,包含一个主节点和多个从节点。创建数据目录后,启动三个带replSet参数的mongod实例,连接任一节点执行rs.initiate()初始化,并用rs.add()添加其他成员。主节点处理写操作,从节点复制数据并可配置读操作。若主节点宕机,系统自动选举新主节点。通过rs.status()可查看节点状态。传统主从模式已废弃,不支持自动故障转移,应使用副本集以获得自动容灾能力。

mongodb如何做主从?

MongoDB 实现主从复制的方式已经不再推荐使用传统的“主从模式”(Master-Slave),而是采用 副本集(Replica Set)来实现高可用和数据冗余。副本集本质上就是现代 MongoDB 中的“主从”机制,但更稳定、支持自动故障转移。

什么是副本集?

副本集是一组 MongoDB 服务器,其中包含一个主节点(Primary)和多个从节点(Secondary)。主节点处理所有写操作,从节点复制主节点的数据并可处理读操作。如果主节点宕机,系统会自动选举一个新的主节点。

搭建副本集的步骤

以下是在本地模拟三个节点搭建副本集的基本流程:

1. 创建数据目录

为每个 MongoDB 实例创建独立的数据目录:

  • mkdir -p /data/rs1 /data/rs2 /data/rs3
2. 启动三个 MongoDB 实例

分别启动三个 mongod 进程,并指定副本集名称(如 rs0):

  • mongod --port 27017 --dbpath /data/rs1 --replSet rs0 --bind_ip localhost
  • mongod --port 27018 --dbpath /data/rs2 --replSet rs0 --bind_ip localhost
  • mongod --port 27019 --dbpath /data/rs3 --replSet rs0 --bind_ip localhost
3. 初始化副本集

连接到其中一个实例(如 27017),进入 mongo shell:

  • mongo --port 27017

执行初始化命令:

maven使用方法 中文WORD版
maven使用方法 中文WORD版

本文档主要讲述的是maven使用方法;Maven是基于项目对象模型的(pom),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven将你的注意力从昨夜基层转移到项目管理层。Maven项目已经能够知道 如何构建和捆绑代码,运行测试,生成文档并宿主项目网页。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

maven使用方法 中文WORD版 0
查看详情 maven使用方法 中文WORD版
rs.initiate()
rs.add("localhost:27018")
rs.add("localhost:27019")
登录后复制

你会看到 PRIMARY 和 SECONDARY 节点状态自动分配。

验证副本集状态

在 mongo shell 中运行:

rs.status()
登录后复制

可以查看各个节点的角色、同步状态和健康情况。

读写操作说明

默认情况下:

  • 所有写操作必须发生在主节点。
  • 从节点默认不可读,需启用读选项:db.getMongo().setSlaveOk() 或使用 readPreference 配置。

注意事项

传统主从模式(通过 --master 和 --slave 参数)已在新版本中废弃,不支持自动故障转移,容易出问题。强烈建议使用副本集替代。

基本上就这些,用副本集就能实现安全可靠的“主从”效果,还带自动容灾能力。

以上就是mongodb如何做主从?的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号