mongodb主从复制_动力节点Java学院整理
发布时间 - 2026-01-11 02:56:39 点击率:次从这一篇开始我们主要讨论mongodb的部署技术。

我们知道sql server能够做到读写分离,双机热备份和集群部署,当然mongodb也能做到,实际应用中我们不希望数据库采用单点部署,如果碰到数据库宕机或者被毁灭性破坏那是多么的糟糕。
一:主从复制
1: 首先看看模型图
2: 从上面的图形中我们可以分析出这种架构有如下的好处:
<1> 数据备份。
<2> 数据恢复。
<3> 读写分离。
3:下面我们就一一实践
实际应用中我们肯定是多服务器部署,限于自己懒的装虚拟机,就在一台机器上实践了。
第一步:我们把mongodb文件夹放在D盘和E盘,模拟放在多服务器上。
第二步:启动D盘上的mongodb,把该数据库指定为主数据库,其实命令很简单:>mongodb --dbpath='XXX' --master,
端口还是默认的27017.
第三步:同样的方式启动E盘上的mongodb,指定该数据库为从属数据库,命令也很简单,当然我们要换一个端口,比如:8888。
source 表示主数据库的地址。
>mongod --dbpath=xxxx --port=8888 --slave --source=127.0.0.1:27017
第四步:从图中的红色区域我们发现了一条:“applied 1 operations"这样的语句,并且发生的时间相隔10s,也就说明从属数据库每10s
就向主数据库同步数据,同步依据也就是寻找主数据库的”OpLog“日志,可以在图中红色区域内发现”sync_pullOpLog“字样。
接下来我们要做的就是测试,惊讶的发现数据已经同步更新,爽啊。
4:如果我还想增加一台从属数据库,但是我不想在启动时就指定,而是后期指定,那么mongodb可否做的到呢?答案肯定是可以的。
我们的主或者从属数据库中都有一个叫做local的集合,主要是用于存放内部复制信息。
好,那么我们就试一下,我在F盘再拷贝一份mongodb的运行程序,cmd窗口好多啊,大家不要搞乱了。
看上面的log,提示没有主数据库,没关系,某一天我们良心发现,给他后期补贴一下,哈哈,再开一个cmd窗口,语句也就是
在sources中add一个host地址,最后发现数据也同步到127.0.0.1:5555这台从属数据库中....
5: 读写分离
这种手段在大一点的架构中都有实现,在mongodb中其实很简单,在默认的情况下,从属数据库不支持数据的读取,但是没关系,
在驱动中给我们提供了一个叫做“slaveOkay"来让我们可以显示的读取从属数据库来减轻主数据库的性能压力,这里就不演示了。
二:副本集
这个也是很牛X的主从集群,不过跟上面的集群还是有两点区别的。
<1>: 该集群没有特定的主数据库。
<2>: 如果哪个主数据库宕机了,集群中就会推选出一个从属数据库作为主数据库顶上,这就具备了自动故障恢复功能,很牛X的啊。
好,我们现在就来试一下,首先把所有的cmd窗口关掉重新来,清掉db下的所有文件。
第一步: 既然我们要建立集群,就得取个集群名字,这里就取我们的公司名shopex, --replSet表示让服务器知道shopex下还有其他数据库,
这里就把D盘里面的mongodb程序打开,端口为2222。指定端口为3333是shopex集群下的另一个数据库服务器。
第二步: 既然上面说3333是另一个数据库服务器,不要急,现在就来开,这里把E盘的mongodb程序打开。
第三步: ok,看看上面的日志红色区域,似乎我们还没有做完,是的,log信息告诉我们要初始化一下“副本集“,既然日志这么说,那我也就
这么做,随便连接一下哪个服务器都行,不过一定要进入admin集合。
第四步: 开启成功后,我们要看看谁才能成为主数据库服务器,可以看到端口为2222的已经成为主数据库服务器。
第五步:我们知道sql server里面有一个叫做仲裁服务器,那么mongodb中也是有的,跟sql server一样,仲裁只参与投票选举,这里我们
把F盘的mongodb作为仲裁服务器,然后指定shopex集群中的任一个服务器端口,这里就指定2222。
然后我们在admin集合中使用rs.addArb()追加即可。
追加好了之后,我们使用rs.status()来查看下集群中的服务器状态,图中我们可以清楚的看到谁是主,还是从,还是仲裁。
不是说该集群有自动故障恢复吗?那么我们就可以来试一下,在2222端口的cmd服务器按Ctrl+C来KO掉该服务器,立马我们发现
在3333端口的从属服务器即可顶上,最后大家也可以再次使用rs.status()来看下集群中服务器的状态。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# mongodb
# 主从复制
# MongoDB的主从复制及副本集的replSet配置教程
# MongoDB在不同主机间复制数据库和集合的教程
# MongoDB的Master-Slave主从模式配置及主从复制要点解析
# MongoDB入门教程之主从复制配置详解
# MongoDB 主从复制实例讲解
# 详解mongoDB主从复制搭建详细过程
# MongoDB复制集原理详解
# Mongodb 副本集搭建问题总结及解决办法
# Mongodb副本集和分片示例详解
# MongoDB副本集丢失数据的测试实例教程
# MongoDB 复制(副本集)学习笔记
# 都有
# 图中
# 放在
# 也就
# 一台
# 我们可以
# 就来
# 双机
# 单点
# 第二步
# 数据库中
# 群中
# 第三步
# 实际应用
# 后期
# 第四步
# 一个叫做
# 没关系
# 这一
# 就会
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
微信小程序 require机制详解及实例代码
JavaScript如何实现路由_前端路由原理是什么
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
Laravel用户密码怎么加密_Laravel Hash门面使用教程
如何在建站之星网店版论坛获取技术支持?
如何用AWS免费套餐快速搭建高效网站?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
EditPlus中的正则表达式 实战(1)
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
利用python获取某年中每个月的第一天和最后一天
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
如何在香港服务器上快速搭建免备案网站?
高性价比服务器租赁——企业级配置与24小时运维服务
Laravel如何使用模型观察者?(Observer代码示例)
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
php485函数参数是什么意思_php485各参数详细说明【介绍】
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
javascript中对象的定义、使用以及对象和原型链操作小结
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
大学网站设计制作软件有哪些,如何将网站制作成自己app?
历史网站制作软件,华为如何找回被删除的网站?
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
浅谈javascript alert和confirm的美化
Windows Hello人脸识别突然无法使用
中国移动官方网站首页入口 中国移动官网网页登录
Laravel如何使用Telescope进行调试?(安装和使用教程)
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
如何快速打造个性化非模板自助建站?
在Oracle关闭情况下如何修改spfile的参数
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
手机网站制作与建设方案,手机网站如何建设?
如何在IIS中新建站点并解决端口绑定冲突?
Laravel如何生成API文档?(Swagger/OpenAPI教程)
python中快速进行多个字符替换的方法小结
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
智能起名网站制作软件有哪些,制作logo的软件?
如何快速搭建自助建站会员专属系统?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
上一篇:一台服务器最多能部署多少个网站?
上一篇:一台服务器最多能部署多少个网站?

