文档首页/ 数据复制服务 DRS/ 常见问题/ 时延相关/ DRS全量阶段迁移过慢或者进度不更新可能原因
更新时间:2024-11-28 GMT+08:00

DRS全量阶段迁移过慢或者进度不更新可能原因

问题现象

DRS在进行全量迁移时,出现迁移耗时很久或者迁移任务进度不更新的情况。

排查方法

  • 排查源库迁移数据大小:

    数据迁移进度是按表数量来计算百分比,当数据迁移进度长时间不更新,可能因为有某几个表数据量过大,迁移时间较长。可以在“进度明细”下,单击目标迁移对象“详细信息”列的“查看详情”,查看具体对象的迁移进度。

  • 排查源库表主键和索引情况:

    源库大表缺少主键和非空唯一索引,以MySQL为例,可以在源库执行show create table <数据库名>.<表名>查询是否有主键或非空唯一索引。

  • 排查源库是否有结束长连接现象:

    源库为其他云上数据库时,可能存在自动结束长连接的现象,导致全量迁移数据过慢或者进度不更新的情况。

  • 排查目标库索引迁移:

    索引迁移进度长时间不更新,可能是某些大表的索引创建比较慢,目标库一直在创建索引中。可以登录目标库,执行show processlist查看DRS在目标库的执行情况。

  • 排查目标库是否有死锁:

    目标库如果有死锁,可能导致全量数据无法写入。以MySQL为例,可执行以下命令查看、删除死锁。

    • 查看是否锁表:show OPEN TABLES where In_use > 0;。
    • 查看锁表进程:show processlist;。
    • 删除锁表的进程:KILL [CONNECTION | QUERY] <thread_id>。
  • 排查源库和目标库网络连接:

    检查网络的连通性是否正常,网络带宽是否存在限制。可通过使用ping等OS命令测试网络的连通性及网络延迟。

  • 检查DRS任务是否设置限速:

    可单击任务名称,在“基本信息”页签的“限速信息”区域查看是否进行了全量限速。