[Mongodb辅助节点在主节点发生故障时不成为主节点

问题描述 投票:0回答:2

我正在尝试在Amazon Ec2实例上创建副本集。我有一个主节点和一个辅助节点。如果在10到12之间杀死主节点的端口,则我的辅助节点应成为主节点,但不会发生。在10分钟后它仅处于辅助状态。如果我在主服务器上启动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")
        }
}
mongodb replicaset
2个回答
0
投票

查看您的配置,似乎您正在使用偶数节点,这会在选择主节点时造成问题。

blog可能会对您有所帮助。

有关更多信息,请参考Replication in MongoDB


0
投票

在两个成员副本集中,如果任何节点(主节点或次节点)发生故障,其余节点只能是次节点。如果主节点故障,则辅助节点不能成为主节点。如果辅助节点发生故障,则主节点将降级为主节点并成为辅助节点。

当副本集中只有一个节点时,就不能进行任何数据复制(副本集是关于数据复制的,对吧?)>

一旦第二个节点再次备份,就会进行选举,并且其中一个节点将成为主要节点。一旦有了主数据库,就可能发生写操作并且数据复制将开始。

© www.soinside.com 2019 - 2024. All rights reserved.