Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

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

在此页面上

  • Overview
  • Considerations
  • 步骤

从节点从主节点捕获数据以维护集合数据的最新副本。但是,默认情况下,从节点可能会根据成员之间 ping 时间的变化以及其他成员复制的状态,自动将其同步目标更改为从节点。有关更多信息,请参阅副本集数据同步自管理链式复制

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

要暂时覆盖默认的同步目标选择逻辑,可以手动配置从节点成员的同步目标以临时提取oplog条目。以下内容提供对此功能的访问:

如果在运行 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>");

后退

更改主机名