数据复制服务 DRS-灾备阶段失败报错,关键词“A dml without pk write target db fail”:解决方案

时间:2024-11-28 01:48:58

解决方案

  • 如果是无主键表原因,需要将无主键表修改为主键表,并重新创建DRS任务完成灾备。
  • 如果源端为RDS for MySQL老版本(5-5.7.23),有无主键表隐藏主键的特性,请参考以下步骤处理:
    1. 使用有process权限的账号,在源端执行以下SQL语句查询表信息,其中database/table为无主键表的库名与表名(如果是分区表需要用like查询)。
      select * from information_schema.INNODB_SYS_TABLES  where name = 'database/table'; 

    2. 根据1中获得的TABLE_ID,执行以下SQL查询该无主键表的列信息。
      select * from information_schema.INNODB_SYS_COLUMNS where TABLE_ID = 44;

    3. 根据查询结果,可以看出pos为2的第三列是隐藏自增主键列。如果binlog中隐藏主键列不在最后一列,会导致DRS任务同步失败。
    4. 登录RDS控制台,参考升级内核小版本或联系RDS客服,升级RDS任务版本。
    5. 重新创建DRS任务完成灾备。
support.huaweicloud.com/trouble-drs/drs_13_0136.html