在复制集之中,我们通常会有删除复制集节点的操作
其中一个很典型的场景就是,海量数据的跨机房无缝迁移。例如,A机房 有一主一从两节点复制集,现在要把数据迁移到 B机房,并做到过程耗时很短,同时迁移失败及时回滚还原直接的连接配置。
一般会将B机房一个节点作为A机房复制集的从节点,直到同步趋于一致之后,再将连接改成B机房的,但是此过程会有如下问题:
stage001:PRIMARY> rs.remove("10.18.19.207:27019")
{ "ok" : 1 }
stage001:OTHER> rs.slaveOk();
stage001:OTHER> show dbs
admin 0.000GB
braavos 2.385GB
cms 3.997GB
loanapp 0.000GB
local 4.178GB
morpheus 0.106GB
scportal 0.000GB
sns 0.001GB
stage001:OTHER> rs.status()
{
"state" : 10,
"stateStr" : "REMOVED",
"uptime" : 10444617,
"optime" : {
"ts" : Timestamp(1539832013, 1),
"t" : NumberLong(27)
},
"optimeDate" : ISODate("2018-10-18T03:06:53Z"),</