对中的延迟问题进行故障排除 AWS Database Migration Service - AWS 数据库迁移服务

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

对中的延迟问题进行故障排除 AWS Database Migration Service

本节概述了正在进行的复制阶段 AWS DMS 任务延迟的常见原因(CDC)。 AWS DMS 异步复制数据。延迟是在源上提交了更改与将更改复制到目标之间的延误。延迟可能是由于复制组件的配置错误所致,如下所示:

  • 源端点或数据来源

  • 目标端点或数据来源

  • 复制实例

  • 这些组件之间的网络

我们建议您使用测试迁移作为概念验证,用于收集有关复制的信息。然后,您可以使用此信息来调整复制配置以尽可能减少延迟。有关运行概念验证迁移的信息,请参阅运行概念验证

CDC延迟类型

本节包含在此期间可能发生的复制延迟类型CDC。

源延迟

从源端点中捕获的最后一个事件与复制实例的当前系统时间戳之间的间隔(秒)。您可以使用该CDCLatencySource CloudWatch 指标监控数据源和复制实例之间的延迟。较高的 CDCLatencySource 指标表示从源捕获更改的过程存在延迟。例如,如果您的应用程序在 10:00 向源提交插入内容,并在 10:02 AWS DMS 使用更改,则该指标为 120 秒。CDCLatencySource

有关 CloudWatch 指标的信息 AWS DMS,请参阅复制任务指标

目标延迟

等待提交到目标的第一个事件的源端提交时间与DMS复制实例的当前时间戳之间的延迟(以秒为单位)。您可以使用该CDCLatencyTarget CloudWatch 指标监控数据源和数据目标提交之间的延迟。这意味着 CDCLatencyTarget 包括从来源进行读取的任何延迟。因此,CDCLatencyTarget 始终大于或等于 CDCLatencySource

例如,如果您的应用程序在 10:00 向源提交插入内容,在 10:02 使用该插入,然后 AWS DMS 在 10:05 将其写入目标,则该指标为 300 秒。CDCLatencyTarget

CDC延迟的常见原因

本节包含您的复制过程中可能遇到的延迟的原因CDC。

端点资源

以下因素会严重影响复制性能和延迟:

  • 源数据库和目标数据库配置

  • 实例大小

  • 源或目标数据存储的预置不足或配置错误

要确定 AWS托管源和目标端点问题导致延迟的原因,请监控以下 CloudWatch 指标:

  • FreeMemory

  • CPUUtilization

  • 吞吐量和 I/O 指标,例如 WriteIOPSWriteThroughputReadLatency

  • 事务量指标,例如 CDCIncomingChanges

有关监控 CloudWatch 指标的信息,请参阅AWS Database Migration Service 指标

复制实例资源

复制实例资源对于复制至关重要,您应确保没有资源瓶颈,因为它们会导致源和目标延迟。

要确定复制实例中存在的资源瓶颈,请验证以下几点:

  • 内存CPU、每秒 I/O 和存储等关键 CloudWatch 指标没有出现峰值或持续较高的值。

  • 您的复制实例的大小适合工作负载。有关如何确定复制实例的合适大小的信息,请参阅选择复制实例的最佳大小

网络速度和带宽

网络带宽是影响数据传输的一个因素。要分析复制的网络性能,请执行以下操作之一:

  • 检查实例级别的 ReadThroughputWriteThroughput 指标。有关监控 CloudWatch 指标的信息,请参阅AWS Database Migration Service 指标

  • 使用 AWS DMS 诊断 Support AMI。如果您所在的地区不提供 AMI Diagnoction Support,则可以从任何支持的区域下载该支持并将其复制到您所在的地区以执行网络分析。有关 Diagnostics Suppor AMI t 的信息,请参见使用 AWS DMS 诊断支持 AMI

CDCin AWS DMS 是单线程的,以确保数据一致性。因此,您可以通过计算单线程数据传输速率来确定您的网络可以支持的数据量。例如,如果您的任务使用 100 Mbps(每秒兆比特)网络连接到其源,则您的复制的理论最大带宽分配为 12.5MBps(兆字节每秒)。这相当于每小时 45 Gb。如果源服务器上的事务日志生成速率大于每小时 45 GB,则表示该任务存在CDC延迟。对于 100 的MBps网络,这些速率是理论上的最大值;其他因素,例如源和目标上的网络流量和资源开销,会降低实际可用带宽。

DMS配置

本节包含有助于减少延迟的推荐复制配置。

  • 端点设置:您的源端点和目标端点设置可能会导致复制实例的性能不佳。启用资源密集型功能的端点设置会影响性能。例如,对于 Oracle 端点,禁用 LogMiner 和使用 Binary Reader 可以提高性能,因为 LogMiner 这会占用大量资源。以下端点设置可提高 Oracle 端点的性能:

    useLogminerReader=N;useBfile=Y

    有关端点设置的更多信息,请参阅使用 AWS DMS 端点主题中关于源和目标端点引擎的文档。

  • 任务设置:针对您的特定复制场景的某些任务设置可能会导致您的复制实例性能不佳。例如,默认情况下,对除 Amazon Redshift 之外的所有终端节点 AWS DMS 使用交易应用模式 (BatchApplyEnabled=false)。CDC但是,对于有大量更改的源,将 BatchApplyEnabled 设置为 true 可能会提高性能。

    有关任务设置的更多信息,请参阅为 AWS Database Migration Service 任务指定任务设置

  • CDC仅限任务的起始位置:从过去的位置或时间戳启动CDC仅限任务将增加CDC源延迟的任务。根据源端的更改量,任务延迟需要一段时间才能消失。

  • LOB设置:由于复制大型二进制数据的方式,大型对象数据类型可能会阻碍 AWS DMS 复制性能。有关更多信息,请参阅以下主题:

复制场景

本节介绍特定的复制场景及其如何影响延迟。

在较长的一段时间内停止任务

停止任务时, AWS DMS 保存上次从源读取的事务日志的位置。当您继续执行任务时,DMS会尝试从相同的事务日志位置继续读取。在几小时或几天后恢复任务会导致CDC源延迟增加,直到处理DMS完事务积压。

缓存更改

缓存的更改是应用程序在 AWS DMS 运行满载复制阶段时写入数据源的更改。DMS在满载阶段完成并且该CDC阶段开始之前,不会应用这些更改。对于具有大量事务的来源,缓存的更改需要更长的时间才能生效,因此当CDC阶段开始时,源延迟会增加。我们建议您在事务量较低时运行完全加载阶段,以尽可能减少缓存的更改数量。

跨区域复制

将您的DMS终端节点或复制实例放在不同的 AWS 区域会增加网络延迟。这会增加复制延迟。为了获得最佳性能,请将源终端节点、目标终端节点和复制实例放在同一 AWS 区域。