TiDB Data Migration 术语表

    在 TiDB DM 中,Binlog 通常指 MySQL/MariaDB 生成的 binary log 文件,具体请参考 与 MariaDB Binary Log

    Binlog event

    MySQL/MariaDB 生成的 Binlog 文件中的数据变更信息,具体请参考 与 MariaDB Binlog Event

    Binlog event filter

    比 Black & white table list 更加细粒度的过滤功能,具体可参考 。

    Binlog position

    特定 Binlog event 在 Binlog 文件中的位置偏移信息,具体请参考 MySQL 与 。

    Binlog replication 处理单元

    DM-worker 内部用于读取上游 Binlog 或本地 Relay log 并迁移到下游的处理单元,每个 Subtask 对应一个 Binlog replication 处理单元。在当前文档中,有时也称作 Sync 处理单元。

    Black & white table list

    针对上游数据库实例表的黑白名单过滤功能,具体可参考 Black & white table lists。该功能与 及 MariaDB Replication Filters 类似。

    C

    Checkpoint

    TiDB DM 在全量导入与增量复制过程中的断点信息,用于在重新启动或恢复任务时从之前已经处理过的位置继续执行。

    • 对于全量导入,Checkpoint 信息对应于每个数据文件已经被成功导入的数据对应的文件内偏移量等信息,其在每个导入数据的事务中同步更新;

    D

    DM-worker 内部用于从上游导出全量数据的处理单元,每个 Subtask 对应一个 Dump 处理单元。

    GTID

    MySQL/MariaDB 的全局事务 ID,当启用该功能后会在 Binlog 文件中记录 GTID 相关信息,多个 GTID 即组成为 GTID Set,具体请参考 与 MariaDB Global Transaction ID

    H

    Heartbeat

    在增量数据迁移过程中,用于估算数据从在上游写入后到达 Binlog replication 处理单元延迟时间的机制,具体可参考。

    L

    Load 处理单元

    DM-worker 内部用于将全量导出数据导入到下游的处理单元,每个 Subtask 对应一个 Load 处理单元。在当前文档中,有时也称作 Import 处理单元。

    Relay log

    DM-worker 从上游 MySQL/MariaDB 拉取 Binlog 后存储在本地的文件,当前其格式为标准的 Binlog 格式,可使用版本兼容的 mysqlbinlog 等工具进行解析。其作用与 及 MariaDB Relay Log 相近。

    有关 TiDB DM 内 Relay log 的目录结构、初始同步规则、数据清理等内容,可参考 。

    Relay 处理单元

    DM-worker 内部用于从上游拉取 Binlog 并写入数据到 Relay log 的处理单元,每个 DM-worker 实例内部仅存在一个该处理单元。

    S

    Safe mode

    该模式的主要特点为将来自上游的 INSERT 改写为 REPLACE,将 改写为 DELETEREPLACE 后再向下游执行。在启动或恢复增量迁移任务的前 5 分钟 TiDB DM 会自动启动 Safe mode,另外也可以在任务配置文件中通过 safe-mode 参数手动开启。

    指合库合表迁移过程中,在上游各分表 (shard) 上执行的需要 TiDB DM 进行协调迁移的 DDL。在当前文档中,有时也称作 Sharding DDL。

    Shard DDL lock

    用于协调 Shard DDL 迁移的锁机制,具体原理可查看分库分表合并同步实现原理。在当前文档中,有时也称作 Sharding DDL lock。

    Shard group

    指合库合表迁移过程中,需要合并迁移到下游同一张表的所有上游分表 (shard),TiDB DM 内部具体实现时使用了两级抽象的 Shard group,具体可查看。在当前文档中,有时也称作 Sharding group。

    Subtask

    数据迁移子任务,即数据迁移任务运行在单个 DM-worker 实例上的部分。根据任务配置的不同,单个数据迁移任务可能只有一个子任务,也可能有多个子任务。

    Subtask status

    数据迁移子任务所处的状态,目前包括 New、、PausedStoppedFinished 5 种状态。有关数据迁移任务、子任务状态的更多信息可参考任务状态

    T

    Table routing

    用于支持将上游 MySQL/MariaDB 实例的某些表同步到下游指定表的路由功能,可以用于分库分表的合并同步,具体可参考 。

    Task

    数据迁移子任务所处的状态,由 Subtask status 整合而来,具体信息可查看。