首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【翻译】Percona MongoDB 基于文件复制的初始同步

【翻译】Percona MongoDB 基于文件复制的初始同步

作者头像
保持热爱奔赴山海
发布2025-08-01 10:57:18
发布2025-08-01 10:57:18
910
举报
文章被收录于专栏:数据库相关数据库相关

下面文章来自mongodb官方博客。

原文地址 https://www.percona.com/blog/mongodb-fcbis/

我代表整个 Percona MongoDB 产品团队,很高兴地宣布 Percona Server for MongoDB 的重大增强: 基于文件复制的初始同步 (FCBIS)。 它旨在通过更有效的初始数据同步方法加速您的大规模数据库部署。FCBIS 减少了初始同步过程所需的时间和资源。

挑战

初始同步是部署 MongoDB 副本集成员的关键步骤,它依赖于数据复制技术,而对于大型数据集来说,这些技术非常耗时。初始化 Percona Server for MongoDB 新成员的逻辑方法(默认方法)太慢,无法满足数字世界的快速和动态可扩展性需求。此外,在服务器恢复的情况下,尽快恢复它尤为重要。到目前为止,Percona 和 MongoDB 社区用户只有这种方法来设置新的 ReplicaSet 成员,或者在它们超出可用的 oplog 窗口时恢复它们。这一挑战促使我们缩小了与 MongoDB Enterprise Advanced 的差距,并开发了一种源代码可用的解决方案,该解决方案可以在不影响可靠性和供应商锁定的情况下加速初始同步过程。

解决方案:基于文件复制的初始同步

基于文件复制的初始同步代表了 Percona Server 在 MongoDB 部署效率方面的飞跃。

利用此功能,Percona Server for MongoDB 用户现在可以显着减少引导新集群或向现有部署添加新节点所需的时间和资源。这是通过将数据文件从完全同步的 MongoDB 实例直接复制到新节点来实现的,无需通过网络进行冗长的逻辑数据复制。

运作方式

当新的 MongoDB 节点添加到现有副本集时,它会选择具有兼容设置的源节点。

然后,它使用源上的备份光标来获取要复制的文件列表和标记数据一致点的时间戳。

然后,文件复制开始,而源节点继续正常运行。为了防止源和目标之间的数据差距过大,目标节点执行 $backupCursorExtend 以拉取复制文件时发生的最新更改。

根据文件复制所需的时间,此“追赶”步骤可能会发生几次。

一旦复制了文件并且源节点和目标节点的 oplog 之间的间隙是可以接受的,目标节点就会关闭备份光标。

最后,它将复制的文件移动到其 dbPath,并调整时间戳以确保数据一致性。此时,节点已准备好加入集合并启动正常的 oplog apply。

性能比较

逻辑与文件基于复制的初始同步

默认情况下,Percona Server for MongoDB 和 MongoDB 社区用户依赖于逻辑初始同步方法,该方法涉及数据库实例通过读写 BSON 数据来复制数据,然后重新构建耗时的索引。

虽然有效,但此过程可能会占用大量资源,尤其是对于大型数据集。

相比之下,FCBIS 通过直接将数据库文件从源实例复制到目标实例来优化此过程,从而显着减少同步时间和服务器开销。这种方法可确保更快、更高效地初始化数据库实例,使用户能够以增强的敏捷性部署和扩展其数据库。

在性能测试中,我们观察到基于文件复制的初始同步执行可预测,并且尽管数据分布或索引数量存在差异,但初始化同步时间相似。总体初始化同步时间主要取决于外部因素,例如网络、磁盘 I/O 利用率和要复制的文件的大小。

Percona Server for MongoDB 上的 FCBIS 入门

更新到最新版本的 PSMDB,其中包括对 FCBIS(7.0.22-12 和即将发布的 8.0 版本)的支持:

配置新的副本集成员 : 若要启用基于文件复制的初始同步,请 根据初始同步的目标成员将 initialSyncMethod 参数设置为 fileCopyBases

代码语言:txt
复制
setParameter:
  initialSyncMethod: fileCopyBased

调整初始同步 :配置参数允许您自定义 FCBIS 进程的同步尝试和最大延迟大小。

通过采用 FCBIS,Percona Server for MongoDB 用户可以简化其数据库部署工作流程、降低运营复杂性并加快其应用程序的上市时间。这是一项重要的创新,不仅提高了可扩展性,而且:

  • 从故障中恢复,当需要完全重新同步时
  • 在私有、混合或云数据中心之间迁移

使用基于文件复制的初始同步具有以下限制

  • 不要在同步源或同步节点上运行备份
  • 不要写入同步节点上的本地数据库
  • 不能同时对多个目标节点使用相同的同步源,因为任何时候都只能存在一个备份游标。
  • 如果使用加密存储,Percona Server for MongoDB 会应用同步源节点中的加密密钥来保护同步节点上的数据。
  • 您必须将 WiredTiger 定义为存储引擎才能运行基于文件复制的初始同步。不支持 Percona 内存引擎引擎。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 挑战
  • 解决方案:基于文件复制的初始同步
  • 运作方式
  • 性能比较
  • Percona Server for MongoDB 上的 FCBIS 入门
  • 使用基于文件复制的初始同步具有以下限制
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档