为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:v3.0.9
- 【DM版本】:v1.0.3
- 【问题描述】:
分库分表场景下,上游库中存的是普通索引,下游建了唯一索引,且dm同步完成,应要求,此时需要对上游普通 索引进行清理重复数据,增加了唯一索引 ,删除了普通索引,对于这种情况如何处理?
简单说就是上游增加的唯一索引现在在tidb中已经存在,现在ddl过不去了,导致同步延迟严重,如何处理?
【报错内容】:[2020/03/06 10:08:01.939 +08:00] [INFO] [server.go:307] [“receive DDLLockInfo”] [request=FetchDDLInfo] [“ddl lock info”=“task:“product_all_merge” ID:“product_all_merge-
product_x
.item_props_x
” “] [2020/03/06 10:08:01.939 +08:00] [ERROR] [server.go:315] [“fail to record DDLLockInfo”] [request=FetchDDLInfo] [“ddl lock info”=“task:“product_all_merge” ID:“product_all_merge-product_x
.item_props_x
” “] [error=”[code=40062:class=dm-worker:scope=internal:level=high] DDLLockInfo for task product_all_merge already exists”] [errorVerbose=”[code=40062:class=dm-worker:scope=internal:level=high] DDLLockInfo for task product_all_merge already exists\ngithub.com/pingcap/dm/pkg/terror.(*Error).Generate\ \t/go/src/github.com/pingcap/dm/pkg/terror/terror.go:232\ngithub.com/pingcap/dm/dm/worker.(*SubTask).SaveDDLLockInfo\ \t/go/src/github.com/pingcap/dm/dm/worker/subtask.go:529\ngithub.com/pingcap/dm/dm/worker.(*Worker).RecordDDLLockInfo\ \t/go/src/github.com/pingcap/dm/dm/worker/worker.go:445\ngithub.com/pingcap/dm/dm/worker.(*Server).FetchDDLInfo\ \t/go/src/github.com/pingcap/dm/dm/worker/server.go:311\ngithub.com/pingcap/dm/dm/pb._Worker_FetchDDLInfo_Handler\ \t/go/src/github.com/pingcap/dm/dm/pb/dmworker.pb.go:3865\ google.golang.org/grpc.(*Server).processStreamingRPC\ \t/go/pkg/mod/google.golang.org/grpc@v1.25.1/server.go:1211\ngoogle.golang.org/grpc.(*Server).handleStream\ \t/go/pkg/mod/google.golang.org/grpc@v1.25.1/server.go:1291\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.1\ \t/go/pkg/mod/google.golang.org/grpc@v1.25.1/server.go:722\ runtime.goexit\ \t/usr/local/go/src/runtime/asm_amd64.s:1357”]
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。