为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【TiDB 版本】dm2.0 tidb4.07
【问题描述】dm同步mysql到tidb时候,上游使用pt工具创建索引导致下游报错问题。
在我的上一个帖子说了这个问题,鉴于不是一个主题,新建个帖子来说明这个问题,我感觉这个是dm的一个bug,感谢pingcap同学帮忙解决下。
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【TiDB 版本】dm2.0 tidb4.07
【问题描述】dm同步mysql到tidb时候,上游使用pt工具创建索引导致下游报错问题。
在我的上一个帖子说了这个问题,鉴于不是一个主题,新建个帖子来说明这个问题,我感觉这个是dm的一个bug,感谢pingcap同学帮忙解决下。
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
问题出现情况复现:1 上游mysql使用pt工具为dim_warehouse1执行 ADD INDEX idx_fab_status2(is_fba, order_status) USING BTREE
2 dm配置任务配置了 过滤创建索引的操作 ,因为我tidb不需要去同步mysql创建索引操作
3 这个时候报错 online ddl metadata for pt temporary table test
._dim_warehouse1_new
not found
我这边怀疑出现的原因是,因为我配置了过滤创建索引的操作,所以不会在元数据dm_meta库task_onlineddl下面新增onlineddl语句
然后当结束时候 出现上面错误,我把任务dm配置放在下面 ,你们可以复现下。
按照您的描述先测试下,请问上游开启gtid了吗?上游是 mysql 什么版本?
你好 5.7的 这个帖子https://asktug.com/t/topic/69649/29 也说了具体出现的问题 麻烦看下
上游 有的mysql实例开启了gtid ,有的没有开启
1.在一个帖子跟吧。上一个帖子 dm同步 过滤表问题 请问有的开,有的没开怎么理解? 看起来也没有分库合表的配置吧,是还有其他 task 吗?
2. 针对这个 task,edgenode1_source 的配置是什么,开启了吗?
这个测试案例没有开启的gtid,
source-id: “edgenode1_source”
enable-gtid: false
from:
host: “192.168.109.192”
user: “root”
password: “***8”
port: 3306
你再理解下, 不能因为用了pt, 就导致过滤会有报错,这个是有逻辑冲突的。
而且会有公司 ,拿tidb做olap 是不需要同步上游索引的
感觉把 do-tables 中加上 pt 增加过程中的 old 和 new 表应该就可以了。这样是否可行?
应该不行, 你可以帮忙联系下开发 看下要不要解决这个问题 。麻烦了
你测试了上面给的这个例子吗? 应该都是不可以吧
这个应该是同步逻辑上的 bug, pt ddl 和 binlog event filter 处理存在不兼容的逻辑,感谢反馈,我们会尽快修复这个 bug
好的 麻烦改完通知下
你好 请问修复是指不会出现此问题,还是只是增加一个handle-error skip的错误提示
如果是上个版本未完成的 online ddl,暂时没法处理,会给出 handle-error skip 的提示。新版本起新进行的 online ddl,预期是 SQL parser 能解析的就不报错了,否则还是提示 handle-error skip。