亿玛科技:TiDB 6.1.5 升级到 7.5.1 经验分享

news2025/1/18 18:09:00

作者: foxchan 原文来源: https://tidb.net/blog/6e628afd

为什么要升级?

本次升级7.5的目的如下:

1、tidb有太多的分区表需要归档整理。7.5版本这个功能GA了。

2、之前集群tikv节点的region迁移过慢,影响tikv节点迁移的效率,现在region的迁移速度显著提升。

3、tidb分布式执行框架功能GA了,对于大表的索引创建速度有了显著提升。

升级步骤

不同于官方的升级方式,我是通过自己写k8s pod 来实现的部署。

为什么?

1、因为资源有限,我并没有另一套集群来做cdc 同步。

2、毕竟跨2个大版本,tidb的底层数据结构都进行了大的变化。

所以自己通过脚本来实现集群的升级,保证每个步骤都是可控的。当然也是相信tidb的健壮性,不会因为升级失败导致集群不可用。

升级过程

整体升级流程和tiup的流程一致:

tiflash – pd – tikv – tidb – ticdc

tiflash 滚动升级

TiDBMPP 功能打开:

第一步:关闭 TiDB MPP 功能:在 TiDB 中运行 set @@global.tidb_allow_mpp=0;滚动重启所有 TiDB 节点(因为 global 变量的设置需要在新的 session 中生效,如果不滚动重启 TiDB 的话,现有的 session 仍然会生成 MPP 计划)

第二步:正常升级集群  第三步:重新开启 TiDB MPP 功能:在 TiDB 中运行 set @@global.tidb_allow_mpp=1; 并滚动重启所有 TiDB 节点

tikv滚动升级

将需要升级的tikv leader进行驱逐,在驱逐后升级image,待状态正常后恢复leader

pd-ctl -u http://192.168.7.25:2479 scheduler add evict-leader-scheduler 1

pd-ctl -u http://192.168.7.25:2479 scheduler remove evict-leader-scheduler

升级带来的好处

1、tiflash cpu消耗明显减少,如图所示,cpu使用减少了一半

image.png

2、集群很稳定,如果不是追求新功能和修复bug,可以一直运行。如图,这个集群平稳度过618活动,让小伙伴们安心过节

image.png

升级遇到的问题

遇到的最大问题是代价模型的改变, 每次跨大版本升级都要注意这个

以前的SQL执行计划从tiflash改到了tikv,导致性能急剧下降,问题情况和解决方案具体可参考: https://asktug.com/t/topic/1025244/1

这里把我升级遇到的问题列出来,当然这些都已经解决了。

tiflash 7.5.1 cpu负载不均衡

原因:

tiflash 的 region 只会在 store 级别均衡,也就是每个 store 的 region 总数平均。但每个 table 在各个 store 的 region 数量不一定平均。

tidb7.5.1:部分分区健康度一直是0,drop stats 和手动analyze也不行

原因:属于bug,tidb内存更新失败,需要定期重启tidb。

tiflash 7.5.2 rename table 到其他database会崩溃

原因:属于bug,已于7.5.3修复

处理ddl假死

处理方式:

在 v6.5.0 及之后的版本中,TiDB 默认开启元数据锁特性。当集群从 v6.5.0 之前的版本升级到 v6.5.0 及之后的版本时,TiDB 会自动开启元数据锁功能。

新版本引入了 mysql.tidb_mdl_view 视图,可以用于查看当前阻塞的 DDL 的相关信息 SELECT * FROM mysql.tidb_mdl_view

从上面的输出结果中了解到,有一个 SESSION ID事务阻塞了该添加索引 DDL 的执行,通过KILL 命令中止 SESSION ID 的事务

cdc的升级

cdc从6.5才开始支持滚动升级,尤其是从6往7升级要注意,changefeed的写法也发生了改变。

每次升级cdc都要看这个文档,来确认cdc的版本兼容性。

所以你要是想通过cdc往低版本或者高版本的tidb集群同步数据,都要看这个文档哦!

https://github.com/pingcap/tiflow/blob/master/pkg/version/check.go

image.png

参数修改

每次升级都有一些参数需要修改,来匹配新版本的特性

#优化器选择优化 SET GLOBAL tidb_cost_model_version =2

#统计信息优化

SET GLOBAL tidb_enable_async_merge_global_stats='on' SET GLOBAL tidb_merge_partition_stats_concurrency=2

总结

1、如果没有特别的需求,可以使用比官方低一个版本的release。比如最新的GA是8.1,那么生产环境最高是7.5。

2、升级的版本建议是版本号第三位及以后。比如你要升级7.5,建议等到7.5.3之后再升级。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2059747.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

http连接未释放导致生产故障

凌晨4点运维老大收到报警(公司官网页面超时,上次故障因为运维修改nginx导致官网域名下某些接口不可用后,运维在2台nginx服务器上放了检测程序,检测官网页面),运维自己先看了看服务器相关配置,后…

linux 安装MAT(MemoryAnalyzerTool),并且分析java dump的方法

当我们的java进程出现异常的时候,我们第一件想做的事情是什么呢?应该就是要分析java的内存了。假如说,我们已经有了一个java内存的dump文件,有哪些的方法,可以对这个导出的dump文件进行分析呢? 比如&#…

Vue插值:双大括号标签、v-text、v-html、v-bind 指令

创建应用程序实例后,需要通过插值进行数据绑定。数据绑定是 Vue.js 最核心的一个特性。建立数据绑定后,数据和视图会相互关联,当数据发生变化时,视图会自动进行更新。这样就无须手动获取 DOM 的值,使代码更加简洁&…

【Python_PyQtGraph 学习笔记(十一)】基于ImageExporter更改导出图片的大小

