tidb v3.1.0 40T数据迁移到新集群,有啥好的成熟方案,或者一键迁移工具吗

40T数据的逻辑备份?那可就不止40T了,感觉有点多哦~

1 个赞

逻辑导出要比tidb里面大?

:thinking:我这边逻辑导出都是下面这种格式的语句,这不凭空多了很多字段?
insert into table (column…) values(column…)
insert into table (column…) values(column…)
:wink:这些字段也占大小吧。我说的是备份文件大小,不是还原后数据大小。

1 个赞

tidb存储是带压缩的。逻辑导出数据量会大好几倍

tidb 不是存储了3份数据吗

tidb 不是存储了3份数据吗,我认为应该比现在显示小一些啊

:joy:有没有可能,题主说的40T就是三份数据的。

1 个赞

是的啊,那导出来也大于40T

./mydumper -h 127.0.0.1 -u root --ask-password -t 16 -F 256 -B dbname --skip-tz-utc -o /backup/data/dbname

很快会把tidb server 的内存耗尽

现在想咨询一下v3.1.0 还有什么好办法,br靠谱吗?或者还有其他工具吗?

之前用过kettle、etlcloud之类的工具,把大表导出为csv,然后用tidb lighting直接导进去;小表直接在线逻辑导

这是40T的数据dump已经试过了,迅速把tidb server 内存耗尽

分批也会吗?我用etlcloud,可以每次10W行分批次导出到csv,内存消耗还好

我觉着你可以考虑搭建一个DM集群,做一个全量+增量同步到新集群,用这个来迁移。
TiDB Data Migration 简介 | PingCAP 文档中心

etlcloud 最低tidb版本支持?是全量数据迁移吗?

我现在是在问40T数据如何全量出来

兼容mysql协议,理论上所有版本都支持

不用导出来,dm会将数据先全量复制到下游,然后做增量同步

我这源端是tidb,你可以看看文档是不是有个1t的限制呢

我知道你源端是TiDB,但不是 TiDB v3吗,是兼容mysql协议的撒,其实DM也能迁移,你可以在你的源端挑一个库来尝试,比如test 库。至于 1T 的数据限制,可以忽略,不是说数据量超了 1T 就做不了,只是不是特别推荐。但是针对你现在的这个情况,这是比较好的一种方案了。

原理首先还是要先走逻辑备份,然后再增量。我手工处理的时候tidb server内存就耗尽了,我看官方dumpling 有内存现在,不知道是否对低版本有效