iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mongodb中怎么切换集群节点故障
  • 936
分享到

mongodb中怎么切换集群节点故障

2024-04-02 19:04:59 936人浏览 八月长安
摘要

mongoDB中怎么切换集群节点故障,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。处理方法方法1、一般会自动切换,如果shard是由3个节

mongoDB中怎么切换集群节点故障,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

处理方法

方法1、一般会自动切换,如果shard是由3个节点组成的replica set,主节无法连接到另外两个副节点时,和rs.conf()里面的electionTimeoutMillis值相关默认是10秒,两个副节点自动会有选择一个节点成为主节点;如果shard是由2个节点组成的replica set,把主节点启动后该主节点自动变成了副节点,原副节点自动变成了新的主节点

方法2、如果主节点机器完全无法使用了,需要对某个shard的副本节点执行切换,切换到primay状态,monGo命令进入这个shard的辅助节点,查看rs.conf()配置信息,并查看rs.status()状态,看到主节点无法连接,使用rs.reconfig()重新配置,rs.reconfig括号里面的内容参考rs.conf()的信息,去掉primay节点的信息,并添加{ "force": true }。之后退出重新登录这个shard,发现副本切换到了primay状态,重新登录mongos发现正常了

使用mongo登录mongod实例执行rs.status()或db.isMaster()可以看到谁是主节点,谁是副节点

mongos实例执行rs.status()会报错replSetGetStatus is not supported through mongos

mongos实例执行db.isMaster()正常,默认连接到主节点

实验案例

1、切换到TDB6执行show tables报错,说这个数据库对应的shard的primay节点无法找到

mongo --host 172.22.138.157 --port 27001

mongos> use TDB6

mongos> show tables

2019-06-20T00:16:17.935-0700 E QUERY    [thread1] Error: listCollections failed: {

        "ok" : 0,

        "errmsg" : "Could not find host matching read preference { mode: \"primary\", tags: [ {} ] } for set shard28003",

2、只能进入这个shard的辅助节点,查看rs.conf()配置信息,并查看rs.status()状态,看到主节点无法连接,使用rs.reconfig()重新配置,rs.reconfig括号里面的内容参考rs.conf()的信息,去掉primay节点的信息,并添加{ "force": true }

mongo --host 172.22.138.157 --port 28003

shard28003:SECONDARY>rs.conf()

{

        "_id" : "shard28003",

        "version" : 1,

        "protocolVersion" : NumberLong(1),

        "members" : [

                {

                        "_id" : 0,

                        "host" : "172.22.138.157:28003",

                        "arbiterOnly" : false,

                        "buildIndexes" : true,

                        "hidden" : false,

                        "priority" : 1,

                        "tags" : {

                        },

                        "slaveDelay" : NumberLong(0),

                        "votes" : 1

                },

                {

                        "_id" : 1,

                        "host" : "172.22.138.158:28003",

                        "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("5d09d2c89fb43c4506d995ac")

        }

}

shard28003:SECONDARY> rs.status()

{

        "set" : "shard28003",

        "date" : ISODate("2019-06-20T07:25:07.438Z"),

        "myState" : 2,

        "term" : NumberLong(2),

        "syncingTo" : "",

        "syncSourceHost" : "",

        "syncSourceId" : -1,

        "heartbeatIntervalMillis" : NumberLong(2000),

        "optimes" : {

                "lastCommittedOpTime" : {

                        "ts" : Timestamp(1561001587, 1),

                        "t" : NumberLong(2)

                },

                "readConcernMajorityOpTime" : {

                        "ts" : Timestamp(1561001587, 1),

                        "t" : NumberLong(2)

                },

                "appliedOpTime" : {

                        "ts" : Timestamp(1561001587, 1),

                        "t" : NumberLong(2)

                },

                "durableOpTime" : {

                        "ts" : Timestamp(1561001587, 1),

                        "t" : NumberLong(2)

                }

        },

        "members" : [

                {

                        "_id" : 0,

                        "name" : "172.22.138.157:28003",

                        "health" : 1,

                        "state" : 2,

                        "stateStr" : "SECONDARY",

                        "uptime" : 15254,

                        "optime" : {

                                "ts" : Timestamp(1561001587, 1),

                                "t" : NumberLong(2)

                        },

                        "optimeDate" : ISODate("2019-06-20T03:33:07Z"),

                        "syncingTo" : "",

                        "syncSourceHost" : "",

                        "syncSourceId" : -1,

                        "infoMessage" : "could not find member to sync from",

                        "configVersion" : 1,

                        "self" : true,

                        "lastHeartbeatMessage" : ""

                },

                {

                        "_id" : 1,

                        "name" : "172.22.138.158:28003",

                        "health" : 0,

                        "state" : 8,

                        "stateStr" : "(not reachable/healthy)",

                        "uptime" : 0,

                        "optime" : {

                                "ts" : Timestamp(0, 0),

                                "t" : NumberLong(-1)

                        },

                        "optimeDurable" : {

                                "ts" : Timestamp(0, 0),

                                "t" : NumberLong(-1)

                        },

                        "optimeDate" : ISODate("1970-01-01T00:00:00Z"),

                        "optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"),

                        "lastHeartbeat" : ISODate("2019-06-20T07:25:07.121Z"),

                        "lastHeartbeatRecv" : ISODate("2019-06-20T03:33:08.040Z"),

                        "pingMs" : NumberLong(0),

                        "lastHeartbeatMessage" : "Connection refused",

                        "syncingTo" : "",

                        "syncSourceHost" : "",

                        "syncSourceId" : -1,

                        "infoMessage" : "",

                        "configVersion" : -1

                }

        ],

        "ok" : 1,

        "operationTime" : Timestamp(1561001587, 1),

        "$gleStats" : {

                "lastOpTime" : Timestamp(0, 0),

                "electionId" : ObjectId("000000000000000000000000")

        },

        "$configServerState" : {

                "opTime" : {

                        "ts" : Timestamp(1561001589, 1),

                        "t" : NumberLong(2)

                }

        },

        "$clusterTime" : {

                "clusterTime" : Timestamp(1561015481, 1),

                "signature" : {

                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),

                        "keyId" : NumberLong(0)

                }

        }

}

