预检查问题

更新时间:
复制 MD 格式
  • Q:预检查报错“源库账号缺乏sysadmin权限”如何处理?

    • 问题描述:源库为SQL Server且配置了增量迁移任务,出现预检查失败,系统提示“源库账号缺乏如下权限sysadmin”。sysadmin是指系统管理员权限。

    • 可能原因:增量迁移任务的源库为SQL Server,且源库账号未配置sysadmin权限。增量迁移需要源库具备sysadmin权限,否则无法获取源库日志。

    • 解决方案:为源库账号配置sysadmin权限。

      • 若源库为自建SQL Server,请自行赋予账号sysadmin权限。

      • 若源库为RDS SQL Server,请将阿里云账号UID反馈至阿里云技术支持人员协助开通,或登录RDS SQL Server控制台,进入实例详情页,单击账号管理 > 创建账号,在创建账号页面勾选超级权限账号(即sysadmin权限账号)。

  • Q:预检查报错“不同名账号存在性检查失败”如何处理?

    • 问题描述:预检查项目“不同名账号存在性检查”检查失败。该检测项用于检查同一实例是否使用了不同的用户名,检测结果为失败。

    • 可能原因:同一个实例上的迁移同步任务是由多个账号配置的,从而导致任务预检查失败。DTS不支持同一实例上多账号配置多迁移任务的模式。

    • 解决方案:登录DTS控制台,重新配置任务,确保同一账号发起多个任务。

  • Q:预检查报错“源库或目标库连接失败”如何处理?

    • 问题描述:在配置迁移或同步任务时,测试源库和目标库的连接都是正常的,但在任务的预检查环节中,出现预检查失败,并提示“源库或目标库连接失败”。预检查中源库连接性检查的检测结果为失败,失败原因为“源库的账号或密码有误导致连接失败”,错误码为DTS-002010。

    • 可能原因:源库和目标库的白名单未配置,或者已配置但未配完整;从而导致DTS实例节点无法成功连接源库或目标库。当进行跨Region的迁移或同步任务,或者源库为自建数据库时,出现此异常的概率较大。

    • 解决方案:修改任务配置,填写正确的账号密码后重新进行预检查;配置源库或目标库的白名单信息;或联系值班同学协助排查网络问题后重试。

  • Q:预检查“同名对象存在性检查”产生警告如何处理?

    • 问题描述:在配置同步或迁移实例的预检查阶段,同名对象存在性检查出现警告。

    • 可能原因:DTS任务的目标库中存在与源库同名的结构对象(例如目标MySQL数据库中存在与源库同名的表),且在配置任务对象及高级配置阶段目标已存在表的处理模式选择了预检查并报错拦截。

    • 解决方案:在预检查页面单击该检查项后的点击确认告警详情查看失败原因,然后在目标库中查看是否存在同名结构对象,并根据实际情况选择处理方式。

      • 存在同名结构对象:

        • 需要保留目标库中的数据:可通过映射功能修改该对象在目标库中的名称;或在目标库中重命名已存在的对象后重新进行预检查;或返回配置任务对象及高级配置阶段,从已选择对象区域移除该对象。

        • 无需保留目标库中的数据:在目标库中删除已存在的对象后重新进行预检查;或依次单击确认屏蔽、确定、重新进行预检查屏蔽该警告。请务必确保数据结构的兼容性,否则可能导致数据不一致,甚至任务失败。

      • 不存在同名结构对象:在查看详情对话框中单击关闭,然后在预检查页面单击重新进行预检查并等待重新预检查。若多次重新预检查后仍有警告,请联系阿里云技术支持处理。

  • Q:预检查“目标库对象数据存在性检查”产生警告如何处理?

    • 问题描述:在配置同步或迁移实例的预检查阶段,目标库对象数据存在性检查出现警告。

    • 可能原因:DTS任务的目标端中的数据库或数据表有存量数据(例如目标Redis中用于接收数据的DB存在数据),且在配置任务对象及高级配置阶段目标已存在表的处理模式选择了预检查并报错拦截。

    • 解决方案:在预检查页面单击该检查项后的点击确认告警详情查看失败原因,然后在目标端查看存量数据,并根据实际情况选择处理方式。

      • 需要保留目标端中的数据:返回配置任务对象及高级配置阶段,使用映射功能将数据同步或迁移到目标端的其他数据库或数据表;或从已选择对象区域移除该对象,使其不同步或迁移。

      • 无需保留目标端中的数据:在目标端删除存量数据后重新进行预检查;或依次单击确认屏蔽、确定、重新进行预检查屏蔽该警告。

  • Q:预检查“源库长事务检测”产生警告如何处理?

    • 问题描述:在配置同步或迁移实例的预检查阶段,源库长事务检测出现警告。

    • 可能原因:源库数据库类型为PostgreSQL、PolarDB for PostgreSQL或PolarDB(兼容Oracle),且源库存在超过5分钟未提交的长事务。

    • 解决方案:登录源库执行如下命令,查看长事务,然后在业务允许的前提下手动提交或回滚该长事务,最后返回预检查页面单击重新进行预检查。

      SELECT pid, usename, datname, query, state,
             EXTRACT(EPOCH FROM (NOW() - xact_start)) as duration
      FROM pg_stat_activity
      WHERE state IN ('idle in transaction', 'active')
        AND (NOW() - xact_start) > INTERVAL '300 seconds'
      ORDER BY xact_start;
  • Q:为什么Redis逐出策略检查项有告警?

    A:如果目标端的数据逐出策略(maxmemory-policy)配置为noeviction以外的值,可能导致目标端的数据与源端不一致。关于数据逐出策略详情,请参见Redis数据逐出策略介绍。

  • Q:增量数据迁移时Binlog相关的预检查项失败,如何处理?

    A:检查源库Binlog是否正常,详情请参见源库Binlog检查。