分享知识,分享快乐

0%

从 TiDB 集群迁移数据至另一 TiDB 集群

迁移全量数据

关闭 GC。

为了保证增量迁移过程中新写入的数据不丢失,在开始备份之前,需要关闭上游集群的垃圾回收 (GC) 机制,以确保系统不再清理历史数据。

执行如下命令关闭 GC:

1
MySQL [test]> SET GLOBAL tidb_gc_enable=FALSE;

备份数据。

在上游集群中执行 BACKUP 语句备份数据:

1
MySQL [(none)]> BACKUP DATABASE * TO 's3://backup?access-key=minio&secret-access-key=miniostorage&endpoint=http://${HOST_IP}:6060&force-path-style=true' RATE_LIMIT = 120 MB/SECOND;

备份语句提交成功后,TiDB 会返回关于备份数据的元信息,这里需要重点关注 BackupTS,它意味着该时间点之前数据会被备份,后边的教程中,将使用 BackupTS 作为数据校验截止时间TiCDC 增量扫描的开始时间

恢复数据。

在下游集群中执行 RESTORE 语句恢复数据:

1
BACKUP DATABASE BASE TO 's3://tidb/BASE_BAK20231031?access-key=minio&secret-access-key=miniostorage&endpoint=http://172.20.192.151:6060&force-path-style=true' RATE_LIMIT = 120 MB/SECOND;

使用 TiCDC 命令行工具来查看集群状态

tiup ctl:v6.5.0 cdc capture list --server=http://172.20.192.107:8300

创建一个 TiCDC 同步任务,备份主集群数据到从集群

1
tiup cdc cli changefeed create --server=http://172.20.192.108:8300 --sink-uri="mysql://root:Admi*@172.20.192.101:4000" --changefeed-id="upstream-to-downstream" --start-ts="445309452101091541" -d