shard28003:SECONDARY> rs.reconfig({

        "_id" : "shard28003",

        "version" : 1,

        "protocolVersion" : NumberLong(1),

        "members" : [

                {

                        "_id" : 0,

                        "host" : "172.22.138.157:28003",

                        "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("5d09d2c89fb43c4506d995ac")

        }

},

{ "force": true }

)

3、退出后,重新登录,发现副本切换到了primay状态

mongo --host 172.22.138.157 --port 28003

shard28003:PRIMARY>

4、重新登录mongos,发现可以正常操作show tables,但是无法db.createCollection,因为Config Server的replica set的主节点坏了,重新按上面1、2、3方法切换Config Server的replica set的副节点为主节点就好了

mongo --host 172.22.138.157 --port 27001

mongos> show tables

test06

mongos> use testdb2

switched to db testdb2

mongos> db.createCollection("table1")

{

        "ok" : 0,

        "errmsg" : "Database testdb2 not found due to Could not confirm non-existence of database testdb                                                     2 due to Could not find host matching read preference { mode: \"primary\" } for set config29001",

        "code" : 133,

        "codeName" : "FailedToSatisfyReadPreference",

        "operationTime" : Timestamp(1561034171, 1),

        "$clusterTime" : {

                "clusterTime" : Timestamp(1561034171, 1),

                "signature" : {

                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),

                        "keyId" : NumberLong(0)

                }

        }

}

关于mongodb中怎么切换集群节点故障问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: mongodb中怎么切换集群节点故障

