

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

# 更改处理优化设置
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning"></a>

以下设置决定了在更改数据捕获 (CDC) 期间如何 AWS DMS 处理目标表的更改。这些设置中的多个设置取决于目标元数据参数 `BatchApplyEnabled` 的值。有关 `BatchApplyEnabled` 参数的更多信息，请参阅[目标元数据任务设置](CHAP_Tasks.CustomizingTasks.TaskSettings.TargetMetadata.md)。有关如何使用任务配置文件来设置任务设置的信息，请参阅[任务设置示例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。

更改处理优化设置包括：

以下设置仅在目标元数据参数 `BatchApplyEnabled` 设置为 `true` 时应用。
+ `BatchApplyPreserveTransaction` – 如果设置为 `true`，则保留事务完整性，并确保批处理包含源中的事务的所有更改。默认值为 `true`。该设置仅适用于 Oracle 目标终端节点。

  如果设置为 `false`，则会临时丢失事务完整性以提高性能。不能保证将源中事务的所有更改都应用于单个批处理中的目标。

  默认情况下， AWS DMS 处理以事务模式进行更改，这样可以保持事务的完整性。如果您可以承受事务完整性的临时失效，可以改为使用批量优化应用 选项。该选项有效分组事务并批量应用，以实现提高效率的目的。使用批量优化的应用选项几乎总是违反引用完整性约束。因此，我们建议您在迁移过程中关闭这些限制，然后在割接过程中再次将其打开。
+ `BatchApplyTimeoutMin`— 设置每次应用批量更改之间 AWS DMS 等待的最短时间（以秒为单位）。默认值是 1。
+ `BatchApplyTimeoutMax`— 设置每次应用批量更改之间在超时之前 AWS DMS 等待的最大时间（以秒为单位）。默认值为 30。
+ `BatchApplyMemoryLimit` – 设置在**批量优化应用模式**中用于预处理的最大内存量（MB）。默认值是 500。
+ `BatchSplitSize` – 设置在单个批次中应用的最大更改数。默认值 0 意味着未应用任何限制。

以下设置仅在目标元数据参数 `BatchApplyEnabled` 设置为 `false` 时应用。
+ `MinTransactionSize` – 设置要包含在每个事务中的更改的最小数目。默认值是 1000。
+ `CommitTimeout`— 设置在宣布超时之前分批收集交易的最长时间（ AWS DMS 以秒为单位）。默认值是 1。

对于双向复制，以下设置仅在目标元数据参数 `BatchApplyEnabled` 设置为 `false` 时应用。
+ `LoopbackPreventionSettings` – 这些设置为双向复制中涉及的任何一对任务中每个正在进行的复制任务提供环回防护。*环回防护* 可防止在双向复制的两个方向上应用完全相同的更改，这可能会损坏数据。有关双向复制的更多信息，请参阅[执行双向复制](CHAP_Task.CDC.md#CHAP_Task.CDC.Bidirectional)。

AWS DMS 尝试将事务数据保存在内存中，直到事务完全提交给源、目标或两者。但是，超过所分配内存的事务或未在指定时限内提交的事务将写入到磁盘。

以下设置适用于更改处理优化，无论更改处理模式如何。
+ `MemoryLimitTotal` – 设置所有事务在写入磁盘前可占用的内存的最大内存（以 MB 为单位）。默认值是 1024。
+ `MemoryKeepTime` – 设置每个事务在写入磁盘之前可在内存中保留的最长时间（以秒为单位）。持续时间是从 AWS DMS 开始捕获交易的时间开始计算的。默认值是 60。
+ `StatementCacheSize` – 设置在向目标应用更改时要存储在服务器上以便稍后执行的预编译语句的最大数目。默认值为 50，最大值为 200。
+ `RecoveryTimeout`— 在 CDC 模式下恢复任务时， RecoveryTimeout 控制任务等待多长时间（以分钟为单位）才会遇到恢复检查点。如果在配置的时间范围内未遇到检查点，则任务将失败。默认行为是无限期等待检查点事件。

通过一个示例演示处理更改处理调优的任务设置是如何显示在任务设置 JSON 文件中的：

```
"ChangeProcessingTuning": {
        "BatchApplyPreserveTransaction": true,
        "BatchApplyTimeoutMin": 1,
        "BatchApplyTimeoutMax": 30,
        "BatchApplyMemoryLimit": 500,
        "BatchSplitSize": 0,
        "MinTransactionSize": 1000,
        "CommitTimeout": 1,
        "MemoryLimitTotal": 1024,
        "MemoryKeepTime": 60,
        "StatementCacheSize": 50
        "RecoveryTimeout": -1
}
```

要控制在执行数据复制任务期间向 Amazon S3 目标写入的频率，您可以配置 `cdcMaxBatchInterval` 和 `cdcMinFileSize` 额外连接属性。这可以提高分析数据的性能，而无需任何额外的开销操作。有关更多信息，请参阅 [使用 Amazon S3 作为目标时的终端节点设置 AWS DMS](CHAP_Target.S3.md#CHAP_Target.S3.Configuring)。