DM工具同步咨询

1、没有gtid的情况下,如何安全切换上游mysql。 改dm_meta里表的为global的mysqlbin位置点吗?

2、relay_log目前变化规则否是start-task后,会自动生成: 上游uuid.当前序号+1 是吗?

3、mysql没有使用gtid的情况下,如果上游发生变化 ,重启后会从新的上游最老的binlog开始同步?这个不能从之前的checkpoint的binlog 点同步吗?

  1. 此处原理同 mysql
  2. 非,start-task 之后有 5min 的 safe mode 时间,这边会把 insert 和 update ,改成 replace into 来保证幂等
  3. 不会从最老的 binlog, dm worker 中有相关的 pos 点的记录。

第2点的safe mode 时间是否可以修改,继续保持?确认是幂等的?

第3点,我遇到个问题,在升级时将上游的ip地址改变了,启来后,导致从新的上游的老binlog开始同步,同步一段时间(应该是5分钟的safe mode)就出现了唯一健冲突。
正常应该用现在的checkpoint 点去找的,找不到异常就可以了,但是同步还是正常进行了,导致数据被老的数据覆盖了一部分(safe mode时间的数据)

可以保持的

在同步任务配置中为 syncers 部分设置 safe-mode: true 以保证可重入执行

为什么不默认为true,基于什么考虑吗?

因为 replace 相对于 insert update,是有额外性能消耗的。