MongoDB 会丢数据吗? 在次补刀MongoDB 双机热备

这篇具有很好参考价值的文章主要介绍了MongoDB 会丢数据吗? 在次补刀MongoDB 双机热备。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MongoDB   会丢数据吗? 在次补刀MongoDB  双机热备,mongodb,数据库

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis ,Oracle ,Oceanbase 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请加微信号 liuaustin3 (共1220人左右 1 + 2 + 3 +4)新人会进入3群 

以后会争取每天一段感悟,不讨论对错,幼儿园的孩子才每件事论对错

最强大的,这个词不一定是个好词,最强大的往往是最虚弱的,那些天天和你谈格局,谈奉献,谈爱,强大的人,很可能内心和垃圾堆里面的碎玻璃一样,闪闪发光。如何和这样的人交往呢,一定要把自己碎的更厉害,发出耀眼的光,此刻他就不和你谈格局了

上期中提到了关于MongoDB 双机热备那篇文章是毒 !本期继续补刀,不把这样害死人的思维模式捅死,我是不会罢休的。

在使用多年MongoDB 后,是否问过一个问题,MongoDB 是否会丢数据,回答是不会。为什么?

在MongoDB的使用中,除了我们熟知了 Oplogs 来进行数据的复制同步到其他的节点,同时MongoDB也提供大部分传统数据库都提供的WAL 日志,--- Journaling ,在早期的版本 4.0 前你还可以关闭Journal log 

storage.journal.enaled: false

但在4.0后的MongoDB 你不能在关闭Journal log, 这样的情况下很多人认为MongoDB 不会丢失数据,实际上不是的,这里我们全部默认MongoDB 的数据引擎为wiredTiger 并且checkpoint的工作是正常的,在这样的情况下, MongoDB 有了Journal log 有了checkpoint 的工作机制,这里看似MongoDB 应该不会丢数据,但是我们需要注意的是,看下图

MongoDB   会丢数据吗? 在次补刀MongoDB  双机热备,mongodb,数据库

在 MongoDB 中,如果是单机的模式下,从逻辑的角度来说,会丢数据按照数据库秒的默认设置,100ms 刷新Journal log ,则按照上图,会有可能最大丢失 100ms 内在MongoDB 中操作的数据。

怎么结果是丢数据,MongoDB 会丢数据,估计那些对于这个在DBEGINE 排名第四的数据库还是唯一的NOSQL数据库要各种 “踩” 了。

MongoDB   会丢数据吗? 在次补刀MongoDB  双机热备,mongodb,数据库

1  没有人告诉你MongoDB 的生产部署模式是单机, 那篇官方文档提到过,建议你部署MongoDB是单机模式。

2  有没有人告诉你,Mongodb 基本的部署模式 replica set 复制集默认的写是 w: majority 

Majority 的含义为写大多数,也就是默认复制集合的节点最少为3 ,在这样的情况下,大多数为至少每次写入数据落盘2个节点。

MongoDB   会丢数据吗? 在次补刀MongoDB  双机热备,mongodb,数据库

好,那么在这样的操作下,MongoDB 有了Journal log , 有了Oplogs 支持下的 Replica 和 事务的大多数写作数的情况下,此时的MongoDB 的数据是安全的,在这样的情况下,我们认为操作 MongoDB 事务的情况下,数据是不会丢失的。

以下面的语句,这里插入了一条数据并且明确的标定,我们写入的情况下返回成功的前提是,节点中的大多数回馈,数据写入后,反馈事务提交成功。

db.data.insertOne(
   { name: "Simon", age : 30, level: "C" },
   { writeConcern: { w: "majority" , wtimeout: 5000 } }
)

在这样的情况下MongoDB 的数据写入是安全的,可以信赖的。

此时我们回到题目中的问题,如果你的MongoDB 是通过复制集中的协议但是你只搭建了2个节点,那么根据上述的MongoDB 数据安全和数据不丢失的理论就无从实现了,因为2个节点是不存在大多数这个概念的,在这样的情况下,我们无法从逻辑上保证数据是安全不丢失的。2节点破坏了MongoDB 的基本原理,包含Arbiter 的方式部署,这样的方式也在MongoDB 不在被推荐和建议。

所以每个数据库本身都有自己的理论和实现,并保证通过自己的理论来完成数据库不丢失数据的诺言。

所以MongoDB 双机热备就是一个伪命题,一个到处展现对于MongoDB无知的状态。

另关于MongoDB 如何清理  journal log 的问题,这里做一个回答,网络关于如果清理journal log 的部分,各种回答都有,这里注意

1  现在MongoDB 4.x 后都是WiredTiger 的数据引擎,这样的情况下不存在修改smallfile 的清理 journal log 的方案。

2  现有的Journal log 是产生100MB 大小的文件,并且在数据库做了checkpoint 的操作后,会自动删除废弃的 journal log 

3  如果需要手动删除journal log  则可以采用如下的方式进行手动删除

1 在需要删除Journal log 的MongoDB 服务器运行 

db.fsyncLock()

2  进入到Journal log 的日志目录,rm 相关文件

MongoDB   会丢数据吗? 在次补刀MongoDB  双机热备,mongodb,数据库

3  在MongoDB 中执行

db.fsyncUnlock()

