前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >说一件有意思的事情。

说一件有意思的事情。

作者头像
AsiaYe
发布2022-12-07 09:02:49
2190
发布2022-12-07 09:02:49
举报
文章被收录于专栏:DBA随笔

说一件有意思的事情

最近工作之外的事情比较多,就没有更新公众号了。产量也有明显下降,忙完这段时间,后续慢慢写吧。

这两天有一个比较好玩的事情,跟大家分享一下。

前几天在线上遇到了一个MongoDB的问题:

背景:

MongoDB 3.4.7 版本升级MongoDB 3.6.3 版本

升级过程:

MongoDB升级一般是先滚动升级MongoDB从库,然后再进行主库切换,选举出来新的高版本从库,最后升级MongoDB老主库,最后执行

代码语言:javascript
复制
db.adminCommand( { setFeatureCompatibilityVersion: "version" } )

即可,其中,version填对应的版本,例如3.4、3.6这样子

问题:

这个操作流程,之前执行过几遍,都没有遇到问题,前两天执行的时候,发生了一个奇怪的现象:版本升级过后,MongoDB的实例,一个一个从副本集中掉出来了,实例自动关机,日志中报一个段错误

代码语言:javascript
复制
[thread74] Invalid access at address: 0x18
[thread74] Got signal:  (Segmentation fault).

解决过程:

当时遇到这个问题,还是比较懵逼的,不知道为什么节点一个一个掉出副本集,并且自动关闭。

方案一:(结果表明不奏效)

手工启动挂掉的节点。

手工启动之后,确实有效果,集群恢复了正常,但是仅仅持续了1分钟,就又开始一个一个掉出集群了。报错跟之前一样。

方案二:(结果表明不奏效)

怀疑集群数据不一致导致的数据回滚报错,最终实例宕机。于是我使用rs.remove()命令将集群中部分节点去掉了,只保留了主库,想着集群节点少一些,或许能避免这个问题。

事实打脸,这样还是不行,主库还是会自动宕机。

方案三:

这个问题似乎之前确实没有遇到过,我也百思不得其解,就在我抓耳挠腮想不出办法的时候,同事已经通过网上的文章找到了解决方案,说是3.6.3版本的一个bug,具体的原因是:

MonogDB集群分为2种,一种是普通的副本集,一种是分片集群。当mongodb在3.6.3版本的普通副本集配置文件中写入了分片集群的参数(如下)之后:

代码语言:javascript
复制
sharding:
     clusterRole:shardsvr

副本集成员就会一个一个的掉出集群,这是记录在案的一个bug。

jira的链接如下:

https://jira.mongodb.org/browse/SERVER-34746

https://jira.mongodb.org/browse/SERVER-32677

到这里,知道问题是bug导致的,那我们就解决bug即可:

在配置文件中,取消掉sharding这项配置即可。

因为我们是普通的副本集,不需要分片集群配置也可以运行起来。从遇到的现象中也不难总结出来,在MongoDB升级的过程中,3.4.7版本一开始可以运行没问题,但是升级之后,高版本3.6.3中触发了这个bug,所以导致了文中描述的现象。

最后知道真相的我眼泪掉下来

我看了看我同事在网上找到的那篇文章,想看个究竟,到底是谁遇到了这个跟我一样的问题,结果发现:那篇文章是我自己写的。😁

这里还可以给出文章链接:https://cloud.tencent.com/developer/article/1780292

公众号链接:

MongoDB3.6.3版本增加分片副本集的小bug

得知这个结果,当时一脸懵逼,感觉自己很菜,自己遇到的案例,都写成文章分享给了大家,结果第二次遇到还是一头雾水,因为我完全不记得我写了这篇文章了。这篇文章差不多是2021年1月写的,过去了一年半了,不记得也正常吧,姑且这样安慰自己了。。。哈哈哈。

这件事情告诉我们一个道理:

温故而知新,可以为师矣

为防止类似事件发生,我把这句话再翻译翻译吧,加深记忆:

这句话是孔夫子说的,意思是温习旧知识从而得知新的理解与体会,凭借这一点就可以成为老师了。说明人们的新知识、新学问往往都是在过去所学知识的基础上发展而来的道理。

以后争取将这个事情落实在行动上。

就这样吧,晚安喽~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说一件有意思的事情
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档