迁移全量数据
关闭 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 |