You need to enable JavaScript to run this app.
文档中心
云数据库 TiDB 版

云数据库 TiDB 版

复制全文
下载 pdf
同步数据
同步数据到 MySQL
复制全文
下载 pdf
同步数据到 MySQL
本文档介绍如何使用变更数据流(changefeed),将数据从云数据库 TiDB 版实时同步到 MySQL。​
Essential 集群限制​
  • 每个 Essential 集群最多可创建 10 个变更数据流。​
  • 如果待同步的表没有主键或非空唯一索引,在某些重试场景下,由于缺少唯一约束,可能会导致下游插入重复数据。​
前置条件​
在创建变更数据流之前,您需要完成以下前置条件:​
  • 准备存量数据或目标表:​
加载已有数据(可选)​
同步至 MySQL 连接器只能将 TiDB 集群中某一时间点之后的增量数据同步到 MySQL。如果您的云数据 TiDB 版集群中已经存在数据,请在同步至 MySQL 之前,将已有数据导出并加载到 MySQL。​
加载已有数据的步骤如下:​
  1. 将 tidb_gc_life_time 设置为大于以下两个操作总耗时的值,以避免这期间的历史数据被 TiDB GC 回收。​
  • 导出和导入已有数据的时间。​
  • 创建变更数据流同步至 MySQL 的时间。​
  • 例如:​
  • ​
    SET GLOBAL tidb_gc_life_time = '72h';​
    ​
  1. 从 Essential 集群导出数据,然后使用社区工具,如 mydumper/myloader 将数据加载到 MySQL。​
  1. 记录导出数据返回的快照时间(snapshot time)。在配置同步至 MySQL 时,将该时间戳作为起始位置。​
在 MySQL 中创建目标表​
如果您没有加载已有数据,需要在 MySQL 中手动创建对应的目标表,用于存储来自 TiDB 的增量数据。否则,数据将无法被同步。​
创建变更数据流同步任务​
完成以上前置条件后,您可以创建变更数据流将数据同步到 MySQL。​
  1. 登录云数据库 TiDB 版控制台。​
  1. 在顶部菜单栏,选择集群所属的项目和地域。​
  1. 单击目标集群名称,进入其概览页面。​
  1. 在左侧导航栏单击数据 > 变更数据流。​
  1. 单击创建变更数据流,配置以下参数将数据同步至 MySQL。​
  • ​
    参数​
    说明​
    目标​
    选择 MySQL。​
    Private Link 连接​
    选择您已创建的 Private Link。​
    端口​
    输入您 MySQL 实例的端口。​
    用户名​
    输入您 MySQL 实例的用户名。​
    密码​
    输入您 MySQL 实例的密码。​
    ​
  1. 单击下一步,测试 TiDB 是否能成功连接到 MySQL。​
说明​
若成功跳转至下一页面,代表连接校验通过,可继续执行后续配置;如果连接校验失败,页面将展示具体错误原因,问题修复后重新单击下一步。​
  1. 自定义表过滤,筛选您希望同步的表。​
  • ​
    表过滤
    事件过滤器
    ​
    在表过滤页面,进行以下参数配置:​
    ​
    参数​
    说明​
    复制范围​
    您可以选择仅同步具有有效键的表(推荐)或同步所有选中的表。​
    表过滤规则​
    您可以在此区域设置表过滤规则。默认规则为 *.*,表示同步所有表。添加新规则并单击应用后,云数据 TiDB 版会查询 TiDB 中所有表,仅显示符合规则的表会显示在筛选结果区域。​
    区分大小写的数据库和表名​
    您可以设置过滤规则中数据库和表名的匹配是否大小写敏感。​
    默认为不区分大小写;若勾选,则表示匹配区分大小写。​
    筛选结果​
    符合表过滤规则的表会显示在此区域。您可切换以下选项做进一步筛选:​
    • 所有匹配的表:此列显示所有匹配过滤条件的表。​
    • 有有效键的表:此列显示具有有效键(包括主键或唯一索引)的表。​
    • 无有效键的表:此列显示缺少主键或唯一键的表。这些表在同步时存在挑战,因为缺少唯一标识,可能导致下游处理重复事件时数据不一致。为保证数据一致性,建议在同步前为这些表添加唯一键或主键,或通过添加过滤规则排除这些表。例如,可以通过规则 "!test.tbl1" 排除表 test.tbl1。​
    ​
    ​
    ​
  1. 在起始位置中,配置同步至 MySQL 的起始位置。支持的选项如下所示:​
  • ​
    选项​
    说明​
    从现在开始​
    如果您已导出数据并加载了已有数据,请选择从现在开始,并填写导出返回的快照 TSO,确保时区设置正确。​
    从指定 TSO 开始​
    如果上游 Essential 集群没有任何数据,请选择从指定 TSO 开始。​
    从指定时间开始​
    您可以选择从指定时间开始同步。​
    ​
  1. 单击下一步。​
  1. 配置变更数据流的名称。​
  1. 检查配置。​
  1. 单击提交,即可完成创建变更数据流。​
说明​
创建完成后,同步状态会从 Creating 变为 Running。​
后续步骤​
  • 恢复 GC 时间(可选)​
  • 如果您已加载了已有数据并延长了 GC 时间,同步创建完成后请将其恢复为原值(默认值为 10m)。​
  • ​
    SET GLOBAL tidb_gc_life_time = '10m';​
    ​
最近更新时间:2026.11.04 16:54:49
这个页面对您有帮助吗?
有用
有用
无用
无用