所有
我有一个replicaset设置,我在同一台机器上运行两个mongo进程,端口28001上的M_pri和28002上的M_sec,具有以下配置:
"_id" : "myReplSet",
"version" : 1,
"protocolVersion" : NumberLong(1),
"members" : [
{
"_id" : 0,
"host" : "localhost:28001",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 1,
"host" : "localhost:28002",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : true,
"priority" : 0,
"slaveDelay" : NumberLong(0),
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"catchUpTimeoutMillis" : 2000,
"getLastErrorModes" : {
},
"replicaSetId" : ObjectId("593565b0ebd8ca36a07c6576")
}
此设置的目的是每天从M_sec上取mongodump(gunzip)。在mongodump期间,整个系统都会变慢,因为我有这些进程可以写入和读取M_pri。
在我关闭m_sec的mongodump期间,有没有办法停止从Primary到Secondary mongo的同步?
由于
答案 0 :(得分:1)
您可以将M_sec设置为延迟成员(https://docs.mongodb.com/manual/core/replica-set-delayed-member/#replica-set-delayed-members),因此它会在延迟时间内从M_pri复制。 要记住的事情:
要求
延迟成员:
- 必须优先为0名成员。将优先级设置为0以防止延迟成员成为主要成员。
- 应该是隐藏的成员。始终阻止应用程序查看和 查询推迟会员。 如果成员[n] .votes设置为1,则在主要选举中投票。
行为
延迟成员从a上的源oplog复制和应用操作 延迟。在选择延迟量时,请考虑数量 延迟:
- 必须等于或大于预期的维护窗口持续时间。
- 必须小于oplog的容量。有关oplog大小的更多信息,请参阅Oplog Size。
配置示例:
{
"_id" : <num>,
"host" : <hostname:port>,
"priority" : 0,
"slaveDelay" : <seconds>,
"hidden" : true
}