在这篇文章中,我们将讨论推迟复制组的成员,以及它如何可能是有用的。延迟的成员复制设置类似于像复制组的其他成员,但它的数据反映了集合的延迟状态数据。假设如果延迟节点是推迟了一个小时和当前时间是11点,那么它的数据集反映了最近的操作直到十点。
延迟的成员复制和应用操作从主的oplog延迟。延迟的时间延迟的成员必须大于或等于预期的维护窗口期间。延迟的时间应小于oplog窗口。延迟二次不能承认写之前的配置slaveDelay或secondaryDelaySecs。
设置成员的选举推迟0和隐藏的可以提高集群的性能。考虑如果你有primary-secondary-delayed和二级架构和延迟节点无投票权的延迟时间15分钟。当写关心的是”多数”和non-delayed成员变得不可用,那么,应用程序必须等待承认写大约15分钟。在这种情况下,提交点会滞后。存储引擎会将所有变更后提交点在磁盘上保持持久的历史。它会随着时间的推移增加I / O写,结果影响写和缓存的压力。
要求一个节点是一个延迟二级成员:
- 优先级为零:辅助节点必须推迟0优先级。它的优先级应该设置为0停止该节点从一个主节点。因为它会推迟成员和反映的延迟状态数据集,它应该避免成为一个主节点。
- 隐藏:延迟节点必须隐藏。该节点将反映的延迟状态数据集,应用程序应该停下来查看和查询延迟节点。
- Oplog: Oplog窗的能力必须超过指定数量的延迟。
在切分,延迟二级成员利益有限,如果平衡器正在运行。因为延迟成员克隆块迁移延迟,延迟状态的成员将不会被用于恢复到以前的状态的分片集群如果迁移发生在延迟窗口。
可以配置一个辅助节点延迟成员二级通过调整[n] .priority成员价值0,[n] .hidden成员价值真正的,它的[n] .slaveDelay成员价值的秒数延迟。例如,一个节点配置为延迟如下:
|
1
2
3
4
5
6
|
卢比
:
主
>
cfg
=
rs
. conf
(
)
卢比
:
主
>
cfg
.members
(
2
]
.priority
=
0
卢比
:
主
>
cfg
.members
(
2
]
.hidden
=
真正的
卢比
:
主
>
cfg
.members
(
2
]
.slaveDelay
=
900年
/ /slaveDelay
是
在
秒
和
在
v5
。
0
起
,
这
参数
改变了
来
secondaryDelaySecs
。
卢比
:
主
>
cfg
.members
(
2
]
.votes
=
0
卢比
:
主
>
rs
.reconfig
(
cfg
)
|
注意:重新配置一套副本可能会导致一次大选,所以建议做上述计划的维护窗口中。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
卢比
:
主
>
rs
. conf
(
)
.members
(
2
]
{
“_id”
:
3
,
“主机”
:
“demo-node-3:27017”
,
“arbiterOnly”
:
假
,
“buildIndexes”
:
真正的
,
“隐藏”
:
真正的
,
“优先”
:
0
,
“标签”
:
{
}
,
“slaveDelay”
:
NumberLong
(
900年
)
,
“投票”
:
0
}
|
延迟二级副本集成员怎么能有用吗?
因为延迟二级成员是推迟了一段时间,它可能是有用的,如果需要回滚到一个更早的时间也可以作为热备份保护反对错误不小心删除整个数据库/集合。或者考虑,如果一个应用程序升级完成,但不成功或操作员错误。在这种情况下,延迟二级成员可以是有用的恢复。
结论
延迟二级可能有用的意外删除整个数据库/收集和删除我尚未应用。e直到指定的延迟时间。您还需要确保您有足够的oplog windows允许与主保持同步。然而,全面恢复解决方案,我们会建议备份解决方案。你可以检查Percona备份解决方案雷竞技下载官网,了解更多请访问雷竞技下载官网为MongoDB Percona备份。
我们也鼓励你尝试我们的产品等MongoDB雷竞技下载官网MongoDB Percona服务器或雷竞技下载官网Percona运营商对MongoDB。






