【 TiDB 使用环境】生产环境
【 TiDB 版本】v5.1.4
tidb升级过程中,如果遇到暂时无法解决的错误,是否可以将各个组件的bin目录下替换为原版本,重新启动集群就行?tidb升级都会修改哪些东西
计划将版本由v5.1.4升级到v6.5.2
看下官方的升级指南吧
https://docs.pingcap.com/zh/tidb/v6.5/upgrade-tidb-using-tiup#使用-tiup-升级-tidb
另外为什么是6.5.2而不是6.5.5
之前一个升级到的版本就是6.5.2,那时候还没有6.5.5,为了保持一致就只升级到6.5.2了
之前也升级过,就是一直不太懂,升级过程都改变了什么,直观看着就是替换了bin下的文件。
可以自动升级,升级过程tidb会自动备份安装包,也可以手动下载安装包升级就是麻烦一点
不建议这么做,如果考虑回滚方案的话最好是新搭一套新版本集群用ticdc同步数据做流量割接,这样可以回退。
这种方式,5.1的tiflash升级到6.5之后,直接把tiflash组件替换回来应该起不来的,建议有空闲机器可以搭建两套集群cdc同步方式升级,没有的话需要回滚也可以先把数据进行备份,回滚在恢复数据保险一点
干过生产集群从5.0.6升级到6.1.5再到6.5.3,差点领盒饭。
如果集群数据不大,建议按上面老哥说得, 新建集群,br恢复过去 然后做cdc,
数据不大的话提前做个备份,预定个时间停机升级
改进提升
- TiDB
- TiKV
- PD
- Tools
- TiCDC
- 优化 TiCDC 对 DDL 的处理方式,使 DDL 不阻塞其他无关的 DML Event 的使用,同时减少内存使用 #8106 @asddongmen
- 调整 Decoder 接口,增加了新方法
AddKeyValue
#8861 @3AceShowHand - 优化同步数据到对象存储的场景下发生 DDL 事件时的目录结构 #8890 @CharlesCheung96
- 支持同步到 Kafka-on-Pulsar 下游 #8892 @hi-rustin
- 当同步数据到 Kafka 时,支持 OAuth 协议验证方式 #8865 @hi-rustin
- 优化采用 Avro 或 CSV 协议同步数据时 TiCDC 对
UPDATE
语句的处理方式,即将其拆分为DELETE
和INSERT
语句,这样用户从DELETE
语句中即可获取修改前的 old value #9086 @3AceShowHand - 增加一个配置项
insecure-skip-verify
,控制在同步数据到 Kafka 的场景下启用 TLS 时是否设置认证算法 #8867 @hi-rustin - TiCDC 优化 DDL 同步操作,减轻 DDL 操作对下游延迟的影响 #8686 @hi-rustin
- 优化 TiCDC 在同步任务失败时对上游 GC TLS 的设置方法 #8403 @charleszheng44
- TiDB Lightning
- TiDB Binlog
- TiCDC
错误修复
- TiDB
- 修复
min, max
查询结果出错的问题 #43805 @wshwsh12 - 修复窗口函数计算下推到 TiFlash 时执行计划构造错误的问题 #43922 @gengliqi
- 修复使用 CTE 的查询导致 TiDB 卡住的问题 #43749 #36896 @guo-shaoge
- 修复在使用
AES_DECRYPT
表达式时,SQL 报错runtime error: index out of range
的问题 #43063 @lcwangchao - 修复
SHOW PROCESSLIST
语句无法显示子查询时间较长语句的事务的 TxnStart 的问题 #40851 @crazycs520 - 修复 PD 隔离可能会导致运行的 DDL 阻塞的问题 #44014 #43755 #44267 @wjhuang2016
- 修复使用
UNION
查询联合视图和临时表时 TiDB panic 的问题 #42563 @lcwangchao - 修复 Placement Rule 在分区表下的行为问题,使得删除的分区 Placement Rule 可以被正确设置并回收 #44116 @lcwangchao
- 修复在 TRUNCATE 分区表的某个分区时可能造成分区的 Placement Rule 失效的问题 #44031 @lcwangchao
- 修复在重命名表期间 TiCDC 可能丢失部分行变更的问题 #43338 @tangenta
- 修复使用 BR 导入表后 DDL 作业历史记录丢失的问题 #43725 @tangenta
- 修复了
JSON_OBJECT
在某些情况下会报错的问题 #39806 @YangKeao - 修复 IPv6 环境下的集群无法查询部分系统视图的问题 #43286 @Defined2014 @nexustar
- 修复当 PD 成员地址发生变化时,为
AUTO_INCREMENT
列分配 ID 会被长时间阻塞的问题 #42643 @tiancaiamao - 修复回收放置规则时,TiDB 向 PD 发送重复请求造成 PD 日志中出现大量
full config reset
的问题 #33069 @tiancaiamao - 修复了
SHOW PRIVILEGES
命令显示的权限列表不完整的问题 #40591 @CbcWestwolf - 修复
ADMIN SHOW DDL JOBS LIMIT
返回错误结果的问题 #42298 @CbcWestwolf - 修复在开启密码强度校验时对
tidb_auth_token
用户进行校验导致用户创建失败的问题 #44098 @CbcWestwolf - 修复动态裁剪模式下内连接表时找不到分区的问题 #43686 @mjonss
- 修复在分区表上执行
MODIFY COLUMN
时输出Data Truncated
相关报错的问题 #41118 @mjonss - 修复 IPv6 环境下显示错误的 TiDB 地址的问题 #43260 @nexustar
- 修复在谓词下推的情况下 CTE 结果错误的问题 #43645 @winoros
- 修复在带有非关联子查询的语句中使用公共表表达式 (CTE) 可能导致结果错误的问题 #44051 @winoros
- 修复 Join Reorder 可能会造成 Outer Join 结果错误的问题 #44314 @AilinKid
- 修复在一些极端情况下,悲观事务的第一条语句发生重试时,对该事务进行 resolve lock 可能影响事务正确性的问题 #42937 @MyonKeminta
- 修复在一些罕见的情况下,悲观事务的残留悲观锁在 GC resolve lock 时可能影响数据正确性的问题 #43243 @MyonKeminta
- 修复了
batch cop
在执行过程中的 scan detail 信息不准确的问题 #41582 @you06 - 修复在同时使用 Stale Read 和
PREPARE
语句时 TiDB 无法读取到数据更新的问题 #43044 @you06 - 修复执行
LOAD DATA
语句可能误报assertion failed
的问题 #43849 @you06 - 修复使用 Stale Read 过程中,当 coprocessor 遇到
region data not ready
情况时无法 fallback 到 leader 的问题 #43365 @you06
- 修复
- TiKV
- 修复 Continuous Profiling 中的文件句柄泄露的问题 #14224 @tabokie
- 修复 PD 宕机可能造成 PITR 无法推进的问题 #14184 @YuJuncen
- 修复加密 Key ID 冲突会导致旧 Key 被删除的问题 #14585 @tabokie
- 修复 autocommit 和 point get replica read 可能破坏线性一致性的问题 #14715 @cfzjywxk
- 修复集群从较低版本升级到 v6.5 或更高版本时,由于累计的 Lock 记录可能导致性能下降的问题 #14780 @MyonKeminta
- 修复 TiDB Lightning 可能导致 SST 文件泄露的问题 #14745 @YuJuncen
- 修复加密密钥和 raft log 文件删除之间的潜在冲突导致 TiKV 无法启动的问题 #14761 @Connor1996
- TiFlash
- 修复分区表 TableScan 算子在 Region 迁移时性能劣化的问题 #7519 @Lloyd-Pottiger
- 修复在 GENERATED 类型表字段与 TIMESTAMP 或 TIME 类型同时存在的情况下,查询 TiFlash 可能会报错的问题 #7468 @Lloyd-Pottiger
- 修复大的更新事务可能会导致 TiFlash 反复报错重启的问题 #7316 @JaySon-Huang
- 修复
INSERT SELECT
语句从 TiFlash 读取数据时报错 “Truncate error cast decimal as decimal” 的问题 #7348 @windtalker - 修复查询在 Join build 侧数据非常大,且包含许多小型字符串类型列时,消耗的内存可能会超过实际需要的问题 #7416 @yibin87
- Tools
- Backup & Restore (BR)
- TiCDC
- 修复在表数量多达 50000 个时可能出现 OOM 的问题 #7872 @sdojjy
- 修复 TiCDC 在上游 TiDB 发生 OOM 时卡住的问题 #8561 @overvenus
- 修复 PD 出现网络隔离或 PD Owner 节点重启等故障时 TiCDC 卡住问题 #8808 #8812 #8877 @asddongmen
- 修复 TiCDC 的时区设置问题 #8798 @hi-rustin
- 修复上游 TiKV 节点 crash 时 checkpoint lag 上升的问题 #8858 @hicqu
- 修复在同步数据到下游 MySQL 的场景中,当上游 TiDB 执行
FLASHBACK CLUSTER TO TIMESTAMP
语句后同步出错的问题 #8040 @asddongmen - 修复当同步数据到对象存储时上游的
EXCHANGE PARTITION
操作没有正常同步到下游的问题 #8914 @CharlesCheung96 - 修复在某些特殊场景下 sorter 组件内存使用过多导致 OOM 的问题 #8974 @hicqu
- 修复当下游为 Kafka 时,TiCDC 查询下游的元信息频率过高导致下游负载过大的问题 #8957 #8959 @hi-rustin
- 修复当 Kafka 消息过大导致同步出错时,在 Log 中记录了消息体的问题 #9031 @darraes
- 修复下游 Kafka 滚动重启时 TiCDC 节点发生 panic 的问题 #9023 @asddongmen
- 修复同步数据到存储服务时,下游 DDL 语句对应的 JSON 文件中没有记录表中字段默认值的问题 #9066 @CharlesCheung96
- TiDB Lightning
- TiDB Binlog
确实,迁移升级比较安全
有可能部分版本数据存储会发生变化,不止bin里面的内容
不可以,虽然看着是bin文件替换了,但是一些逻辑和底层存储结构发生了变化。回退不回去。
还是迁移升级吧
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。