

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

# 对中的延迟问题进行故障排除 Amazon Database Migration Service
<a name="CHAP_Troubleshooting_Latency"></a>

本节概述了正在进行的复制阶段 (CDC) 期间 Amazon DMS 任务延迟的常见原因。 Amazon DMS 异步复制数据。延迟是在源上提交了更改与将更改复制到目标之间的延误。延迟可能是由于复制组件的配置错误所致，如下所示：
+ 源端点或数据来源
+ 目标端点或数据来源
+ 复制实例
+ 这些组件之间的网络

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

**Topics**
+ [CDC 延迟的类型](#CHAP_Troubleshooting_Latency_Types)
+ [CDC 延迟的常见原因](#CHAP_Troubleshooting_Latency_Causes)
+ [排除延迟问题](CHAP_Troubleshooting_Latency_Troubleshooting.md)

## CDC 延迟的类型
<a name="CHAP_Troubleshooting_Latency_Types"></a>

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

### 源延迟
<a name="CHAP_Troubleshooting_Latency_Types_Source"></a>

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

有关 CloudWatch 指标的信息 Amazon DMS，请参阅[复制任务指标](CHAP_Monitoring.md#CHAP_Monitoring.Metrics.Task)。

### 目标延迟
<a name="CHAP_Troubleshooting_Latency_Types_Target"></a>

源上第一个等待提交到目标上时间的时间戳，与 DMS 复制实例的当前系统时间戳之间的间隔（秒）。您可以使用该`CDCLatencyTarget` CloudWatch 指标监控数据源和数据目标提交之间的延迟。这意味着 `CDCLatencyTarget` 包括从来源进行读取的任何延迟。因此，`CDCLatencyTarget` 始终大于或等于 `CDCLatencySource`。

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

## CDC 延迟的常见原因
<a name="CHAP_Troubleshooting_Latency_Causes"></a>

本节包含 CDC 期间复制可能遇到延迟的原因。

**Topics**
+ [端点资源](#CHAP_Troubleshooting_Latency_Causes_Endpoint)
+ [复制实例资源](#CHAP_Troubleshooting_Latency_Causes_Replication_Instance)
+ [网络速度和带宽](#CHAP_Troubleshooting_Latency_Causes_Replication_Network)
+ [DMS 配置](#CHAP_Troubleshooting_Latency_Causes_Replication_DMS_Config)
+ [复制场景](#CHAP_Troubleshooting_Latency_Causes_Replication_Scenarios)

### 端点资源
<a name="CHAP_Troubleshooting_Latency_Causes_Endpoint"></a>

以下因素会严重影响复制性能和延迟：
+ 源数据库和目标数据库配置
+ 实例大小
+ 源或目标数据存储的预置不足或配置错误

要确定 Amazon托管源和目标端点问题导致延迟的原因，请监控以下 CloudWatch 指标：
+ `FreeMemory`
+ `CPUUtilization`
+ 吞吐 I/O 量和指标`WriteIOPS`，例如`WriteThroughput`、或 `ReadLatency`
+ 事务量指标，例如 `CDCIncomingChanges`。

有关监控 CloudWatch 指标的信息，请参阅[Amazon Database Migration Service 指标](CHAP_Monitoring.md#CHAP_Monitoring.Metrics)。

### 复制实例资源
<a name="CHAP_Troubleshooting_Latency_Causes_Replication_Instance"></a>

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

要确定复制实例中存在的资源瓶颈，请验证以下几点：
+ CPU、内存、 I/O 每秒和存储空间等关键 CloudWatch 指标没有出现峰值或持续较高的值。
+ 您的复制实例的大小适合工作负载。有关如何确定复制实例的合适大小的信息，请参阅[选择复制实例的最佳大小](CHAP_BestPractices.SizingReplicationInstance.md)。

### 网络速度和带宽
<a name="CHAP_Troubleshooting_Latency_Causes_Replication_Network"></a>

网络带宽是影响数据传输的一个因素。要分析复制的网络性能，请执行以下操作之一：
+ 检查实例级别的 `ReadThroughput` 和 `WriteThroughput` 指标。有关监控 CloudWatch 指标的信息，请参阅[Amazon Database Migration Service 指标](CHAP_Monitoring.md#CHAP_Monitoring.Metrics)。
+ 使用 Diagnost Amazon DMS ics Support AMI。如果您所在的地区没有诊断支持 AMI 可用，则可以从任何支持的区域下载该 AMI，然后将其复制到您所在的区域以执行网络分析。有关诊断支持 AMI 的信息，请参阅[使用 Amazon DMS 诊断支持 AMI](CHAP_SupportAmi.md)。

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

### DMS 配置
<a name="CHAP_Troubleshooting_Latency_Causes_Replication_DMS_Config"></a>

本节包含有助于减少延迟的推荐复制配置。
+ **端点设置**：您的源端点和目标端点设置可能会导致复制实例的性能不佳。启用资源密集型功能的端点设置会影响性能。例如，对于 Oracle 端点，禁用 LogMiner 和使用 Binary Reader 可以提高性能，因为 LogMiner 这会占用大量资源。以下端点设置可提高 Oracle 端点的性能：

  ```
  useLogminerReader=N;useBfile=Y
  ```

  有关端点设置的更多信息，请参阅[使用 Amazon DMS 终端节点](CHAP_Endpoints.md)主题中关于源和目标端点引擎的文档。
+ **任务设置**：针对您的特定复制场景的某些任务设置可能会导致您的复制实例性能不佳。例如，默认情况下，对除 Amazon Redshift 之外的所有端点， Amazon DMS 默认情况下为 CDC 使用事务应用模式（`BatchApplyEnabled=false`）。但是，对于有大量更改的源，将 `BatchApplyEnabled` 设置为 `true` 可能会提高性能。

  有关任务设置的更多信息，请参阅[为 Amazon Database Migration Service 任务指定任务设置](CHAP_Tasks.CustomizingTasks.TaskSettings.md)。
+ **仅 CDC 任务的启动位置**：从位于过去的位置或时间戳启动仅 CDC 任务，将会启动具有更高 CDC 源延迟的任务。根据源端的更改量，任务延迟需要一段时间才能消失。
+ **LOB 设置**：由于复制大型二进制数据的方式，大型对象数据类型可能会影响 Amazon DMS 复制性能。有关更多信息，请参阅以下主题：
  + [在任务中为源数据库设置 LOB 支持 Amazon DMS](CHAP_Tasks.LOBSupport.md)
  + [迁移大型二进制对象 (LOBs)](CHAP_BestPractices.md#CHAP_BestPractices.LOBS).

### 复制场景
<a name="CHAP_Troubleshooting_Latency_Causes_Replication_Scenarios"></a>

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

**Topics**
+ [在较长的一段时间内停止任务](#CHAP_Troubleshooting_Latency_Causes_Replication_Scenarios_Stoptask)
+ [缓存更改](#CHAP_Troubleshooting_Latency_Causes_Replication_Scenarios_Cachedchanges)
+ [跨区域复制](#CHAP_Troubleshooting_Latency_Causes_Replication_Scenarios_Crossregion)

#### 在较长的一段时间内停止任务
<a name="CHAP_Troubleshooting_Latency_Causes_Replication_Scenarios_Stoptask"></a>

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

#### 缓存更改
<a name="CHAP_Troubleshooting_Latency_Causes_Replication_Scenarios_Cachedchanges"></a>

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

#### 跨区域复制
<a name="CHAP_Troubleshooting_Latency_Causes_Replication_Scenarios_Crossregion"></a>

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