dm进行数据同步的时候,发现mysql中做了delete,但是我这边数据却没有删除,这是什么情况
- delete 不会被忽略,需要单独配置,可以参考配置文件,请再检查下您的配置,多谢。
https://docs.pingcap.com/zh/tidb-data-migration/v2.0/key-features#binlog-event-filter
我的意思是,我并没有配置忽略delete,但是它忽略了,导致我这边同步数据发生主键重复的错误
- 您没有配置,应该是不会忽略的,建议您在检查下配置。
- insert 同步是正常的吗?
- 可以上传下配置文件,多谢。具体是哪个表,麻烦指出
已经好几个表有这个问题了,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
- 麻烦指出来具体哪个表不同步? 先指出一个表即可,表名写清楚。
- 麻烦上传下没有 delete 的记录 dm-worker 的日志,多谢。
在之前源表有alter过,报过错,后来我设置alter忽略,然后手动添加了字段,再resume-task成功,但是这个alter表的错误却一值在
-
嗯,查看 events: [“truncate table”, “drop table”,“alter table”] 配置里面 alter 是有配置,日志里看起来也是忽略了。
-
能否反馈一个 insert 或者 delete 的日志? 当前 insert 和 delete 可以成功吗?
insert或者delete的日志从哪里找
- 不找日志,上游 insert 数据下游能不能查到呢?
- query status 反馈一下当前任务的状态,多谢。
任务的状态是正常的,running,但是delete就是没删掉,很奇怪
- 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有自定义字段吗?,比如我想在所有的同步表中加一个自己的字段,写死的值