前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TiDB版本升级案例

TiDB版本升级案例

作者头像
AsiaYe
发布2022-04-01 19:27:43
6430
发布2022-04-01 19:27:43
举报
文章被收录于专栏:DBA随笔DBA随笔

最近,在线上遇到了一个TiDB版本升级的需求,之前一直没有遇到过,参照官方文档,对已有的几套集群做了下升级,也总结了一些自己的经验,这里分享出来。

一、TiDB版本介绍

TiDB目前最新的版本是5.4版本,推荐使用tiup工具进行部署和维护。而tiup工具是从TiDB4.0版本引进的,因此,从TiDB4.0开始,可以直接使用tiup工具进行直接升级,不需要多次升级,例如下面的升级方案都是可行的:

v4.0 --- v5.4

v4.0 --- v5.3

v4.0 --- v5.2

v4.0 --- v5.1

v4.0 --- v5.0

从上面描述可以看到,版本号我这边只写到第二位,只要大版本号的2位满足上述规则,则可以忽略小版本带来的差异。

相反,如果你的线上TiDB版本是TiDB3.0或者TiDB2.0 ,则需要先将TiDB版本升级到TiDB4.0,然后再升级到TiDB5.x版本,升级过程如下:

v3.0 --- v4.0 ---v5.x

二、TiDB升级须知

升级过程中,有以下必须了解的内容:

1、TiDB的升级过程不可逆,不支持版本降级或者回退,需要根据release note提前做好测试工作

2、如果使用TiDB Ansible管理的TiDB4.0集群,需要将集群导入到tiup工具中来管理,才可以使用tiup进行升级

3、v5.3版本之后,TiDB 内置的prometheus会从默认2.8版本升级到2.27版本

三、TiDB升级前置工作

1、确保没有DDL操作

2、需要确保tiup工具的版本不低于1.9.0

这个可以通过下面命令来执行更新:

tiup update --self来自动更新tiup版本

tiup --version 命令来查看当前tiup的版本

代码语言:javascript
复制
[root@ ~]# tiup --version 
1.9.2 tiup
Go Version: go1.17.7
Git Ref: v1.9.2
GitHash: d90f3eb81e145621c3880c320b88bf10c6f03a70

3、需要确保tiup cluster工具版本不低于1.9.0

这个可以通过下面命令来执行更新:

tiup update cluster来自动更新tiup版本

tiup cluster --version 命令来查看当前tiup的版本

代码语言:javascript
复制
[root@ ~]# tiup cluster --version 
tiup is checking updates for component cluster ...
Starting component `cluster`: /root/.tiup/components/cluster/v1.9.2/tiup-cluster /root/.tiup/components/cluster/v1.9.2/tiup-cluster --version
tiup version 1.9.2 tiup
Go Version: go1.17.7
Git Ref: v1.9.2
GitHash: d90f3eb81e145621c3880c320b88bf10c6f03a70

注意:如果你的服务器不能连接外网,则不能直接使用上述命令,需要在官网下载对应版本的tidb官方社区版本的软件:tidb-community-server,然后进行挤压,并执行其中的本地化安装脚本,从而实现安装,命令如下:

代码语言:javascript
复制
tar xzvf tidb-community-server-${version}-linux-amd64.tar.gz
sh tidb-community-server-${version}-linux-amd64/local_install.sh
source /home/tidb/.bash_profile

4、部分参数修改

如果你的TiDB 版本大于v5.0,而TiDB本身又配置了如下参数:

代码语言:javascript
复制
pessimistic-txn.enabled
server.request-batch-enable-cross-command
server.request-batch-wait-duration

则需要将这些参数注释之后再升级,因为这些参数在v5.0之后,已经取消。

四、TiDB升级步骤

目前,官方给的TiDB升级方案,主要有2种,一种是在线升级,一种是离线升级,默认的方案是在线升级,但是这里推荐采用离线升级,主要有下面几个原因:

1、在线升级对于大数据量不是很友好

这种升级方案,升级过程中集群可以对外提供服务,升级的时候会逐个升级集群的组件,包含tidb、pd、tikv等,对于tikv,牵扯到节点上的leader驱逐,驱逐后再进行升级和重启,当集群中的数据量很多的时候,leader数量也比较多,驱逐时间比较长,而且很容易造成驱逐超时

2、在线升级期间,业务可能会产生抖动问题,存在不确定性

3、离线升级虽然需要停机,但是升级过程只是软件包的替换,跟业务数据量无关,时间比较可控。

下面分别给出在线升级和离线升级的命令:

在线升级:

a、在线升级

tidb cluster upgrate cluster_name version

b、检查升级状态

tiup cluster display cluster_name

离线升级:

a、停服务

tiup cluster stop cluster_name

b、升级

tiup cluster upgrade cluster version --offline

c、启动服务

tiup cluster start cluster_name

d、检查升级状态

tiup cluster display cluster_name

以上就是升级过程中需要注意的问题。如果升级过程失败了,可以根据具体的失败类型来进行处理,详情可以参考:https://docs.pingcap.com/zh/tidb/stable/upgrade-tidb-using-tiup

本次线上升级,采用离线升级方案,升级了3套集群,均未发现异常。

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

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

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

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

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