On this page
延迟副本集成员
在本页面
延迟的成员包含replica set's数据集的副本。但是,延迟成员的数据集反映了该集的较早或延迟的状态。例如,如果当前时间是 09:52,并且成员有一个小时的延迟,则延迟的成员没有比 08:52 更新的操作。
由于延迟成员是数据集的“滚动备份”或正在运行的“历史”快照,因此它们可以帮助您从各种人为错误中恢复。例如,延迟成员可以从失败的应用程序升级和操作员错误(包括删除的数据库和集合)中恢复。
Considerations
Requirements
Delayed members:
必须 priority 0个成员。将优先级设置为 0,以防止延迟成员成为主要成员。
**应该是_1 个成员。始终阻止应用程序查看和查询延迟的成员。
如果members[n].votes设为 1,请在elections中投票投票。
Behavior
延迟的成员会延迟延迟并从源oplog复制并应用操作。在选择延迟量时,请考虑以下延迟量:
必须等于或大于预期的维护时段。
必须小于 oplog 的容量。有关 oplog 大小的更多信息,请参见Oplog Size。
Write Concern
延迟的副本集成员可以确认由w: <number>发出的写操作。但是,对于使用w:“多数”进行写操作的写入操作,延迟的成员还必须是有表决权的成员(即members[n].votes大于0
)以确认"majority"
的写操作。无表决权的副本集成员(即members[n].votes是0
)不能有助于确认具有majority
写关注的写操作。
延迟的辅助节点可以不早于已配置的slaveDelay返回写确认。
Sharding
Example
在下面的 5 成员副本集中,主要副本和所有次要副本具有数据集的副本。一名成员执行操作的延迟时间为 3600 秒(一小时)。此延迟成员也是隐藏,并且是优先级 0 成员。
Configuration
延迟成员的members[n].priority等于0
,members[n].hidden等于true
,并且members[n].slaveDelay等于延迟的秒数:
{
"_id" : <num>,
"host" : <hostname:port>,
"priority" : 0,
"slaveDelay" : <seconds>,
"hidden" : true
}
要配置延迟成员,请参阅配置延迟副本集成员。