主节点发生故障时,Mongodb辅助节点未成为主节点

时间:2020-01-21 17:20:06

标签: mongodb replicaset

我正在尝试在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")
        }
}

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

blog可能会对您有所帮助。

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