MongoDB复制集成员的重新同步

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

复制集成员的重新同步

 

当复制失败,且落后于 primary 中oplog最大可承受的范围的时候,replica set 成员将变为 “陈旧” (stale)。该节点无法追上主节点就变的 “陈旧”了。当发生这种情况时,我们就不得不删除其数据文件,并通过 initial sync 来重新同步。

 

本教程包含了为陈旧的节点重新同步与新节点重新同步。当同步一个节点的时候,请确保机器有足够的空余带宽,并尽量在维护时间内进行,或是业务最不繁忙时。

 

MongoDB提供2中初始化同步(initial sync)的方式:

    a.清空数据目录,重启 mongod 实例,让MongoDB进行正常的初始化同步。这是个简单的方式,但是耗时较长。


    b.为该机器从其他节点上复制一份最近的数据文件,并重启。本方式操作步骤较多,但是最为快速。


步骤

 

自动同步

 

警告

在初始化同步的过程中,mongod 将会清空 dbPath 中的内容。

 

该步骤依靠MongoDB 自身的定期进程 initial sync 。这将恢复节点上最新的数据。有关MongoDB初始化恢复,请参考 复制过程 。


如果该实例没有数据,我们可以通过 为复制集新增节点 或是 更换复制集节点 来为复制集新增一个节点。


我们也可以通过指定一个空的 dbPath 并重启来将一个复制集中的 mongod 实例强制初始化同步。

    a.关闭 mongod 进程。通过在 mongo 窗口中使用 db.shutdownServer() 命令或者在Linux系统中使用 mongod --shutdown 参数来安全关闭。

    b.清空复制集节点的数据目录和其子目录,清除 dbPath 中的数据,MongoDB将会进行重新复制。可以考虑在这么做之前先做备份以防万一。


这时, mongod 将会进行初始化复制。初始化复制的耗时,将取决于数据库数据量和两节点之间的网络情况。


初始化复制将会影响其他节点,也会加大主节点的网络流量压力,且只会在有一个节点数据是最新的且连接无问题的时候进行。

 

通过从其他节点复制数据文件来同步


本方法通过使用已有节点上的数据文件来进行。数据文件 必须 是较新的(能够追上 oplog ).不然的话该节点还是需要进行初始化复制。

 

复制数据文件


我们可以直接复制数据文件也可以通过镜像。然而,大多数情况下,我们不应该复制未关闭的 mongod 实例的数据文件,因为复制过程中数据文件是会变动的。

 

重要

在复制数据文件的时候,我们也必须复制 local 数据库的数据文件。

 

我们*不应该*使用 mongodump 的备份作为数据文件,仅使用文件快照 。关于如何在运行中的 mongod 实例中获得一致性的数据文件,参考 MongoDB备份方案 。

 

同步节点


在我们复制了其他节点的数据文件后,启动 mongod 实例,其会追赶最新的数据直到数据一致。












本文转自UltraSQL51CTO博客,原文链接: http://blog.51cto.com/ultrasql/1661968,如需转载请自行联系原作者



