

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 變更處理調校設定
<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)。