- 【DM 版本】:1.0.3
- 【问题描述】: 同步mysql数据时,报错,mysql的binlog不是从000001开始的 “msg”: “[code=30015:class=relay-unit:scope=upstream:level=high] TCPReader get relay event with error: ERROR 1236 (HY000): Could not find first log file name in binary log index file\ngithub.com/pingcap/dm/pkg/terror.(*Error).Delegate\ \t/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/pkg/terror/terror.go:267\ngithub.com/pingcap/dm/pkg/binlog/reader.(*TCPReader).GetEvent\ \t/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/pkg/binlog/reader/tcp.go:151\ngithub.com/pingcap/dm/relay/reader.(*reader).GetEvent\ \t/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/relay/reader/reader.go:144\ngithub.com/pingcap/dm/relay.(*Relay).handleEvents\ \t/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/relay/relay.go:378\ngithub.com/pingcap/dm/relay.(*Relay).process\ \t/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/relay/relay.go:292\ngithub.com/pingcap/dm/relay.(*Relay).Process\ \t/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/relay/relay.go:191\ngithub.com/pingcap/dm/dm/worker.(*realRelayHolder).run\ \t/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/dm/worker/relay.go:167\ngithub.com/pingcap/dm/dm/worker.(*realRelayHolder).Start.func1\ \t/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/dm/worker/relay.go:143\ runtime.goexit\ \t/usr/local/go/src/runtime/asm_amd64.s:1357”,
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
我这个是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
复现了报错:
建议正确指定 relay_binlog_name 的值~
重新部署步骤:
- 删除 dm-worker 中 rely_log 目录
- 删除下游数据库 dm-meta 及 上次同步数据库
- 修改 inventory.ini 中 relay_binlog_name
- 执行 ansible-playbook deploy.yml -l dm-worker_name
- 执行 ansible-playbook rolling_update.yml -l dm-worker_name
- 恢复task 任务 resume-task task_name
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。