首页 > 其他分享 >mongo集群同步数据异常,手动同步节点副本数据

mongo集群同步数据异常,手动同步节点副本数据

时间:2024-09-16 20:01:42浏览次数:11  
标签:副本 mongo 同步 数据 节点 初始

转载请注明出处:

数据同步方案

  当副本集节点的复制进程落后太多,以至于主节点覆盖了该节点尚未复制的 oplog 条目时,副本集节点就会变为“陈旧”。节点跟不上,就会变得“陈旧”。出现这种情况时,必须删除副本集节点的数据,然后执行初始同步,从而完全重新同步该节点。

MongoDB 提供了两种执行初始同步的选项:

  • 第一种:使用空数据目录重新启动 mongod,然后让 MongoDB 的正常初始同步功能恢复数据。这是更简单的选项,但可能需要更长的时间替换数据。

  • 第二种:使用副本集中另一个成员最近的数据目录副本重新启动计算机。此过程可以更快地替换数据,但需要较多的手动步骤。

逻辑初始同步流程

执行逻辑初始同步时,MongoDB 将:

  1. 克隆除本地数据库之外的所有数据库。要进行克隆,mongod 会扫描每个源数据库中的每个集合,然后将所有数据插入自己的这些集合副本中。

  2. 在为每个集合复制文档时构建该集合的所有索引。

  3. 在数据复制过程中拉取新添加的 oplog 记录。确保目标成员在 local 数据库中有足够的磁盘空间,以便在此数据复制阶段期间临时存储这些 oplog 记录。

  4. 将所有更改应用于数据集。mongod 使用来自源的 oplog,更新其数据集以反映副本集的当前状态。

完成初始同步后,节点从 STARTUP2 转换到 SECONDARY

命令查看节点数据同步

              通过 rs.status()命令查看mongo集群的数据同步状态,其中主要观察optimeDate字段的值是否能基本保持一致,以及可以查看stateStr中查看状态是否正常。

    以下是同步状态异常的服务查看示例:

                             

 解决方法

  上图中mongo2:27017中的数据状态同步异常,当状态同步异常时,可以先尝试重启mongo,让异常节点去自动同步其他节点的数据。

  如果还不能解决,则可以将当前节点的数据库目录文件删除,删除之后再重启整个mongo集群,这样在启动的时候,会自动同步数据。

参考链接

  重新同步自管理副本集的成员:https://www.mongodb.com/zh-cn/docs/manual/tutorial/resync-replica-set-member/#std-label-replica-set-resync-by-copying

 

标签:副本,mongo,同步,数据,节点,初始
From: https://www.cnblogs.com/zjdxr-up/p/18416556

相关文章

  • JavaScript 中的异步任务、同步任务、宏任务与微任务
    JavaScript中的异步任务、同步任务、宏任务与微任务在JavaScript的世界里,理解异步任务、同步任务、宏任务和微任务是非常重要的,它们共同构成了JavaScript独特的执行机制。一、同步任务与异步任务1.同步任务定义:同步任务是在代码执行过程中,按照顺序依次执行的任务......
  • MySQL 主从复制:实现数据同步与高可用
    在数据库系统中,数据的可靠性和可用性至关重要。MySQL的主从复制功能为我们提供了一种有效的方式来实现数据同步和高可用。今天,我们就来深入探讨一下MySQL中如何实现主从复制。一、主从复制的概念与作用主从复制是指将一个MySQL数据库服务器(主服务器)的数据复制到一个或多个M......
  • 如何在 Fork 的 GitHub 项目中保留自己的修改并同步上游更新?github_fork_update
    如何在Fork的GitHub项目中保留自己的修改并同步上游更新?在GitHub上Fork了一个项目后,你可能会对项目进行一些修改,同时原作者也在不断更新。如果想要在保留自己修改的基础上,同步原作者的最新更新,很多人会不知所措。本文将详细讲解如何在不丢失自己改动的情况下,将上游仓库的更......
  • mongo查看服务状态
    转载请注明出处:查看数据库列表showdbs查看当前数据库db查看集合列表showcollections查看数据库的状态db.stats() 查看集合的状态db.collectionName.stats()  这个命令会返回名为users的集合的详细状态信息,包括......
  • C#笔记13 线程同步概念及其实现,详解lock,Monitor,Mutex代码用法
    同步的概念在我们学会在C#中使用线程之后,我们拥有了把一个程序中的不同代码段在不同线程中运行的能力,可以说此时我们已经能够做到让他们分别执行,异步执行。对于我们的桌面端程序,使用多线程可以让我们在后台进行操作的时候保持用户界面的响应。对于服务器应用程序,多线程可以......
  • MySQL基于GTID同步模式搭建主从复制
    系列文章目录rpmbuild构建mysql5.7.42版本的rpm包文章目录系列文章目录一、mysql-5.7.42RPM包构建二、同步模式分类介绍1.异步同步模式2.半同步模式2.1.实现半同步操作流程2.2.半同步问题总结2.3.半同步一致性2.4.异步与半同步对比3.GTID同步三、GTID同步介绍1.gtid......
  • MongoDB与Pymongo深度实践:从基础概念到无限级评论应用示例
    文章目录前言一、MongoDB1.基本介绍2.概念解析3.常见的数据类型4.Docker安装5.常用命令二、Pymongo1.基本操作(连接、数据库、集合)2.基本操作(增删改查)三、MongoDB应用示例:无限级评论1.MongoDB工具类2.实现无限级评论逻辑3.Vue树形结构展示无限级评论前言  ......
  • 高效率同步降压 DC-DC 转换器MAX17502FATB+T为智能设备续航助力
    MAX17502FATB+T高效率、高电压、同步降压型DC-DC转换器工作于4.5V至60V输入电压范围,设计用于宽范围供电(0.9V至92%VIN)。提供高达1A输出电流,输出电压为3.3V和5V。工作温度范围内,输出电压精度保持在±1.7%以内。MAX17502FATB+T工作在-40°C至+125°C工业温度范围,并提供紧凑TDFN......
  • 分享两颗超低静态电流的同步升压IC
    分享两颗超低静态电流的同步升压IC如何提高升压电路的转换效率高效率、低损耗的电源升压芯片FP6277与FP6276B  在便携式产品设计中,如何让干电池和锂电池供电产品在不增加电池体积的情况下尽量延长产品的使用和待机时间是很多时候我们需要考虑的问题,开关电源部分作为电流......
  • 如何实现两个机器时间同步-计算rtt+offset
    背景:之前的项目大致可以分为两层,逻辑层和设备层,运行在同一个主机上。最近在着手搭建一个仿真平台,在另外一台主机上部署机器人机器相关硬件设备,比如陀螺仪,轮机,雷达等。由于两台主机的时间戳不同步问题,导致定位系统有问题,为此需要实现两个主机的时间同步。具体分两步:1)测量两主机......