相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
6月前
|
运维 监控 NoSQL
【MongoDB 复制集秘籍】Secondary 同步慢怎么办?深度解析与实战指南,让你的数据库飞速同步!
【8月更文挑战第24天】本文通过一个具体案例探讨了MongoDB复制集中Secondary成员同步缓慢的问题。现象表现为数据延迟增加,影响业务运行。经分析,可能的原因包括硬件资源不足、网络状况不佳、复制日志错误等。解决策略涵盖优化硬件(如增加内存、升级CPU)、调整网络配置以减少延迟以及优化MongoDB配置(例如调整`oplogSize`、启用压缩)。通过这些方法可有效提升同步效率,保证系统的稳定性和性能。
164 4
|
3月前
|
存储 NoSQL MongoDB
【赵渝强老师】部署MongoDB复制集
本文介绍了如何在单个节点上搭建MongoDB复制集环境,通过监听不同端口实现多节点配置。详细步骤包括创建数据目录、编辑配置文件、启动节点、初始化复制集、查看状态以及测试主从库的读写操作。文中还提供了视频讲解和代码示例,帮助读者更好地理解和操作。
|
3月前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB复制集中的成员
MongoDB复制集通常由一个主库和两个从库组成,可选添加仲裁者。主库负责所有写操作并记录Oplog日志,从库异步同步主库的Oplog日志并应用操作。仲裁者不存储数据,主要用于保证复制集中成员数量为奇数,参与选举投票。视频讲解详见B站链接。
|
3月前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB复制集的体系架构
MongoDB的复制集是一种集群技术,由一个Primary节点和多个Secondary节点组成,实现数据的高可用性。Primary节点处理写入请求,Secondary节点同步数据。当Primary节点故障时,Secondary节点可通过选举成为新的Primary节点。视频讲解和示意图详见正文。
|
6月前
|
C# UED 开发者
WPF与性能优化:掌握这些核心技巧,让你的应用从卡顿到丝滑,彻底告别延迟,实现响应速度质的飞跃——从布局到动画全面剖析与实例演示
【8月更文挑战第31天】本文通过对比优化前后的方法,详细探讨了提升WPF应用响应速度的策略。文章首先分析了常见的性能瓶颈,如复杂的XAML布局、耗时的事件处理、不当的数据绑定及繁重的动画效果。接着,通过具体示例展示了如何简化XAML结构、使用后台线程处理事件、调整数据绑定设置以及利用DirectX优化动画,从而有效提升应用性能。通过这些优化措施,WPF应用将更加流畅,用户体验也将得到显著改善。
453 1
|
6月前
|
监控 NoSQL 大数据
【MongoDB复制集瓶颈】高频大数据写入引发的灾难,如何破局?
【8月更文挑战第24天】在MongoDB复制集中,主节点处理所有写请求,从节点通过复制保持数据一致性。但在大量高频数据插入场景中,会出现数据延迟增加、系统资源过度消耗、复制队列积压及从节点性能不足等问题,影响集群性能与稳定性。本文分析这些问题,并提出包括优化写入操作、调整写入关注级别、采用分片技术、提升从节点性能以及持续监控调优在内的解决方案,以确保MongoDB复制集高效稳定运行。
150 2
|
6月前
|
C# 开发者 Windows
全面指南:WPF无障碍设计从入门到精通——让每一个用户都能无障碍地享受你的应用,从自动化属性到焦点导航的最佳实践
【8月更文挑战第31天】为了确保Windows Presentation Foundation (WPF) 应用程序对所有用户都具备无障碍性,开发者需关注无障碍设计原则。这不仅是法律要求,更是社会责任,旨在让技术更人性化,惠及包括视障、听障及行动受限等用户群体。
137 0
|
7月前
|
分布式计算 DataWorks NoSQL
DataWorks产品使用合集之怎么离线同步MongoDB的增量数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
7月前
|
自然语言处理 运维 NoSQL
MongoDB集群同步
实现 MongoDB Cluster-to-Cluster 即集群同步的工具是:mongosync 详情可参考如下官方文档: https://www.mongodb.com/zh-cn/docs/cluster-to-cluster-sync/current/quickstart/ 以上这个地址的文档一看就是机器翻译的,可能有不恰当的地方,但基本可参考使用。 以下是本次在某项目地配置集群同步的简要步骤,可参考使用。
110 6
|
8月前
|
NoSQL 测试技术 MongoDB
使用同步和异步方式更新插入MongoDB数据的性能对比
在这篇文章中,我将探讨如何使用同步和异步方式插入数据到MongoDB,并对两种方式的性能进行对比。并将通过Python中的 pymongo 和 motor 库分别实现同步和异步的数据插入,并进行测试和分析。