0
0
0
0
专栏/.../

Tidb6.1.5升级到7.1.5升级方案总结

 TiDBer_tjdCkZ1O  发表于  2025-04-21

Tidb6.1.5升级到7.1.5升级方案总结

一、背景:

  当前生产环境的tidb集群版本为6.1.5,未来业务扩展时无法满足资源隔离需求。为了能够将一个分布式数据库集群划分成多个逻辑单元,即使个别单元对资源过度使用,也不会挤占其他单元所需的资源。

1、TiDB 层会根据用户所绑定资源组设定的配额对用户的读写请求做流控,

2、TiKV 层会根据配额映射的优先级来对请求做调度。

3、管理资源消耗超出预期的查询

二、版本要求:

基本功能要求7.0版本以上,但为了更好实现资源隔离同时避免减少后续升级操作,建议使用7.1.5版本。

三、升级前评估:

1、升级前目前使用的6.1.5中的参数可以兼容7.1.5,但会存在参数冗余问题:

部分参数6.1.5需要单独配置,而到7.1.5则已默认配置了,升级到7.1.5后虽然单独配置了,也不会影响正常使用。

2、升级过程中需要检查export-node是否有冲突: 由于zabbix的采集端使用的端口与tidb自身的端口是否冲突,如果冲突需要停止zabbix的node端口,本案例存在端口冲突问题,因此需要提前规避。

四、实施过程中影响:

1.面临cdc延迟问题,延迟时间就是升级消耗的时间。

验证环境总容量1.2T的集群,cdc延迟大概是20分钟。

实际生产业务集群总容量800G,

2.业务查询和更新变慢,虽然是滚动升级,但过程中涉及重启节点操作,因此对业务是有感知的。

3.如有升级失败则无法回退。

五、实施前准备:

  为避免出现升级失败需要切换到备集群的情况:

1.需要在备集群提前部署好对应业务的用户名密码以及数据库权限。

2.检查haproxy与tidb配置之间的兼容性,确保可以直接使用haproxy切换到备集群的tidb节点。

六、实施方案:

1、迁移升级:

  方案是源端集群6.1.5版本,目标集群7.1.5版本使用cdc同步保持2套集群实时同步,等主从数据同步完成后实现主从切换方式。但目前存在跨大版本导致cdc延迟越来越大的问题。此方案放弃。

2.在主备集群基础上对主集群直接升级:

  方案是源端直接升级到7.1.5,备集群保持现有版本6.1.5,使用cdc同步保持2套集群实时同步,如果升级失败等异常情况,可通过haproxy切到备集群。

七、实施过程中可能遇到的问题:

1.节点间通信失败

  由于之前使用prometheus部署监控node端,使用的端口与tidb的node端口公用9100端口,端口冲突导致升级过程中无法管理节点。因此升级前需要检查9100端口不备其他占用,同时禁止prometheus的node端启用。

2.cdc异常中止问题

  升级过程中最好提前停止cdc进程,等待升级完后再开启。如果遇到cdc同步失败问题,需要跳过事务同时做好数据补录工作。

八、总结:

1、根据生产集群800G的数据量,升级耗时预计30分钟.

2、升级过程中整体可控。

3、升级过程中如有升级失败等其他突发情况,可用备集群承接业务。

九、升级步骤:

1、升级前检查已做完。

2、下载部署新版本的 TiUP 离线镜像,上传到中控机。在执行 local_install.sh 后,TiUP 会完成覆盖升级

tar xzvf tidb-enterprise-server-v7.1.5-linux-amd64.tar.gz

sh tidb-enterprise-server-v7.1.5-linux-amd64/local_install.sh

source /home/tidb/.bash_profile

3、覆盖升级完成后,需将 server 和 toolkit 两个离线镜像合并,执行以下命令合并离线组件到 server 目录下。

tar xf tidb-enterprise-toolkit-v7.1.5-linux-amd64.tar.gz

cd tidb-enterprise-server-v7.1.5-linux-amd64/

cp -rp keys ~/.tiup/

tiup mirror merge ../tidb-enterprise-toolkit-v7.1.5-linux-amd64

4、检查当前集群的健康状况

tiup cluster check ky_biz --cluster

5、停止cdc任务:

tiup cdc cli changefeed pause \

--changefeed-id="upstream-to-protidbbak" \

--pd=https:// X.X.X.X:2379 \

--ca=/home/tidb/.tiup/storage/cluster/clusters/ky_biz/tls/ca.crt \ --cert=/home/tidb/.tiup/storage/cluster/clusters/ky_biz/tls/client.crt \ --key=/home/tidb/.tiup/storage/cluster/clusters/ky_biz/tls/client.pem

 

tiup cdc cli changefeed pause \

--changefeed-id="waybill-synchronize-task1" \

--pd=https:// X.X.X.X:2379 \

--ca=/home/tidb/.tiup/storage/cluster/clusters/ky_biz/tls/ca.crt \ --cert=/home/tidb/.tiup/storage/cluster/clusters/ky_biz/tls/client.crt \ --key=/home/tidb/.tiup/storage/cluster/clusters/ky_biz/tls/client.pem

 

6、升级tiup

tiup update cluster

tiup update --self && tiup update cluster

7、不停机升级到v7.1.5(默认是滚动升级)

tiup cluster upgrade yanliantidb v7.1.5 --wait-timeout 600

tiup cluster upgrade ky_biz v7.1.5 --force

8、开启cdc任务:

tiup cdc cli changefeed resume \

--changefeed-id="upstream-to-protidbbak" \

--pd=https://X.X.X.X:2379 \

--ca=/home/tidb/.tiup/storage/cluster/clusters/ky_biz/tls/ca.crt \ --cert=/home/tidb/.tiup/storage/cluster/clusters/ky_biz/tls/client.crt \ --key=/home/tidb/.tiup/storage/cluster/clusters/ky_biz/tls/client.pem

 

tiup cdc cli changefeed resume \

--changefeed-id="waybill-synchronize-task1" \

--pd=https://X.X.X.X:2379 \

--ca=/home/tidb/.tiup/storage/cluster/clusters/ky_biz/tls/ca.crt \ --cert=/home/tidb/.tiup/storage/cluster/clusters/ky_biz/tls/client.crt \ --key=/home/tidb/.tiup/storage/cluster/clusters/ky_biz/tls/client.pem

 

十、回退步骤:

修改haproxy的配置信息:

#server tidb-1 X.X.X.X:4000 send-proxy check inter 2000 rise 2 fall 3

#server tidb-2 X.X.X.X:4001 send-proxy check inter 2000 rise 2 fall 3

#server tidb-3 X.X.X.X:4000 send-proxy check inter 2000 rise 2 fall 3

#server tidb-4 X.X.X.X:4001 send-proxy check inter 2000 rise 2 fall 3

#server tidb-5 X.X.X.X:4000 send-proxy check inter 2000 rise 2 fall 3

#server tidb-6 X.X.X.X:4001 send-proxy check inter 2000 rise 2 fall 3

  

server tidb-1 X.X.X.X:4000 send-proxy check inter 2000 rise 2 fall 3

server tidb-2 X.X.X.X:4001 send-proxy check inter 2000 rise 2 fall 3

server tidb-3 X.X.X.X:4000 send-proxy check inter 2000 rise 2 fall 3

server tidb-4 X.X.X.X:4001 send-proxy check inter 2000 rise 2 fall 3

server tidb-5 X.X.X.X:4000 send-proxy check inter 2000 rise 2 fall 3

server tidb-6 X.X.X.X:4001 send-proxy check inter 2000 rise 2 fall 3

0
0
0
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论