从 2.0 到 6.0 最省人力最稳的升级方式是什么?

TiDB 2.0升级到TiDB6.0有什么好的方法吗?除了 2.0 → 3.0 → 4.0 → 5.0 →6.0 的升级方式

要求:
1、稳
2、节省人力或者时间成本

最稳最省人力的方法,我觉得就是搭建一套6.0的集群,然后用TiCDC同步工具将2.0的数据同步过来,割接的时候暂停业务进行数据比对,有问题还能回退

1 个赞

我比较赞同新集群做同步,然后割接的方案,不过对于一些资源紧张的小伙伴,原地升级有什么最佳方案?
是否如文档所说,2.0-3.0-4.0-6.1?还是2.0-3.0-4.0-5.0-6.0?

https://docs.pingcap.com/zh/tidb/stable/upgrade-tidb-using-tiup

+1 数据同步 切换集群 效率高点

从2.0升6.0,说明原集群已经运行几年了,硬件资源或许也需要更新了,从这点考虑:
新申请资源,搭建新集群,同步数据,择机割接,这种路线是最稳妥的。

1 个赞

真的是直接搭新的最快最省力也最妥当

必然是搭建新集群,毕竟每个大版本的升级都有不少的注意事项,尤其还涉及了管理工具ansible到tiup的切换

综合考虑,原地升级影响比较大,方案复杂,要考虑升级不成功后的回退,停机时间等,搭新集群配上时时同步,停机时间也就是一个割接的时间,原集群还可以做成备机,新版本水土不服可以切回去做备用方案

一般版本升级都要经过sit,bbit,uat各种测试环境验证,确保万无一失

不能直接就地升级啊,一定得搭一套测试环境把业务的sql全都跑一边。否则执行计划变化可能会带来一些问题。

2 个赞

是的,什么冒烟测试,回归测试,性能压测,一堆流程

2->6跨了多个版本,升级需要一个版本一个版本升,即2.0-3.0-4.0-5.0-6.0。但是多次升级确实是很烦的一个事情。
最省力的话可以考虑直接搭建6版本的集群,然后把2版本的业务数据迁移到6版本的集群中。确实会省力不少,但是不是最稳就不知道。

  1. 搭建6的版本。
  2. 然后通过 binlog 把全量数据迁移过去,迁移完成后断开 binlog。
  3. 应用做功能测试、性能测试。
  4. 没有任何问题之后清除6集群上的数据,然后约定好时间再同步一次。然后应用程序从此之后就彻底切到6.0版本。
2 个赞

确实,就怕SQL不兼容

最好的方式就是新搭一个集群,然后一堆测试,通过后再切换

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。