dm 的filter 我设置了忽略 truncate drop,但是delete 也会被忽略吗?

dm进行数据同步的时候,发现mysql中做了delete,但是我这边数据却没有删除,这是什么情况

  1. delete 不会被忽略,需要单独配置,可以参考配置文件,请再检查下您的配置,多谢。
    https://docs.pingcap.com/zh/tidb-data-migration/v2.0/key-features#binlog-event-filter

我的意思是,我并没有配置忽略delete,但是它忽略了,导致我这边同步数据发生主键重复的错误

  1. 您没有配置,应该是不会忽略的,建议您在检查下配置。
  2. insert 同步是正常的吗?
  3. 可以上传下配置文件,多谢。具体是哪个表,麻烦指出

已经好几个表有这个问题了,delete没删除掉

filters: # 上游数据库实例匹配的表的 binlog event filter 规则集
filter-rule-1: # 配置名称
schema-pattern: “dh_admin_test” dev-go-sync-tidb.yaml (9.5 KB) # 库名匹配规则,支持通配符 “" 和 “?”
table-pattern: "dh_
” # 表名匹配规则,支持通配符 “*” 和 “?”
events: [“truncate table”, “drop table”,“alter table”] # 匹配哪些 event 类型
action: Ignore

  1. 麻烦指出来具体哪个表不同步? 先指出一个表即可,表名写清楚。
  2. 麻烦上传下没有 delete 的记录 dm-worker 的日志,多谢。

dh_game_setting这个表的数据没有被delete掉,日志记录我找一下

在之前源表有alter过,报过错,后来我设置alter忽略,然后手动添加了字段,再resume-task成功,但是这个alter表的错误却一值在

  1. 嗯,查看 events: [“truncate table”, “drop table”,“alter table”] 配置里面 alter 是有配置,日志里看起来也是忽略了。

  2. 能否反馈一个 insert 或者 delete 的日志? 当前 insert 和 delete 可以成功吗?

insert或者delete的日志从哪里找

  1. 不找日志,上游 insert 数据下游能不能查到呢?
  2. query status 反馈一下当前任务的状态,多谢。

任务的状态是正常的,running,但是delete就是没删掉,很奇怪

  1. insert 呢?是否正常,能否反馈下?
  2. query-status 截图发一下

insert都正常,因为主键自增,所以不会有异常,query-status也都是正常的在跑

DM 的版本是多少

这个有做合库合表么,为什么会出现 unresolvedDDLLock

有做,dm版本V1.0.6,合库合表,当时ddl错误,后来手动改下游表,后来resume-task 同步成功,然后这个错误跟到现在

如果从 query-status 看同步一直在推进,同步没有中断,并且 binlog 的位置已经推进超过了 delete 相关事件的位置,有几种可能:

  • 是否从上游合表时就存在主键冲突,其他数据源又有相关的数据写入,有可能是 delete 执行了,但又有这些行的写入,删除的数据重新被覆盖
  • 能否现在在上游测试一下有问题的表,delete 操作是否会同步到下游

今天又发生一个问题,我们的mysql库做了导入表的操作,然后我这边binlog报主键冲突,我在filter中过滤了truncat、drop table、alter的操作,导入表会drop表再重新create table?

还有dm有自定义字段吗?,比如我想在所有的同步表中加一个自己的字段,写死的值