DM同步mysql数据

1、提供下 inventory 中对应的 dm-worker 的配置,是否指定了 enable_gtid、relay_binlog_name、relay_binlog_gtid 配置

2、检查下相应的 dm-worker 中 relaylog 的拉取情况,并且检查下最新的日志编号

3、请提供下相应 dm-worker 的 log

4、方便的话请提供下 task 配置文件

inventory 中对应的 dm-worker 的配置,relay_binlog_name=“binlog.003211” relay_binlog_gtid没有配置

task配置如下: name: oms_db task-mode: all is-sharding: false target-database: host: xxx port: 4000 user: root password: ycyLlnzOrYY1 mysql-instances:

  • source-id: mysql-replica-01 meta: binlog-name: mysql-bin.003012 binlog-pos: 4 filter-rules: [] route-rules:
    • mysql-replica-01.route_rules.1
    • mysql-replica-01.route_rules.2 black-white-list: mysql-replica-01.bw_list.1 mydumper-config-name: mysql-replica-01.dump

怎么找的binlog文件,还是从000001开始啊?

binlog 文件在部署时指定的目录中,可以参考 https://pingcap.com/docs-cn/dev/reference/tidb-binlog/deploy/

我这个是dm同步mysql时候报的binlog错误,需要安装文档配置tidb的binlog?

您好:

 1. 执行 dm-ctl -V 确认DM版本,我排除下alpha版本的一个配置问题
 2. 在你配置目录 relay log 目录下有生成文件吗?
 3. 麻烦把你的inventory.ini,  dm-master, dm-worker,task配置文件上传一下,多谢

您的问题,这边复现了:
上游 mysql binlog_name 为“mysql-bin.000009

测试中指定了错误的名称 relay_binlog_name=“binlog.000009”,并且没有指定 relay_binlog_gtid

复现了报错:
image

建议正确指定 relay_binlog_name 的值~

重新部署步骤:

  1. 删除 dm-worker 中 rely_log 目录
  2. 删除下游数据库 dm-meta 及 上次同步数据库
  3. 修改 inventory.ini 中 relay_binlog_name
  4. 执行 ansible-playbook deploy.yml -l dm-worker_name
  5. 执行 ansible-playbook rolling_update.yml -l dm-worker_name
  6. 恢复task 任务 resume-task task_name