为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:tidb4.0,dm2.0
- 【问题描述】:mysql中得分表利用dm工具合并分表,如果在mysql端对分表做ddl操作(如加字段),是不是不能同步到tidb中合并后得表上
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
DM 通过 online-schema-change: gh-ost 来处理在线 DDL 操作,可以看一下下面文档。
https://docs.pingcap.com/zh/tidb-data-migration/stable/feature-online-ddl-scheme#配置
测试了以下,分库分表通过pt-online-schema-change 做ddl操作是可以同步到tidb得
,命令行方式(alter table add column)对分表做ddl操作,同步任务是卡住了,查看任务状态:
麻烦提供下 DM 的具体版本,另外需要确认下 task 配置中是乐观模式还是悲观模式,差别如下图,如采用悲观模式,会等上游所有分表执行 ddl 成功后才会继续。
sharding ddl lock 可以参考下下面链接
https://docs.pingcap.com/zh/tidb-data-migration/dev/manually-handling-sharding-ddl-locks#手动处理-sharding-ddl-lock
dm2.0 版本,task采用得是:pessimistic
用命令查看是没有ddl lock得
用命令查看是没有ddl 锁得
{
“result”: true,
“msg”: “no DDL lock exists”,
“locks”: [
]
问题已经解决了,是因为分表得ddl,没有执行完,执行完就好了,谢谢
好的,如果后面有需求不需要等所有分表都执行完成 ddl,可以考虑测一下乐观模式。