以上的工作原理为,db.fsyncLock() 主要是将数据脏页全部刷新到磁盘,并停止数据的再次刷新的工作,此时就是一个人工的checkpoint点,此时可以将jounral log 进行清理。然后必须解除不能数据刷新的锁定。

最后,不懂MongoDB 基本原理,然后提出MongoDB双机热备的 T DBA 们,你们呀 ?  GET OUT

MongoDB   会丢数据吗? 在次补刀MongoDB  双机热备,mongodb,数据库

MongoDB   会丢数据吗? 在次补刀MongoDB  双机热备,mongodb,数据库文章来源地址https://www.toymoban.com/news/detail-694271.html

到了这里,关于MongoDB 会丢数据吗? 在次补刀MongoDB 双机热备的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux--Keepalived 双机热备

    7.1 Keepalived 双机热备基础知识        Keepalived起初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换(Failover) 和健康检查査(Health Checking)功能一一判断LVS 负载调度器、节点服务器的可用性,及时隔离并替 换为新的服务器,当故障主机恢复后将其重新加入群集。

    2024年03月23日
    浏览(39)
  • 第 3 章 Keepalived 双机热备

    会构建双机热备系统 会构建 LVS+HA 高可用群集         在这个高度信息化的 IT 时代,企业的生产系统、业务运营、销售和支持,以及日常管理等环节越来越依赖于计算机信息和服务,对高可用(HA)技术的应用需求不断提高,以便提供持续的、不间断的计算机系统或网络

    2024年01月17日
    浏览(36)
  • ensp华为防火墙双机热备

    实验拓扑 实验要求 构建网络拓扑,根据拓扑图配置 IP 地址, 配置 2 台防火墙 VRRP 和心跳接口, 接口区域划分并配置访问控制策略,使 PC2 可以 ping 通 PC1, 测试 FW1 接口宕机后, PC2 是否仍然可以与 PC1 通信。 实验过程  配置IP地址 注意PC的网关为虚拟IP   FW1(这里g1/0/2ip为17

    2024年02月05日
    浏览(44)
  • 【HCIE安全】双机热备-主备备份

    传统的组网方式如图所示,内部用户和外部用户的交互报文全部通过FW1。如果FW1出现故障,内部网络中所有以FW1作为默认网关的主机与外部网络之间的通讯将中断,通讯可靠性无法保证。 在网络架构设计时,通常会在关键位置部署两台(双机)或多台设备,以提升网络的可能

    2024年02月05日
    浏览(37)
  • Nginx+keepalived 双机热备(主主模式)

    centos7.9  64位   2台  2C4G IP:  192.168.123.78,192.168.123.82 VIP:192.168.123.30,192.168.123.31 共用脚本 nginx_check.sh 安装192.168.123.78环境 1、更新系统环境 2、安装keepalived  3、修改配置文件 4、检查并启动 keepalived  5、查看配置结果     如下显示配置成功 安装192.168.123.82环境  1、更新

    2024年02月05日
    浏览(38)
  • LNMT的多机部署和双机热备

    目录 一、环境 二、配置tomcat 三、配置nfs共享 四、配置nginx 1、两台都需要折磨配置 2、在http下面插入这两条信息  五、配置keepalived 1、安装 2、重新启动一下keepalived查看IP 六、验证双机热备 1、查看调度器备的IP,ip漂移说明keepalived生效  2、访问静态页面 3、 访问动态页面

    2024年02月10日
    浏览(40)
  • 【keepalived双机热备与 lvs(DR)】

    目录 一、概述 1.简介 2.原理 3.作用 二、安装 1.配置文件 2.配置项 三、功能模块 1.core 2.vrrp 3.check 四、配置双机热备 1.master 2.backup 五、验证 1.ping验证 2.服务验证 六、双机热备的脑裂现象 七、keepalived+lvs(DR) 1.作用 2.调度器配置 2.1 安装keepalived 2.2 安装ipvsadm 2.3 配置keepalive

    2024年02月11日
    浏览(36)
  • 防火墙双机热备之配置过程指导

    结合自身网络的特点,常见一下四种组网: 防火墙业务接口工作在第三层,连接二层交换机、防火墙业务接口工作在第三层,连接路由器、防火墙业务接口工作在 第二层 ,连接二层交换机、防火墙业务接口工作在 第二层 ,连接路由器。 若出现上行连接交换机、下行连接路

    2024年01月19日
    浏览(40)
  • keepalived双机热备,keepalived+lvs(DR)

    本节主要学习了keepalived+lvs的作用和配置方法主要配置调度器和web节点,还有keepalived的双击热备,主要内容有概述,安装,功能模块,配置双击热备,验证方法,双击热备的脑裂现象和VIP无法通信。 目录  keepalived双机热备 一、概述 原理 二、安装 1.yum install -y keepalived 2.配置

    2024年02月11日
    浏览(38)
  • 网络安全之防火墙 双机热备实验

    目录 网络安全之防火墙 双机热备实验 实验图 基本配置 PC1  SW2 PC2 ​编辑 SW3配置  登陆防火墙图形界面 ​编辑 FW1的配置  FW2的配置 新建trust to untrust 区域的安全策略 配置心跳线 在FW1与FW2之间拉一条心跳线  ​编辑 配置FW1 g 1/0/2 口 ip ​编辑  配置FW2 g 1/0/2 口 ip 将心

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包