Tidb集群升级到8.5.0过程中服务器遇到的坑

embedded/2025/1/19 11:13:25/

GLIBC_215__GLIBC_228YUM__0">TiDB 集群升级到8.5.0踩坑记:从 GLIBC_2.15 升级到 GLIBC_2.28YUM 仓库问题的全面解决


1. 引言

作为部门的负责人,我常常觉得自己是个“救火队员”。昨天 TiDB 集群又出问题了:查询卡顿、响应时间变长,重启之后问题依旧。临近下班,来这一手,全面检查无果之后,决定对 TiDB 集群进行升级。然而,升级的过程就像打怪升级一样,一关接着一关,从 GLIBC 升级到 YUM 仓库问题,简直是“运维人的九九八十一难”!

这篇文章将记录我从发现问题到解决问题的全过程,顺便吐槽一下运维服务器的辛酸。


2. 问题描述

2.1 TiDB 集群性能问题

TIDB集群一致很稳定,但是昨天,查询突然变慢,内存、CPU显示都正常。简单的查询甚至超时。查看集群后台的状态,发现大量的SQL处在查询状态,无法杀死也无法查出结果,我尝试重启集群,但问题依旧。于是,我决定升级 TiDB 集群,希望能通过新版本修复问题。
在这里插入图片描述

2.2 升级依赖问题

然而,升级 TiDB 集群并不是一件简单的事情。首先,服务器上的核心组件(如 makegccglibc-2.28)需要升级。结果,升级这些组件的过程中,又遇到了 YUM 仓库的各种报错,简直是“一波未平,一波又起”!
在这里插入图片描述
TIDB集群升级到8.5.0之后,需要依赖GLIBC_2.28版本,不升级则会一致启动失败。

2.3 YUM 仓库报错

在升级过程中,YUM 仓库频繁报错,导致无法正常下载和安装软件包。每次报错都让我心头一紧,仿佛在玩“扫雷”游戏,不知道下一步会踩到什么坑。
在这里插入图片描述


3. 报错详情

以下是升级过程中遇到的主要报错信息:

  1. /lib64/libc.so.6: version 'GLIBC_2.28' not found

    • 这个错误告诉我,系统缺少 GLIBC 2.28 版本,而 TiDB 依赖的库需要这个版本才能正常运行。
  2. These critical programs are missing or too old: compiler

    • 这个错误表明,编译器 gccmake版本过低或缺失,无法满足升级需求。我升级的是make-4.3,gcc-8.3.1
  3. Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"

    • YUM 无法从 CentOS 官方镜像源获取仓库列表,可能是网络问题或镜像源不可用。
  4. failure: repodata/repomd.xml from kubernetes: [Errno 256] No more mirrors to try.

    • YUM 无法从 Kubernetes 仓库下载元数据文件,可能是仓库地址失效或网络问题。
  5. http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/6.0/x86_64/repodata/primary.xml.gz: [Errno 14] curl#63 - "Callback aborted"

    • YUM 在下载 MongoDB 仓库的元数据文件时失败

4. 问题分析

GLIBC__54">4.1 GLIBC 版本过低

TiDB 集群依赖的库需要 GLIBC 2.28 版本,而服务器上的 GLIBC 版本过低,导致无法正常运行。

4.2 编译器版本过低

升级 GLIBC 需要较新的编译器(如 gcc),而服务器上的 gcc 版本过低,无法满足编译需求。

4.3 YUM 仓库问题

YUM 仓库报错的主要原因是镜像源不可用或网络问题。CentOS 官方镜像源和阿里云镜像源都可能出现临时不可用的情况。


5. 解决方案

GLIBC_228_70">5.1 升级 GLIBC 2.28

GLIBC 是 Linux 系统的核心库,升级它需要谨慎操作。我通过下载源码并编译的方式完成了升级。
升级2.28版本的文章

5.2 升级 gcc 和 make

为了编译 GLIBC,我需要升级 gccmake。通过安装 devtoolset,我成功获取了较新的 gcc 版本。
升级make的文章

5.3 解决 YUM 仓库报错

