我正在尝试在Amazon Ec2实例上创建副本集。我有一个主节点和一个辅助节点。如果我在10到12之间杀死了主节点的端口,那么我的辅助节点应该成为主节点,但不会发生。如果我在主服务器上启动mongodb,它也将作为辅助服务器启动,并且立即成为辅助服务器。当我检查配置设置时
"electionTimeoutMillis" : 10000
rs.config():当主服务器启动时
rs0:SECONDARY> rs.config();
{
"_id" : "rs0",
"version" : 2,
"protocolVersion" : NumberLong(1),
"writeConcernMajorityJournalDefault" : true,
"members" : [
{
"_id" : 0,
"host" : "xx.xxx.xx.xx:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 1,
"host" : "xx.xxx.xxx.xx:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"catchUpTimeoutMillis" : -1,
"catchUpTakeoverDelayMillis" : 30000,
"getLastErrorModes" : {
},
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
},
"replicaSetId" : ObjectId("5e26f399cf82d4f8bf826660")
}
}
答案 0 :(得分:1)
在两个成员副本集中,如果任何节点(主节点或辅助节点)发生故障,则其余节点只能是辅助节点。如果主节点故障,则辅助节点不能成为主节点。如果辅助节点发生故障,则主节点将降级为主节点并成为辅助节点。
当副本集中只有一个节点时,就不能进行任何数据复制(副本集是关于数据复制的,对吧?)。
第二个节点再次备份后,将进行选举,并且其中一个节点将成为主节点。一旦有了主数据库,就可能发生写操作并且数据复制将开始。
答案 1 :(得分:0)