文档菜单
文档首页
/
MongoDB 手册
/ / /

配置自管理辅助节点的同步目标

本页概述

  • 概述
  • 考虑事项
  • 步骤

辅助副本从主成员捕获数据以维护集合数据的最新副本。然而,默认情况下,辅助副本可能会根据成员之间的ping时间和其他成员复制状态的变化自动更改其同步目标。参见副本集数据同步自管理链式复制 以获取更多信息。

对于某些部署,实施自定义复制同步拓扑可能比默认同步目标选择逻辑更有效。MongoDB 提供了指定用作同步目标的宿主机的功能。

要临时覆盖默认同步目标选择逻辑,您可以手动配置一个 辅助副本 成员的同步目标,以临时拉取 操作日志 条目。以下提供访问此功能的方法

如果在运行 replSetSyncFrom/rs.syncFrom() 时正在进行初始同步操作,replSetSyncFrom/rs.syncFrom() 将停止进行的初始同步,并使用新目标重新启动同步过程。

仅在需要时修改默认的同步逻辑,并始终谨慎行事。

要从中同步的成员必须是集合中数据的有效来源。要从成员同步,成员必须

  • 拥有数据。它不能是仲裁者,处于启动或恢复模式,并且必须能够回答数据查询。

  • 可访问。

  • 是副本集配置中同一集合的成员。

  • 使用 members[n].buildIndexes 设置构建索引。

  • 集合中的不同成员,以防止从自身同步。

如果您尝试从比当前成员落后超过10秒的成员进行复制,mongod 将记录警告,但仍将从延迟的成员复制。另请参阅复制延迟和流控制。

replSetSyncFrom/rs.syncFrom()提供默认行为的临时覆盖。以下情况下,mongod将恢复到默认同步行为:

  • mongod实例重启。

  • mongod和同步目标之间的连接关闭。

  • 如果同步目标落后于复制集的另一成员超过30秒。

要在mongosh:中使用replSetSyncFrom命令:

db.adminCommand( { replSetSyncFrom: "hostname<:port>" } );

要在mongosh:中使用rs.syncFrom()辅助函数:

rs.syncFrom("hostname<:port>");

返回

更改主机名