replSetSyncFrom
说明
replSetSyncFrom
暂时覆盖当前
mongod
的默认同步目标。 此操作对于测试不同模式以及设立成员未从所需托管复制的情况非常有用。提示
在
mongosh
中,还可以通过rs.syncFrom()
辅助方法运行此命令。辅助方法对
mongosh
用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。在
admin
数据库中运行replSetSyncFrom
。
兼容性
此命令可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
重要
M 0 、M 2 、M 5和 M 10 + 集群不支持此命令。 有关更多信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
该命令具有以下语法:
db.adminCommand( { replSetSyncFrom: "hostname<:port>" } )
命令字段
该命令采用以下字段:
字段 | 类型 | 说明 |
---|---|---|
replSetSyncFrom | 字符串 | 该成员应从中进行复制的副本集成员的名称和端口号。 使用 副本集 |
行为
同步逻辑
如果运行replSetSyncFrom
时初始同步操作正在进行中, replSetSyncFrom
则会停止进行中的初始同步,并使用新目标重新启动同步进程。
仅根据需要修改默认同步逻辑,并且始终谨慎操作。
目标
要同步的节点必须是数据集中数据的有效来源。如需从节点同步,节点必须:
有数据。在启动或恢复模式下不能是仲裁节点,必须能够响应数据查询。
可访问。
在副本集配置中是同一集的成员。
使用
members[n].buildIndexes
设置构建索引。集合中的另一个成员,以防止与自身同步。
如果尝试从落后当前节点 10 秒以上的节点复制,mongod
将记录警告,但仍会从落后的节点复制。另请参阅“复制延迟和流量控制”。
持久性
replSetSyncFrom
提供对默认行为的临时覆盖。 在以下情况下, mongod
将恢复为默认同步行为:
有关使用replSetSyncFrom
的更多信息,请参阅配置自管理从节点的同步目标。