

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

# 資料驗證任務設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.DataValidation"></a>

您可以確保您的資料已準確地從來源遷移到目標。如果您啟用任務的驗證， 會在對資料表執行完全載入後立即 AWS DMS 比較來源和目標資料。如需任務資料驗證、其需求、其資料庫支援的範圍及其所報告的指標的詳細資訊，請參閱[AWS DMS 資料驗證](CHAP_Validating.md)。如需使用任務組態檔案來設定任務設定的相關資訊，請參閱：[任務設定範例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。

 資料驗證設定及其值包括下列項目：
+ `EnableValidation` – 設為 true 時會啟用資料驗證。否則，將對任務停用驗證。預設值為 false。
+ `ValidationMode` – 控制 如何根據來源資料表 AWS DMS 驗證目標資料表中的資料。從複寫引擎 3.5.4 版開始，DMS 會自動針對`GROUP_LEVEL`支援的遷移路徑將此設定為 ，為大型資料集提供增強的驗證效能並大幅加快處理速度。此增強功能適用於[AWS DMS 資料重新同步](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.DataResync.html#CHAP_DataResync.limitations)中列出的遷移路徑的遷移。對於所有其他遷移路徑，驗證模式預設為 `ROW_LEVEL`。
**注意**  
無論設定為何， AWS DMS 都會驗證透過資料表驗證設定的所有資料列。
+ `FailureMaxCount` – 指定在對任務暫停驗證之前允許驗證失敗的記錄數上限。預設值為 10,000。如果不考慮驗證失敗的記錄數而都要繼續驗證，請將這個值設定為大於來源中的記錄數。
+ `HandleCollationDiff` – 當此選項設定為 時`true`，驗證會考慮來源和目標資料庫之間的資料欄定序差異。否則，驗證會忽略欄定序的任何差異。欄定序可以規定資料列的順序，這對資料驗證很重要。將 `HandleCollationDiff` 設定為 true 可自動解決這些定序差異，避免資料驗證時出現誤判。預設值為 `false`。
+ `RecordFailureDelayInMinutes` – 指定在報告任何驗證失敗詳細資訊之前的延遲時間 (以分鐘為單位)。

  如果整體 DMS 任務 CDC 延遲大於`RecordFailureDelayInMinutesthen`其值優先，例如，如果 `RecordFailureDelayInMinutes` 為 5，且 CDC 延遲為 7 分鐘，則 DMS 會等待 7 分鐘報告驗證失敗詳細資訊。
+ `RecordFailureDelayLimitInMinutes` – 指定報告任何驗證失敗詳細資訊之前的延遲。 AWS DMS 會使用任務延遲來識別變更的實際延遲，使其成為目標，以防止誤報。此設定會覆寫實際延遲和 DMS 任務 CDC 延遲值，並可讓您在報告任何驗證指標之前設定更大的延遲。預設值為 0。
+ `RecordSuspendDelayInMinutes` – 指定在根據 `FailureMaxCount` 所設定的錯誤閾值而暫停驗證資料表之前的延遲時間 (以分鐘為單位)。
+ `SkipLobColumns` – 當此選項設定為 時`true`，會 AWS DMS 略過資料表任務驗證部分中所有 LOB 資料欄的資料驗證。預設值為 `false`。
+ `TableFailureMaxCount` – 指定在對資料表暫停驗證之前允許驗證失敗的單一資料表列數上限。預設值為 1,000。
+ `ThreadCount` – 指定驗證期間 AWS DMS 使用的執行緒數目。每個執行緒會從來源和目標中選擇尚未驗證的資料來比較和驗證。預設值為 5。如果您`ThreadCount`將 設為較高的數字， AWS DMS 可以更快地完成驗證。但是， AWS DMS 接著執行更多同時查詢，在來源和目標上耗用更多資源。
+ `ValidationOnly` – 當此選項設為 `true` 時，任務會執行資料驗證，而不遷移或複寫任何資料。預設值為 `false`。您無法在任務建立後修改 `ValidationOnly` 設定。

  您必須將 **TargetAblePrepMode** 設定為 `DO_NOTHING` (僅驗證任務的預設值)，並將**遷移類型**設定為下列其中一項：
  + 完全載入 — 設定任務**遷移類型**以**遷移主控台中的現有資料**。 AWS DMS 或者，在 AWS DMS API 中，將遷移類型設定為 FULL-LOAD。
  + CDC — 在 AWS DMS 主控台將任務**遷移類型**設定為**僅複寫變更的資料**。或者，在 AWS DMS API 中將遷移類型設定為 CDC。

  無論選擇的遷移類型為何，在僅驗證任務期間，資料實際上並不會遷移或複寫。

  如需詳細資訊，請參閱[僅驗證任務](CHAP_Validating.md#CHAP_Validating.ValidationOnly)。
**重要**  
`ValidationOnly` 設定不可變更。任務建立之後，就無法修改此設定。
+ `ValidationPartialLobSize` – 指定是否要對 LOB 資料欄執行部分驗證，而不驗證資料欄中儲存的所有資料。當您遷移 LOB 資料的一部分，而不是整個 LOB 資料集時，可能會用到此選項。此值以 KB 為單位。預設值為 0，表示 AWS DMS 會驗證所有 LOB 資料欄資料。例如， `"ValidationPartialLobSize": 32`表示 AWS DMS 只會驗證來源和目標中前 32KB 的資料欄資料。
+ `PartitionSize` – 指定比較來源和目標時要讀取的記錄批次大小。預設值為 10,000。
+ `ValidationQueryCdcDelaySeconds` – 在來源和目標上，每次 CDC 更新時第一次驗證查詢延遲的時間量。當遷移延遲很高時，此設定可能有助於減少資源爭用。僅驗證任務會自動將此選項設定為 180 秒。預設值為 0。

例如，以下 JSON 會以兩倍的預設執行緒數量來啟用資料驗證。還會考量 PostgreSQL 端點的欄定序差異所造成的記錄順序差異。此外，它也提供驗證報告延遲，以預留額外的時間來處理任何驗證失敗。

```
"ValidationSettings": {
     "EnableValidation": true,
     "ThreadCount": 10,
     "HandleCollationDiff": true,
     "RecordFailureDelayLimitInMinutes": 30
  }
```

**注意**  
對於 Oracle 端點， AWS DMS 會使用 DBMS\$1CRYPTO 來驗證 BLOBs。如果您的 Oracle 端點使用 BLOB，請將 DBMS\$1CRYPTO 的 `execute` 許可授予存取 Oracle 端點的使用者帳戶。若要這麼做，請執行下列陳述式。  

```
grant execute on sys.dbms_crypto to dms_endpoint_user;
```