DM-worker 简介

    其主要功能如下:

    • 读取 MySQL 或 MariaDB 的 binlog event,并将这些 event 持久化保存在本地 (relay log)。
    • 单个 DM-worker 支持同步一个 MySQL 或 MariaDB 实例的数据到下游的多个 TiDB 实例。
    • 多个 DM-Worker 支持同步多个 MySQL 或 MariaDB 实例的数据到下游的一个 TiDB 实例。

    DM-worker 任务包含如下多个逻辑处理单元。

    Relay log 持久化保存从上游 MySQL 或 MariaDB 读取的 binlog,并对 binlog replication 处理单元提供读取 binlog event 的功能。

    其原理和功能与 MySQL slave relay log 类似,详见 Slave Relay Log

    Dumper

    Loader 读取 dumper 处理单元的数据文件,然后加载到下游 TiDB。

    Binlog replication/Syncer

    Binlog replication/Syncer 读取 relay log 处理单元的 binlog event,将这些 event 转化为 SQL 语句,再将这些 SQL 语句应用到下游 TiDB。

    DM-worker 所需权限

    本小节主要介绍使用 DM-worker 时所需的上下游数据库用户权限以及各处理单元所需的用户权限。

    上游数据库 (MySQL/MariaDB) 用户必须拥有以下权限:

    如果还要同步其他数据库的数据到 TiDB, 请确保已赋予这些库跟 db1 一样的权限。

    下游数据库用户权限

    下游数据库 (TiDB) 用户必须拥有以下权限:

    对要执行同步操作的数据库或表执行下面的 GRANT 语句:

    1. GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX ON db.table TO 'your_user'@'your_wildcard_of_host';