云服务器内容精选

  • 可能原因 原因1:全量阶段刚结束,增量迁移延迟高。全量迁移过程中,源库增量数据还在不断地写入,DRS需要在全量结束之后,将这部分增量数据同步到目标端去,因此时延较高。 原因2:源库有大批量数据变更(导入、更新、删除)。大事务写入在源库执行时间本来就很长,而DRS把数据同步到目标库也需要一段时间,所以此时延迟会慢慢增加,如果此大事务的表没有主键或者索引,恢复时间会相应拉长。 原因3:源库存在大批量DDL操作,DDL执行比较慢,同步到目标导致时延增高。 原因4:DRS任务规格限制。DRS不同规格对应的性能上限不同,详细可参考规格说明,当源库数据写入量过大达到瓶颈时,就会导致任务出现延迟。 原因5:目标库规格受限,达到写入瓶颈。以目标实例为RDS for MySQL为例,用户可以在RDS控制台查看数据库性能指标。 原因6:可能存在热点更新。无主键表的写入会导致热点更新,源库对单一表或单一行的高频更新也会导致热点更新,从而导致时延增大。以RDS for MySQL为例,可以通过RDS的审计日志进行确认,详情可参考RDS审计日志。 原因7:网络不稳定导致的时延增大。
  • 解决方法 解决方法1:针对这种情况,DRS会自动追平时延,无需处理,用户可观察增量时延是否降低。 解决方法2:存在大事务写入的情况时,等待更新完毕,或者从业务上考虑尽量避免大事务写入的情况。用户可查看源库执行历史,看是否有大事务的写入,同时可以在目标库查看DRS数据回放情况。以MySQL为例,可执行show processlist查看。 解决方法3:源库应尽量避免执行批量DDL,如果必须执行DDL,请尽量在业务低峰期执行。 解决方法4:重新创建任务,选择较大规格提升同步性能(目前,DRS同步仅支持任务类型为单AZ的同步任务升级实例规格,不支持降低规格,具体操作及约束限制可参考同步规格变更)。 解决方法5:升级目标库的实例规格,提高目标库实例写入性能。以目标实例为RDS for MySQL为例,参考变更规格,升级实例配置。 解决方法6:如果存在热点更新,需要等待热点更新完毕,或者从业务上尽量避免热点更新。 解决方法7:网络延迟无法避免,用户可以通过专线网络接入源库和目标库实例减少延迟。
  • RTO增大处理建议 在“实时灾备管理”页面,选择指定的灾备任务,单击任务名称进入“基本信息”页签。 在“基本信息”页签,单击“灾备监控”页签,查看时延监控的RTO的变化情况。 如果RTO逐渐降低或者只是短时间内增加,则无需关注。 如果RTO持续增加,可在灾备数据库执行以下语句,查看是否有执行时间比较长的sql或者正在执行的DDL。 show processlist 如果灾备数据库异常,需要联系数据库运维工程师解决。
  • RTO增大常见原因 RTO是增量同步期间DRS实例上的事务传输到灾备目标库且回放成功的时间差,RTO值较大说明DRS上需要回放到目标实例的事务有积压。一般有以下几种原因: 灾备任务初始化完成不久,启动灾备任务到当前时间累积的增量数据需要回放。 业务数据库对无主键表进行了批量操作,DRS灾备实例正在同步变更数据较大的无主键表。为了确保无主键表数据一致性,对所有执行操作都进行位点记录,因此效率相比有主键表低。同时,如果目标表无索引,数据更新效率会更低。 业务数据库执行了DDL操作,DRS灾备实例需要等待DDL在灾备目标实例执行完成后,再执行数据回放。 业务数据库对热点表进行频繁操作。DRS灾备实例会对热点表的事务进行合并后再进行回放,减少频繁对目标库操作。 灾备数据库访问异常导致增量数据无法回放成功。