求助,怎么将在一个集群里面将tidb的表迁移到另外一个表

背景:
有一个分区表,大概400多万数据,因为之前创建分区创建错了,导致现在所有的数据都往一个分区里面写,计划是拉出一个新表(创建好正确的方式),从旧表导入新表后就将旧表给删除了,旧表到新表同迁移数据,除了dumpling + lightning 以外,应该没有其他方式了吧,好像增量的数据 也挺难搞的 大家有什么建议或者想法吗
import into 不建议使用,因为这是物理的方式,我需要新表上的分区都对应的上,

才400万,直接insert into select * from 就行

可以测下,但是估计会比较久

如果只是想解决最大的分区,可以考虑分区重组:
REORGANIZE PARTITION

1 个赞

400w没有多少的,就算是标准部署的集群,也 很快的。

线上业务,不能丢太久的数据呢 我自己回头测下看多久

我靠 大佬 你这个重组分区 特别有用,感觉很满足我们的需求,谢谢大佬

小表(GB 级内):INSERT … SELECT
中 / 大表:BR(Backup & Restore)备份恢复

重建表create as方法呢

insert … select这种方法最简单

复杂点的,可以用CDC同步

这个是在一个集群内

1 个赞

insert select 容易导致OOM

1 个赞

先建正确分区新表,分批 insert select 迁移存量
业务低峰切读写,binlog 同步追增量数据即可

导入导出,有很多方法,适配mysql的工具基本都能使用

dump工具就行

dumpling + lightning就很好了,数据量才400万,不大

同一个集群直接通过insert into select * from 方式,数据量才400多万,应该很快