mongoDB-延迟复制集成员

延迟成员包含一套复制集的数据集的复制。然而,延迟成员的数据集反映了先前的,或推迟的复制集状态。例如,如果当前时间是09:52并且成员已经延迟一个小时,延迟成员没有比08:52更近的操作。

因为延迟成员是数据集的“滚动备份”或运行的“历史”快照,所以它们可以帮助您从各种人为错误中恢复。例如,延迟的成员可以从失败的应用程序升级和操作员错误(包括丢失的数据库和集合)中恢复。

注意事项

要求

延迟成员:

  • 必须是优先级为0的成员。将优先级设置为0,以防止延迟的成员成为主成员。
  • 应该是隐藏成员。始终防止应用程序查看和查询延迟的成员。
  • 如果members[n].votes设置为1,在主节点的选举中投票。

行为

延迟成员在延迟时(不马上复制,而是等待一段时间再复制)复制并应用来自源oplog的操作。选择延时量时,考虑延时量:

  • 必须等于或大于预期的维护窗口持续时间。
  • 必须小于oplog的容量。有关oplog大小的更多信息,请参见oplog大小

写级别

延迟复制集成员可以确认w: 发出的写操作。对于与w一致的写操作:“多数”,然而,被延迟的成员也必须是有投票权的成员(即members[n].votes大于0)确认“多数”写入操作。无表决权的复制集成员(即members[n].votes为0)不能帮助确认多数级别的写操作。

延迟的次节点可以不早于配置的slaveDelay返回写应答。

碎片

在分片集群中,启用平衡器时,延迟成员的实用程序有限。因为延迟的成员使用延迟来复制块迁移,所以如果延迟窗口期间发生任何迁移,那么在sharded集群中延迟成员的状态对于恢复到sharded集群的前一状态是没有用的。

例子

在以下5个副本集中,主系欸但和所有次节点都有数据集的副本。一个成员应用延迟为3600秒(1小时)的操作。这个延迟的成员也是隐藏的,并且是优先级为0的成员。
在这里插入图片描述

配置

延迟的成员有它的 members[n].priority为0,members[n].hidden等于真,它的members[n].slaveDelay等于延迟的秒数:

{
   "_id" : <num>,
   "host" : <hostname:port>,
   "priority" : 0,
   "slaveDelay" : <seconds>,
   "hidden" : true
}

若要配置延迟的成员,请参阅配置延迟的复制集成员

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值