灾备任务时延增高常见原因
RTO增大常见原因
RTO是增量同步期间DRS实例上的事务传输到灾备目标库且回放成功的时间差,RTO值较大说明DRS上需要回放到目标实例的事务有积压。一般有以下几种原因:
- 灾备任务初始化完成不久,启动灾备任务到当前时间累积的增量数据需要回放。
- 业务数据库对无主键表进行了批量操作,DRS灾备实例正在同步变更数据较大的无主键表。为了确保无主键表数据一致性,对所有执行操作都进行位点记录,因此效率相比有主键表低。同时,如果目标表无索引,数据更新效率会更低。
- 业务数据库执行了DDL操作,DRS灾备实例需要等待DDL在灾备目标实例执行完成后,再执行数据回放。
- 业务数据库对热点表进行频繁操作。DRS灾备实例会对热点表的事务进行合并后再进行回放,减少频繁对目标库操作。
- 灾备数据库访问异常导致增量数据无法回放成功。
RTO增大处理建议
步骤 1 在“实时灾备管理”页面,选择指定的灾备任务,单击任务名称进入“基本信息”页签。
步骤 1 在“基本信息”页签,单击“灾备监控”页签,查看时延监控的RTO的变化情况。
如果RTO逐渐降低或者只是短时间内增加,则无需关注。
如果RTO持续增加,可在灾备数据库执行以下语句,查看是否有执行时间比较长的sql或者正在执行的DDL。
show processlist
如果灾备数据库异常,需要联系数据库运维工程师解决。
RPO增大常见原因
RPO是增量同步期间业务数据库一个事务的提交时间与送达DRS实例的时间差,RPO值较大,说明业务数据库最新的变更数据还没有抽取到DRS灾备实例。一般有以下几种原因:
- 业务数据库和DRS灾备实例之间的网络不稳定,读取业务数据库端的变更日志比较慢。
- 业务数据库访问异常导致增量数据无法抽取成功。
RPO增大处理建议
步骤 2 在“实时灾备管理”页面,选择指定的灾备任务,单击任务名称进入“基本信息”页签。
步骤 2 在“基本信息”页签,单击“灾备监控”页签,查看时延监控的RPO的变化情况。
如果RPO逐渐降低或者只是短时间内增加,则无需关注。
如果业务数据库异常,需要联系数据库运维工程师解决。
MongoDB链路时延增高可能原因
涉及链路
MongoDB->DDS入云迁移
DDS->MongoDB出云迁移
可能原因
DRS在任务增量阶段,为保证迁移/同步/灾备的性能,会集合级的进行并发回放。如果出现以下特殊情况,DRS只支持单线程写入,不支持并发回放。
集合的索引中有unique key时;
集合属性的capped为true时;
若出现时延增高的这种情况,用户可排查是否以上原因导。