配置自管理辅助节点的同步目标
概述
辅助副本从主成员捕获数据以维护集合数据的最新副本。然而,默认情况下,辅助副本可能会根据成员之间的ping时间和其他成员复制状态的变化自动更改其同步目标。参见副本集数据同步 和 自管理链式复制 以获取更多信息。
对于某些部署,实施自定义复制同步拓扑可能比默认同步目标选择逻辑更有效。MongoDB 提供了指定用作同步目标的宿主机的功能。
要临时覆盖默认同步目标选择逻辑,您可以手动配置一个 辅助副本 成员的同步目标,以临时拉取 操作日志 条目。以下提供访问此功能的方法
注意事项
同步逻辑
如果在运行 replSetSyncFrom
/rs.syncFrom()
时正在进行初始同步操作,replSetSyncFrom
/rs.syncFrom()
将停止进行的初始同步,并使用新目标重新启动同步过程。
仅在需要时修改默认的同步逻辑,并始终谨慎行事。
目标
要从中同步的成员必须是集合中数据的有效来源。要从成员同步,成员必须
拥有数据。它不能是仲裁者,处于启动或恢复模式,并且必须能够回答数据查询。
可访问。
是副本集配置中同一集合的成员。
使用
members[n].buildIndexes
设置构建索引。集合中的不同成员,以防止从自身同步。
如果您尝试从比当前成员落后超过10秒的成员进行复制,mongod
将记录警告,但仍将从延迟的成员复制。另请参阅复制延迟和流控制。
持久性
replSetSyncFrom
/rs.syncFrom()
提供默认行为的临时覆盖。以下情况下,mongod
将恢复到默认同步行为:
程序
要在mongosh
:中使用replSetSyncFrom
命令:
db.adminCommand( { replSetSyncFrom: "hostname<:port>" } );
要在mongosh
:中使用rs.syncFrom()
辅助函数:
rs.syncFrom("hostname<:port>");