TIDB手动降级(原版本v6.0.0,重装v5.4.1)

当前TIDB集群版本为v6.0.0,由于内部原因,现在需降级为升级前的版本v5.4.1。

由于官方没有直接降级方案,所以通过直接摧毁重建的方式降级。

具体步骤如下:

1、全备

因为数据库里的数据是需要的,只是需要变更版本。所以,降级前对集群进行数据备份。

br backup full --pd "${PDIP}:2379" --storage "local:///tmp" --ratelimit 128 --log-file /data/tidb-backup/backupfull.log --check-requirements=false 

tips:
1、要注意BR工具版本
2、注意数据备份方式。本示例是”本地备份“。

3、如果数据恢复时,对系统表,比如mysql.user等的数据有恢复期望,建议额外使用dumpling等方式单独进行表的备份,因为BR恢复不会恢复这类系统表。

2、destory掉当前版本集群:

tiup cluster destroy tidb-dev

3、安装v5.4.1版本TiDB集群

①检查集群存在的潜在风险:

tiup cluster check /data/tidb_conf/topology.yaml --user root -i /etc/ssh/key_rsa

或者:

tiup cluster check /data/tidb_conf/topology.yaml --user root -p root_passwd

[-i] 及 [-p] 为可选项,如果已经配置免密登录目标机,则不需填写。否则选择其一即可,[-i] 为可登录到目标机的 root 用户(或 --user 指定的其他用户)的私钥,也可使用 [-p] 交互式输入该用户的密码。

预期结果输出:各节点 Status 状态信息为 Up 说明集群状态正常。

②自动修复潜在风险

tiup cluster check /data/topology.yaml --apply --user root -p root_passwd

③部署集群

tiup cluster deploy tidb-dev v5.4.1 /data/topology.yaml --user root -p root_passwd

4、查看TiUP管理的集群情况

tiup cluster list

5、检查部署的 TiDB 集群情况

tiup cluster display tidb-dev

6、启动集群:

安全启动

tiup cluster start tidb-dev --init

普通启动

tiup cluster start tidb-dev

7、验证集群运行状态

tiup cluster display tidb-test

8、恢复数据:

如果使用本地存储,在恢复前必须将所有备份的 SST 文件复制到各个 TiKV 节点上 --storage 指定的目录下。

即使每个 TiKV 节点最后只需要读取部分 SST 文件,这些节点也需要有所有 SST 文件的完全访问权限。原因如下:

* 数据被复制到了多个 Peer 中。在读取 SST 文件时,这些文件必须要存在于所有 Peer 中。这与数据的备份不同,在备份时,只需从单个节点读取。

* 在数据恢复的时候,每个 Peer 分布的位置是随机的,事先并不知道哪个节点将读取哪个文件。

使用共享存储可以避免这些情况。例如,在本地路径上安装 NFS,或使用 S3。利用这些网络存储,各个节点都可以自动读取每个 SST 文件,此时上述注意事项不再适用。

同时,请注意同一时间对同一个集群只能运行一个恢复任务,否则可能会出现非预期的行为。

./br restore full --pd "${PDIP}:2379" --storage "local:///tmp" --ratelimit 128 --log-file /data/tidb-backup/restorefull.log

此命令意思是:

--pd:pd的ip地址和端口

--storage:备份文件的路径

--ratelimit: 限制了每个 TiKV 执行备份任务的速度上限

--log-file:恢复日志的路径和名称

关于系统表,如果只需要恢复 mysql.usertable,而无需恢复其他表,可以使用以下命令

br restore full -f "mysql.*"  -s local:///tmp/  --ratelimit 128

至此,所有操作执行完毕。

其他操作:

9、扩容tiflash:

编辑一个scale-out.yaml文件,内容大致如下:

tiflash_servers:

  - host: 1.2.3.4

    data_dir: /tidb-data/tiflash-9000

    deploy_dir: /tidb-deploy/tiflash-9000

然后执行命令进行扩容:

tiup cluster scale-out tidb-dev ./tidb_conf/scale-out.yaml

10、扩容cdc

新建配置文件大致如下:

# cat /data/tidb_conf/scale-out.yaml

cdc_servers:

  - host: 2.3.4.5

    gc-ttl: 86400

    data_dir: /data/deploy/install/data/cdc-8300

  - host: 3.4.5.6

    gc-ttl: 86400

    data_dir: /data/deploy/install/data/cdc-8300

扩容命令:

tiup cluster scale-out tidb-dev ./scale-out.yaml

拓展注意事项:

TiDB 在 v6.0.0 版本中引入了缓存表功能。对TIDB数据库进行降级,恢复表结构及数据后,如果存在缓存表,或存在表无法正常使用的状况。

在v5.4.1版本的TIDB数据库中对缓存表进行update、insert、delete等操作是,会报错。

报错大致如下:

1105 - table_cache_meta tid not exist 5802

 此时查看表结构,会发现最后一行添加了部分定义,内容如下:

COMMENT='' /* CACHED ON */

取消缓存表定义,语句为:

ALTER TABLE table_name  NOCACHE

或者去掉此部分定义、整理表结构后,手动执行新建表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值