为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:3.0.3
- 【DM 版本】:1.0.2
- 【问题描述】:同步上游相应的权限都有,重新部署dm-worker 启动task报错 没有新的relay log日志
1:这是执行start-task的日志
2:这是 dm-worker的日志
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
1、根据报错这是两个问题,出现 error 1290 的报错,请先确认是否做过重置密码的操作
2、tidb 中不支持外键约束,具体可以参照兼容性文档:
https://pingcap.com/docs-cn/stable/reference/mysql-compatibility/#不支持的特性
3、没有拉取 binlog 是指在worker 的 relaylog 没有拉取,还是指拉取了,但是 relay_meta 文件没有更新,拉取动作停滞了?
1:没有做过重置密码的操作 2:realy_meta文件没有更新,mysql-bin.000003 中的日志,realy log 只到下午四点的
realy log 只到下午四点的 ,没有拉取动作
1、下午 4 点前后上游 MySQL 和下游 TiDB 分别做过什么操作?检查下 mysql 的 cnf 配置文件以及 tidb server 的 配置文件中是否有 skip-table-grant 关键字
2、query-status / error 再查看下 task 的状态
1:四点之前上游进行了删除表操作,然后重新建表写入了数据
2:下游用skip语句 做了ddl语句跳过操作,stop任务,再重启任务报了这个错:::下面是我的task配置
1、mysql 的 cnf 和 tidb server 的配置文件方便的话上传下吧
2、dm 过滤了 event drop table,然后你上游把表 drop 了后,上游新建表后,task 此时报错了吗?你处理报错的时候是用的 skip ddl 相关的命令?
3、check-task 看下结果
1:之前可以正常的同步只是重置了一下worker 应该和 mysql 的 cnf 和 tidb server 的配置文件 没有关系 2:在上游没有删除表时task报了一个别的错误,在解决过程中上游把表drop掉,task还是报的原来那个错误,最后stop了task 在start 就这样了
需要提供下完整的 check-task 的信息
1、再次检查下报 error 1290 错误的上游 mysql 权限是否正确,建议在 task 服务器上 ,使用 mysql client 登陆上游 mysql,并 show grants for 确认权限,所需权限参照下述链接,并且在授权完成后,flush privileges 刷新权限
https://pingcap.com/docs-cn/stable/reference/tools/data-migration/precheck/#使用命令
2、tidb 不支持外键约束,将外键约束报错的实例从 task 去掉,再观察一下
1:这是上游数据库的权限
您好,
这边验证了一下
版本:TiDB v3.0.3、DM v1.0.3
全量同步没问题, Task 任务处于 Syncer 阶段的时,上游数据库创建外键表会报错。
可以使用 Binlog Event 跳过。
1.stop-task taskname
2.添加 Filter - create table
3.下游创建无外键表结构(请确认去掉外键后业务上是否有风险)
4.start-task taskname
这样数据同步没有问题,正确的数据也会写入外键表中。
解决办法: TiDB v3.0.5、DMv1.0.3 外键操作会被忽略,无论是 mydumper 还是 syncer 状态。可考虑实际情况升级使用。
1:版本:TiDB v3.0.3、DM v1.0.3 没问题 在启动任务前,check-task 就会报错,外键问题
您好,没有复现您的问题。请检查下 task 文件\
您好: