如何解决同步实例关于表的报错?

本文介绍如何使用修改同步对象功能,解决DTS同步实例运行过程中表报错的问题。

前提条件

  • 没有业务读取目标库的数据,或业务可以短时间不读取目标库的数据。
  • 源库和目标库处于正常运行的状态。
  • 除报错信息中的表以外,同步实例有其他待同步的对象。
  • 当前实例的运行状态不能为修改同步对象中

注意事项

  • 修改同步对象会自动重启实例,在实例重启期间可能会导致源库与目标库数据不一致。
  • 本方法需要清空目标表的数据。在您执行本方法的操作前:
    • 请确保目标表中只有DTS在写入数据,或目标表中的数据可以被清空。
    • 请确保与目标表关联的业务不会被影响。

实现流程

  1. 移除同步实例报错信息中的表或热点表。
  2. 清空目标库中报错信息表的数据。
  3. 重新添加报错信息中的表到同步实例中。

操作步骤

  1. 进入同步任务的列表页面。

    1. 登录DMS数据管理服务

    2. 在顶部菜单栏中,单击集成与开发

    3. 在左侧导航栏,选择数据传输(DTS) > 数据同步

    说明
  2. 同步任务右侧,选择同步实例所属地域。

    说明

    新版DTS同步任务列表页面,需要在页面左上角选择同步实例所属地域。

  3. 根据实际情况,移除报错的表或热点表。
    说明 查看热点表的方法,请参见查看热点表信息
    • 若该表所属的同步对象的粒度为整库:
      1. 在同步任务列表找到目标同步实例,并单击操作列的修改同步对象修改同步对象
      2. 已选择对象中勾选报错表所在的库,并单击zuoyi移除该库。整库
      3. 源库对象中以表为粒度勾选待同步的对象(不含报错的表),并单击youyi重新添加至已选择对象分表
        说明 更多信息,请参见移除同步对象
      4. 依次单击下一步高级配置下一步预检查并启动
      5. 等待预检查通过率显示为100%时,单击修改成功,返回列表
    • 若该表所属的同步对象的粒度为表:
      1. 在同步任务列表找到目标同步实例,并单击操作列的修改同步对象修改同步对象
      2. 已选择对象中勾选报错的表,并单击zuoyi移除该表。移除对象
      3. 依次单击下一步高级配置下一步预检查并启动
      4. 等待预检查通过率显示为100%时,单击修改成功,返回列表
  4. 清空目标库中报错表的数据。
    例如MySQL数据库,可以使用如下命令清空数据:
    TRUNCATE TABLE XXX;
    DROP TABLE XXX;
  5. 重新将报错的表添加为待同步的对象。
    1. 在同步任务列表找到目标同步实例,并单击操作列的修改同步对象修改同步对象
    2. 源库对象中勾选报错的表,并单击youyi重新添加至已选择对象添加表
      说明 更多信息,请参见新增同步对象
    3. 依次单击下一步高级配置下一步预检查并启动
    4. 等待预检查通过率显示为100%时,单击修改成功,返回列表
  6. 等待实例自动重启后,查看是否还报错。