基于ImageExporter更改导出图片的大小 前言正文1、ImageExporter 类介绍1.1 ImageExporter 类特点1.2 ImageExporter 类用法2、示例代码3、遇到的问题前言 在 基于PyQtGraph设置槽函数,实现保存图片到本地的功能 一文中我们成功地将 PyQtGraph 绘制的图形以图片形式保存到本地…

ChatGPT与Discord的完美结合——团队协作的得力助手

本文将教你如何集成Discord Bot,助力团队在工作中实现更高效的沟通与协作。通过充分发挥ChatGPT的潜力,进一步提升工作效率和团队协作能力。无需编写任何代码即可完成本文所述的操作,进行个性化定制只需对参数进行微调即可。 方案介绍 如果在…

【Python系列】中位数计算

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

鸿蒙开发5.0【基于AVCodecKit】音视频解码及二次处理播放

1:场景描述 场景:基于VideoCoder的音视频解码及二次处理播放。 首先导入选择器picker模块,使用PhotoViewPicker方法拉起图库选择视频文件,将视频文件传递到native侧使用Demuxer解封装器进行解封装,再使用OH_VideoDec…

Yolov8:模型部署到安卓端

1. 项目准备 1.1 先安装JDK和Android studio (1)JDK下载: 官网站:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 同意协议后,下载相应版本的JDK 我这里没有下载JDK21版的&a…

作品集图片美化处理网站推荐

今天要做作品集的时候发现单一的截屏很单调,想着看能不能添加一些边框之类的元素使图片更加精美有活力,于是就找到了一个个人认为非常好用的网站镜头 - 创建惊人的模型 (shots.so),它利用的是ai算法,使用起来非常便捷,…

亚马逊店铺自养号测评:安全可控的引流新策略全解析

亚马逊作为全球最大的电商平台之一,吸引了无数卖家加入其平台,争夺市场份额。然而,新店如何在众多竞争对手中脱颖而出,实现引流和销售的快速增长,成为了卖家们亟待解决的问题。本文珑哥将和大家探讨亚马逊新店引流的关…

浅析Thermo-Calc软件在合金热处理工艺中的应用

Thermo-Calc软件是世界公认的最好的最全面的多元体系热力学与相图计算软件,具备通用、计算灵活的特点,被广泛应用于钢铁、有色金属、核燃料、高熵合金等多领域的材料成分设计优化、工艺过程的设计优化、缺陷和问题的分析等过程中,是目前国内外…

焊工安全操作规范

1、焊工作业人员必须经专业安全技术培训考试合格,发给许可证后,持证上岗操作。明火作业必须履行审批手续。 2、工作前应认真检查工具、设备是否完好,焊机的外壳是否可靠地接地。焊机的修理应由电气保养人员进行,其他人员不得拆修…

Maven-07.依赖管理-依赖范围

一.依赖范围 一个项目依赖的jar包默认情况下可以在任何地方使用。这里的任何地方是指在main文件夹范围内作用,test文件夹范围内作用和package打包进去都可以。 依赖的范围可以通过scope标签进行调整, scope的值和其作用范围以及代表性jar包范例如上表所…

渗透必备:BurpSuite

一、介绍 BurpSuite是渗透测试、漏洞挖掘以及Web应用程序测试的最佳工具之一,是一款用于攻击web 应用程序的集成攻击测试平台,可以进行抓包、重放、爆破,包含许多工具,能处理对应的HTTP消息、持久性、认证、代理、日志、警报。 …

电力领域知识图谱:赋能电力智能发展的关键技术

电力领域知识图谱:赋能电力智能发展的关键技术 前言电力领域知识图谱 前言 电力领域知识图谱作为一项新兴技术,在电力系统中具有重要的应用价值。它能够以结构化的方式刻画电力系统中的各种概念、实体、事件及其间的关系,为电力人工智能的发…

淮北农商银行年报与审计报告数据不合,盈利能力与资产质量承压

撰稿|芋圆 来源|贝多财经 7月24日,国家金融监督管理总局发布《国家金融监督管理总局安徽监管局关于淮北农村商业银行股份有限公司(以下简称“淮北农商行”或“淮北农商银行”)吸收合并安徽濉溪农村商业银行股份有限公司的批复》。 内容显示…

SM4前后端加密和解密

一&#xff1a;前端vue 二&#xff1a;后端Java 三&#xff1a;详细 3.1maven添加 <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15to18</artifactId><version>1.66</version> </dependency> <…

合宙Air700ECQ硬件设计手册——主要性能

Air700ECQ是一款基于移芯EC716E平台设计的LTE Cat 1无线通信模组。支持移动双模FDD-LTE/TDD-LTE的4G远距离无线传输技术。以极小封装&#xff0c;极高性价比&#xff0c;满足IoT行业的数传应用需求。例如共享应用场景&#xff0c;定位器场景&#xff0c;DTU数传场景等。 无论是…

IP in IP 协议

IP in IP 是一种多重IP协议&#xff0c;即&#xff1a;客户机可以发送一个IP协议内部在嵌套一个IP协议到某个特定的主机上&#xff0c;在由具体的主机作为路由进行转发的协议。 例如&#xff1a; IP in IP帧协议结构为&#xff0c;第一层为发送到IP in IP 路由主机的报文&…

引领未来教育的新工具,NUC 14 Pro 赋能智慧课堂

在追求高效、互动、个性化的教育新时代&#xff0c;传统的教学工具已难以满足现代教育的需求。华硕NUC 14 Pro应运而生&#xff0c;它以小巧的机身、强大的性能以及丰富的商用功能&#xff0c;正逐步成为重塑教育生态的重要力量。它不仅是一款教学工具&#xff0c;更是推动教育…