YUM 仓库报错的问题通过更换镜像源和清理缓存得以解决。我使用了阿里云的镜像源,并手动清理了 YUM 缓存。
解决yum makecache报错问题

5.4 解决 mongodb-org "Callback aborted"仓库报错

打开 MongoDB 仓库配置文件(如 /etc/yum.repos.d/mongodb-**.repo)。
在这里插入图片描述

确保 enabled 参数的值为 0 或 1,并删除多余的注释或字符。
在这里插入图片描述


6. 总结与建议

这次 TiDB 集群升级的过程让我深刻体会到运维工作的不易。从 GLIBC 升级到 YUM 仓库问题,每一步都充满了挑战。然而,正是这些挑战让我不断学习和成长。

如果你也遇到了类似的问题,不要灰心!通过仔细分析和耐心排查,问题总能解决。当然,如果你有更好的解决方案,欢迎在评论区分享!
在这里插入图片描述


希望这篇文章能帮助到正在踩坑的你!运维之路虽然艰辛,但每一次解决问题的成就感都是无可替代的。加油!💪


http://www.ppmy.cn/embedded/155206.html

相关文章

Tesla Free - Fall attack:特斯拉汽车网络安全攻击事件分析

文章目录 一、Tesla Free - Fall attack:特斯拉汽车网络安全事件纪要1. 引言2. 攻击流程2.1 攻击切入点2.2 系统入侵2.3 CAN 总线操控 3. 影响后果4. 特斯拉应对措施5. 研究意义二、安全攻击事件技术分析以及相应的检测和缓解措施 一、Tesla Free - Fall attack&…

AI生成文档——Uni-App CSS 样式开发指南

Uni-App CSS 样式开发指南 目录 基础概念布局与盒模型Flexbox 布局Grid 布局常用样式属性响应式设计UI 样式示例微信小程序样式适配动画与过渡常见问题与解决方案性能优化工具与资源总结高级技巧实战案例社区与学习资源附录 基础概念 1.1 CSS 简介 CSS(Cascadin…

你会选择java还是node做后台管理

目前后台开源千千万,但说好用且容易上手的也就那几个。 node和java就看你怎么选了 如果你擅长Java,那RuoYi首选 RuoYI后台管理系统https://gitee.com/y_project/RuoYi-Vue有vue2又有vue3。MIT协议全免费开源,功能齐全! 如果你擅…

uniapp -- Vue3 MQTT集成(H5、小程序)踩坑记录

🍍背景 在使用 uniapp 进行项目开发时,我需要实现一个关键功能,即利用 MQTT.js 进行订阅操作。我的项目是基于 unibest 模板初始化的。然而,在集成 MQTT 的过程中,遇到了兼容性问题。期间与作者进行了沟通。 Issue 解决方案是:有些库需要额外处理。需要找下兼容的库。 �…

【TCP】rfc文档

tcp协议相关rfc有哪些 TCP(传输控制协议)是一个复杂的协议,其设计和实现涉及多个RFC文档。以下是一些与TCP协议密切相关的RFC文档列表,按照时间顺序排列,涵盖了从基础定义到高级特性和优化的各个方面: 基…

踏上 C++ 编程之旅:开篇之作

踏上 C 编程之旅:开篇之作 在计算机编程的广袤天地中,C 宛如一座巍峨的高峰,吸引着无数开发者攀登探索。今天,就让我们一同开启这段充满挑战与惊喜的 C 编程之旅,在代码的世界里开辟属于自己的道路。 一、为什么选择…

-bash: /java: cannot execute binary file

在linux安装jdk报错 -bash: /java: cannot execute binary file 原因是jdk安装包和linux的不一致 程序员的面试宝典,一个免费的刷题平台

音频可视化小工具

音频可视化小工具 文章说明功能特点使用说明技术细节核心代码效果展示源码下载 文章说明 这是一个基于 JavaScript 和 Web Audio API 实现的音频可视化小工具。通过上传音频文件,工具可以实时展示音频的可视化效果,包括条形频谱、圆形频谱等多种模式。代…