Mongodb 当主节点发生故障时,辅助节点不会成为主节点
Mongodb Secondary node not becoming Primary when Primary fails
我正在尝试在 Amazon Ec2 上创建副本集 instances.I 有一个主节点和一个辅助节点 node.If 我在 10 到 12 秒内关闭了主节点的端口 我的辅助节点应该成为主节点但是不是 happening.After 10 分钟,它也处于辅助状态 only.If 我在主服务器上启动 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")
}
}
查看您的配置,您似乎正在使用偶数节点,这会导致主节点的选举出现问题。
这篇 blog 可能会对您有所帮助。
有关详细信息,请参阅 Replication in MongoDB
在双成员副本集中,如果任何节点(主要或次要)发生故障,则其余节点只能是次要节点。如果主服务器出现故障,则辅助服务器无法成为主服务器。如果辅助节点出现故障,主节点将降级为主节点并成为辅助节点。
当副本集中只有一个节点时,无法进行任何数据复制(副本集是关于数据复制的,对吧?)。
一旦第二个节点再次备份,就会进行选举,其中一个节点成为主节点。一旦有一个主要的,写入就可以发生并且数据复制将开始。
我正在尝试在 Amazon Ec2 上创建副本集 instances.I 有一个主节点和一个辅助节点 node.If 我在 10 到 12 秒内关闭了主节点的端口 我的辅助节点应该成为主节点但是不是 happening.After 10 分钟,它也处于辅助状态 only.If 我在主服务器上启动 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")
}
}
查看您的配置,您似乎正在使用偶数节点,这会导致主节点的选举出现问题。
这篇 blog 可能会对您有所帮助。
有关详细信息,请参阅 Replication in MongoDB
在双成员副本集中,如果任何节点(主要或次要)发生故障,则其余节点只能是次要节点。如果主服务器出现故障,则辅助服务器无法成为主服务器。如果辅助节点出现故障,主节点将降级为主节点并成为辅助节点。
当副本集中只有一个节点时,无法进行任何数据复制(副本集是关于数据复制的,对吧?)。
一旦第二个节点再次备份,就会进行选举,其中一个节点成为主节点。一旦有一个主要的,写入就可以发生并且数据复制将开始。