从小数据量 TiDB 实例迁移至 TDSQL Boundless

Dumpling 是一个可以将 TiDB 数据导出为 SQL 或 CSV 文件的工具。这里说明如何使用 Dumpling 从 TiDB 自建集群导出全量数据。

相关产品
TDSQL Boundless 产品页,含版本规格、价格与购买入口。

一、前置准备

1. 部署环境准备

推荐在与待迁移 MySQL/TiDB 和 TDSQL Boundless 实例网络互通的服务器上部署 Dumpling。

2. 使用 TiUP 部署 Dumpling

## 部署 TiUPcurl –proto '=https' –tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | shsource /root/.bash_profile## 部署 Dumpling 并升级到最新版本tiup install dumplingtiup update –self && tiup update dumpling

3. 配置 Dumpling 所需权限

你需要以下权限才能从上游数据库导出数据:

·SELECT

·RELOAD

·LOCK TABLES

·REPLICATION CLIENT

·PROCESS

4. 已获取 TDSQL Boundless myloader 工具。

二、操作步骤

如下示例将展示如何使用 Dumpling 从 TiDB 中导出 SQL 文件并通过 TDSQL Boundless myloader 导入 TDSQL Boundless,并开启 TiCDC 进行增量同步。

1. 临时关闭上游 TiDB 自建集群的 GC 机制。

为确保增量迁移期间新写入的数据不会丢失,在开始迁移前需要关闭上游集群的垃圾回收(GC)机制,防止系统清理历史数据。

运行以下命令,验证设置是否成功。

SET GLOBAL tidb_gc_enable = FALSE;

验证设置是否成功:

SELECT @@global.tidb_gc_enable;

以下为示例输出,其中0表示已关闭。

+————————-+| @@global.tidb_gc_enable |+————————-+| 0 |+————————-+1 row in set (0.00 sec)

2. 运行 Dumpling,将全量数据导出为 SQL 文件。

tiup dumpling -u root -P 4000 -h tidb_host -o /tmp/test

Dumpling 默认导出格式为 SQL 文件。如需部分数据导出或者进行过滤,可参考 Dumpling 使用说明。

3. 检查导出数据。

通常导出的数据包括以下内容:

·metadata:包含导出起始时间和主库 binlog 位置

·{schema}-schema-create.sql:创建 schema 的 SQL 文件

·{schema}.{table}-schema.sql:创建表的 SQL 文件

·{schema}.{table}.{0001}.{sql|csv}:数据文件

·*-schema-view.sql、*-schema-trigger.sql、*-schema-post.sql:其他导出的 SQL 文件

以如下 metadata 文件为例:

Started dump at: 2025-12-02 12:42:53SHOW MASTER STATUS: Log: tidb-binlog Pos: 462583122654920710 GTID:Finished dump at: 2025-12-02 12:42:53

其中 Pos后数字为导出所使用的 TiDB 时间戳,该时间戳将用于后续增量迁移设置 TiCDC 回放起点。

4. 导入数据

使用 TDSQL Boundless myloader 工具进行导入。下例中 -d 所使用的目录为前例中 Dumpling 所导出的目录。

myloader -h tdsql_host -P 3306 –user tdsqluser -d /tmp/test

5. 通过 TiCDC 进行增量同步。如下例子中,将 start-ts 设为从 Dumpling metadata 中获取的时间戳。详情可参考 TiDB 说明。

tiup cdc cli changefeed create –server=http://ticdc_host:8300 –sink-uri='mysql://tdsql_user@tdsql_host:3306' –changefeed-id="upstream-to-downstream" –start-ts="462583122654920710"

6. 恢复 TiDB 的 GC 行为,并检查设置成功与否。

SET GLOBAL tidb_gc_enable = TRUE;

验证恢复成功:

SELECT @@global.tidb_gc_enable;

预期输出为1,表示已开启:

+————————-+| @@global.tidb_gc_enable |+————————-+| 1 |+————————-+1 row in set (0.00 sec)

赞 (0)
上一篇 4天前
下一篇 4天前