本文链接: https://www.lsjlt.com/news/56457.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mongodb中怎么切换集群节点故障
    mongodb中怎么切换集群节点故障,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。处理方法方法1、一般会自动切换,如果shard是由3个节...
    99+
    2024-04-02
  • MongoDB中怎么切换副本集故障
    MongoDB中怎么切换副本集故障,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。默认情况下主节点和从节点的优先级都为1,仲裁者...
    99+
    2024-04-02
  • Sqlserver 2014 alwayson故障转移群集节点被踢出群集
    群集节点报错: 已从活动故障转移群集成员身份中删除群集节点“sql-01”。可能已在该节点上停止群集服务。这可能还由于该节点已与故障转移群集中的其他活动节点失去通信所致。请运行“验证配置”向导检查网...
    99+
    2024-04-02
  • MongoDB中怎么切换副本集
    MongoDB中怎么切换副本集,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。MongoDB 副本集切换方法1、rs.stepD...
    99+
    2024-04-02
  • mongodb集群添加节点的方法是什么
    要向MongoDB集群添加节点,可以按照以下步骤进行操作:1. 安装MongoDB:在要添加节点的机器上安装MongoDB软件。确保...
    99+
    2023-09-12
    mongodb
  • MongoDB副本集集群从节点控制台报错10061怎么办
    这篇文章主要介绍MongoDB副本集集群从节点控制台报错10061怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!--------------------------------...
    99+
    2024-04-02
  • CentOS8中怎么建立多节点Elastic stack集群
    CentOS8中怎么建立多节点Elastic stack集群,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Elasticsearch:三台服务器,最小化安装 R...
    99+
    2023-06-16
  • Redis中怎么安装一个六节点集群
    这篇文章主要介绍了Redis中怎么安装一个六节点集群的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Redis中怎么安装一个六节点集群文章都会有所收获,下面我们一起来看看吧。简介redis cluster是亲生的...
    99+
    2023-06-27
  • MongoDB中怎么实现集群
    本篇文章给大家分享的是有关MongoDB中怎么实现集群,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。基本概念文档(document):文档是M...
    99+
    2024-04-02
  • Cassandra集群中怎么添加或移除节点
    在Cassandra集群中添加或移除节点可以通过以下步骤完成: 添加节点: 首先,在新节点上安装Cassandra软件并配置好节点...
    99+
    2024-03-11
    Cassandra
  • redis集群怎么添加删除节点
    添加节点: 在新节点上安装 Redis,并确保所有节点都使用相同的配置文件。 在主节点上执行 CLUSTER MEET 命令,将新...
    99+
    2024-04-09
    redis
  • galera mysql cluster 故障节点再次接入集群遇到问题该怎么办
    这期内容当中小编将会给大家带来有关galera  mysql  cluster 故障节点再次接入集群遇到问题该怎么办,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可...
    99+
    2024-04-02
  • mongodb中怎么搭建shard_replica集群
    本篇文章为大家展示了mongodb中怎么搭建shard_replica集群,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。参考官方文档,大致步骤第一步:创建Confi...
    99+
    2024-04-02
  • Hadoop多节点集群怎么安装配置
    本篇内容主要讲解“Hadoop多节点集群怎么安装配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Hadoop多节点集群怎么安装配置”吧!1、集群部署介绍 1.1 Hadoop简介 H...
    99+
    2023-06-03
  • Oracle怎么添加和删除集群节点
    要添加和删除Oracle集群节点,需要使用Oracle Grid Infrastructure来管理集群节点。以下是添加和删除Ora...
    99+
    2024-04-09
    oracle
  • Couchbase怎么实现多节点集群部署
    在Couchbase中,要实现多节点集群部署,需要按照以下步骤操作: 安装Couchbase Server:首先需要在每个节点上...
    99+
    2024-04-02
  • 怎么修kingsql中RAC节点故障
    这篇文章主要讲解了“怎么修kingsql中RAC节点故障”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么修kingsql中RAC节点故障”吧! ...
    99+
    2024-04-02
  • MySQL之高可用集群部署及故障切换的实现方法
    这篇文章给大家分享的是有关MySQL之高可用集群部署及故障切换的实现方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、MHA 1、概念2、MHA 的组成3、MHA 的特点二、搭建MySQL+MHA思...
    99+
    2023-06-14
  • MongoDB中怎么搭建分片集群
    本篇文章为大家展示了MongoDB中怎么搭建分片集群,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MongoDB分片集群基本组件介绍mongos:数据库集群请求的入...
    99+
    2024-04-02
  • mongodb 中怎么设置分片集群
    今天就跟大家聊聊有关mongodb 中怎么设置分片集群,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、先enable sharding,开启数据库...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作