TiDB Data Migration 术语表

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 本文档介绍 TiDB Data Migration (TiDB DM) 相关术语。BBinlog在 TiDB DM 中,Binlog 通常指 MySQL/MariaDB 生成的 binary log 文件,具体请参考 MySQL Binary Log 与 MariaDB Binary Log。Binlog eventMySQL/MariaDB 生成的 Binlog 文件中的数据变更信息,具体请参考 MySQL Binlog Event 与 MariaDB Binlog Event。Binlog event filter比 Black & white table list 更

本文档介绍 TiDB Data Migration (TiDB DM) 相关术语。

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

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

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

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

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

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

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

对于全量导入,Checkpoint 信息对应于每个数据文件已经被成功导入的数据对应的文件内偏移量等信息,其在每个导入数据的事务中同步更新;
对于增量复制,Checkpoint 信息对应于已经成功解析并导入到下游的 Binlog position 等信息,其在 DDL 导入成功后或距上次更新时间超过 30 秒等条件下更新。
另外,relay.meta 内记录的信息也相当于 Checkpoint,其对应于 Relay 处理单元已经成功从上游拉取并写入到 Binlog event 对应的 GTID 信息。

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

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

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

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

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

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

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

S
Safe mode
指增量复制过程中,用于支持在表结构中存在主键或唯一索引的条件下可重复导入 DML 的模式。

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

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

Shard DDL lock
用于协调 Shard DDL 迁移的锁机制,具体原理可查看Shard group

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

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

Subtask status
数据迁移子任务所处的状态,目前包括 New、Running、Paused、Stopped 及 Finished 5 种状态。有关数据迁移任务、子任务状态的更多信息可参考T

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

数据迁移任务,执行 start-task 命令成功后即启动一个数据迁移任务。根据任务配置的不同,单个数据迁移任务既可能只在单个 DM-worker 实例上运行,也可能同时在多个 DM-worker 实例上运行。

Task status
数据迁移子任务所处的状态,由 任务状态。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
Windows
已解决Win11报错 OSError: [WinError 1455] 页面文件太小,无法完成操作。
Win11报错 OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "D:\aaaa\envs\gs\lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll" or one of its dependencies.
7385 0
已解决Win11报错 OSError: [WinError 1455] 页面文件太小,无法完成操作。
|
8月前
|
机器学习/深度学习
《深度学习梯度消失问题:原因与解决之道》
梯度消失是深度学习训练中的常见问题,严重影响模型性能。其原因包括激活函数选择不当(如Sigmoid)、网络层次过深和权重初始化不合理。解决方法有:选择合适激活函数(如ReLU及其变种)、优化权重初始化(如Xavier、He初始化)、采用批量归一化、引入残差连接、使用LSTM等特殊结构、调整学习率及预训练加微调等策略。
501 8
|
存储 机器学习/深度学习 PyTorch
【从零开始学习深度学习】19. Pytorch中如何存储与读取模型:torch.save、torch.load与state_dict对象
【从零开始学习深度学习】19. Pytorch中如何存储与读取模型:torch.save、torch.load与state_dict对象
|
缓存 监控 Java
如何优化Spring Boot应用的性能?
如何优化Spring Boot应用的性能?
|
人工智能 API 语音技术
使用 Gemini Pro AI 开发 Android 应用程序
使用 Gemini Pro AI 开发 Android 应用程序
241 0
|
前端开发 PHP 对象存储
如何用Postman测试文件或图片上传
本文介绍了在某些小项目中,如何使用传统方式将文件上传到与应用程序同一服务器上的方法,而不是使用大平台的对象存储。
1797 3
|
人工智能 安全 Go
Golang 搭建 WebSocket 应用(八) - 完整代码
Golang 搭建 WebSocket 应用(八) - 完整代码
88 0
链表oj题讲解(1)——移除链表元素
在初步给大家介绍链表之后,为了让大家更好的理解和巩固链表,小编这里会从易到难以此给大家带来一系列关于链表的oj题。那么接下来就让我们看看今天的例题。
108 1
|
前端开发
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用4深度拷贝
前端学习笔记202306学习笔记第四十天-Es6-object.assign的使用4深度拷贝
90 0
|
数据安全/隐私保护 Python
python接口自动化(三十四)-封装与调用--函数和参数化(详解)
参数化的思维只需记住一点:不要写死,这样就便于维护,否则就会牵一发而动全身,一处修改导致处处修改,不便于维护。
1247 1
python接口自动化(三十四)-封装与调用--函数和参数化(详解)