发现otter不支持gt-osc工具做的ddl操作

zynd9foi  于 2022-12-31  发布在  其他
关注(0)|答案(3)|浏览(236)

日志报:
pid:7 nid:1 exception:setl:com.alibaba.otter.node.etl.select.exceptions.SelectException: java.lang.NullPointerException
at com.alibaba.otter.node.etl.select.selector.MessageParser.parse(MessageParser.java:218)
at com.alibaba.otter.node.etl.select.selector.canal.CanalEmbedSelector.selector(CanalEmbedSelector.java:278)
at com.alibaba.otter.node.etl.select.SelectTask.processSelect(SelectTask.java:236)
at com.alibaba.otter.node.etl.select.SelectTask.access$300(SelectTask.java:94)
at com.alibaba.otter.node.etl.select.SelectTask$1.run(SelectTask.java:208)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException

通过查看otter停止的binlog运行位置,然后到binlog里面把日志解析出来,猜测应该是执行rename操作时,otter报空指针了:

at 12852379

rename /* gh-ost */ table allin_followup_platform . push_detail to allin_followup_platform . _push_detail_del , allin_followup_pl atform . _push_detail_gho to allin_followup_platform . push_detail

上面push_detail表正是我要用otter同步的表,但是执行这个rename操作时,otter停止工作了,这说明,otter不支持gh-osc或者pt-osc工具的DDL操作。

disho6za

disho6za1#

otter 支持gh-ost,已测试。

q9yhzks0

q9yhzks02#

我试了一下,也是不支持啊,UPDATE sensitive_filter . _sensitive_filter_log_ghc 的时候(还没到rename操作),就报错了, #162 这个问题里,大神有说过,很可能是出现再 源表已完成操作,但是目标表还在反查临时表的时候,就报错了。

也就是说,目前来看 不支持PT工具以及 gh的在线DDL 操作? @agapple 求证实,或者给一个能用的方法?

nimxete2

nimxete23#

我的也不支持。
目前看otter已经不再维护和更新了。
要是会java,可以自己来修otter的bug。
我也不会java。

用otter的人应该都是运维或者DBA,用canal的人应该都是搞开发的或大数据的

相关问题