dm的task.yaml中online-ddl-scheme字段的作用

name: test                     
task-mode: all                
shard-mode: "pessimistic"       
meta-schema: "dm_meta"      
online-ddl-scheme: "gh-ost"     # 目前仅支持 gh-ost 、pt

这里的online-ddl-scheme,是指定上游数据源采用什么工具做online ddl吗?dm目前集成了gh-ost和pt模块?

麻烦解释下哈,不太明白gh-ost在dm中的作用。

这块我理解,上游如果有ddl语句,不是可以直接应用到下游tidb吗?而且tidb也是支持online ddl的吧

麻烦看下这个文档,比如上游使用 pt 工具执行 DDL 时,DM 中需要配置参数进行特殊的操作,如果上游未使用其他工具,直接客户端执行 DDL 语句,则可以不用考虑 online-ddl-scheme 参数。
https://docs.pingcap.com/zh/tidb-data-migration/stable/feature-online-ddl-scheme

好的,了解,就是online-ddl-scheme 需要根据上游执行 ddl的工具来确定呗。

是的。参数可以加上,影响的只是 gh-ost 或者 pt 工具执行的 ddl。

如果指定上游gh-ost是会把上游的ghost相关表,也同步到下游的tidb实例吧,然后下游tidb中ghost表追上原表后,dm就会执行rename操作?

看文档,dm应该是只去下游执行了下alter语句。

可以测试一下,然后 下游开启 general log,通过 log 就能清晰的看到下游执行的 SQL。

好的,我开启看下日志,谢谢:+1:

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。