

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

# 指定 AWS Database Migration Service 任務的任務設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings"></a>

每個任務都具備您可以根據資料庫遷移需求設定的設定。您可以在 JSON 檔案中建立這些設定，或使用一些設定，您可以使用 AWS DMS 主控台指定設定。如需取得如何使用任務組態檔案來進行任務設定的相關資訊，請參閱[任務設定範例](#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。

任務設定有數種主要類型，如下列所示。

**Topics**
+ [

## 任務設定範例
](#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)
+ [

# 目標中繼資料任務設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.TargetMetadata.md)
+ [

# 完全載入任務設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.md)
+ [

# 時間歷程任務設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.md)
+ [

# 記錄任務設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.Logging.md)
+ [

# 控制資料表任務設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.ControlTable.md)
+ [

# 串流緩衝區任務設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.StreamBuffer.md)
+ [

# 變更處理調校設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md)
+ [

# 資料驗證任務設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.DataValidation.md)
+ [

# 資料重新同步設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.DataResyncSettings.md)
+ [

# 變更處理 DDL 處理的任務設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.DDLHandling.md)
+ [

# 字元替換任務設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.CharacterSubstitution.md)
+ [

# 前映像任務設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.BeforeImage.md)
+ [

# 錯誤處理任務設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.ErrorHandling.md)
+ [

# 儲存任務設定
](CHAP_Tasks.CustomizingTasks.TaskSettings.Saving.md)


| 任務設定 | 相關文件 | 
| --- | --- | 
|   **建立任務評估報告**  您可以建立任務評估報告，顯示任何可能在遷移期間造成問題的未支援資料類型。您可以在執行任務之前在任務上執行此報告，來找出潛在問題。  |  [啟用和使用任務的預遷移評估](CHAP_Tasks.AssessmentReport.md)  | 
|   **建立任務**  您在建立任務時，可以指定來源、目標和複寫執行個體，以及任何遷移設定。  |  [建立任務](CHAP_Tasks.Creating.md)  | 
|   **建立進行中複寫任務**  您可以設定任務來在來源和目標間提供持續複寫。  |  [使用 建立持續複寫的任務 AWS DMS](CHAP_Task.CDC.md)  | 
|   **套用任務設定**  每個任務都具備您可以根據資料庫遷移需求設定的設定。您可以在 JSON 檔案中建立這些設定，或使用一些設定，您可以使用 AWS DMS 主控台指定設定。  |  [指定 AWS Database Migration Service 任務的任務設定](#CHAP_Tasks.CustomizingTasks.TaskSettings)  | 
|   **資料驗證**  使用資料驗證，將目標資料存放區上的資料與來源資料存放區中的資料 AWS DMS 進行比較。  |  [AWS DMS 資料驗證](CHAP_Validating.md)  | 
|   **修改任務**  在任務停止時，您便可以修改任務的設定。  |  [修改任務](CHAP_Tasks.Modifying.md)  | 
|   **在任務期間重新載入資料表**  若在任務期間發生錯誤，您便可以在任務期間重新載入資料表。  |  [在任務期間重新載入資料表](CHAP_Tasks.ReloadTables.md)  | 
|   **使用資料表映射**  資料表映射使用數種類型的規則來指定資料來源、來源結構描述、資料及任何應在任務期間進行的轉換任務設定。  |  選取規則 [選取規則與動作](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Selections.md) 轉換規則 [轉換規則與動作](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.md)  | 
|   **套用篩選條件**  您可以使用來源篩選條件來限制從來源傳輸到目標的記錄數量和類型。例如，您可以指定只將位置是總部的員工移動到目標資料庫。您可以在資料的資料行上套用篩選條件。  |  [使用來源篩選條件](CHAP_Tasks.CustomizingTasks.Filters.md)  | 
| 監控任務 您可以透過數種方法取得任務效能及任務所使用資料表的資訊。  |  [監控 AWS DMS 任務](CHAP_Monitoring.md)  | 
| 管理任務日誌 您可以使用 AWS DMS API 或 檢視和刪除任務日誌 AWS CLI。  |  [檢視和管理 DMS AWS 任務日誌](CHAP_Monitoring.md#CHAP_Monitoring.ManagingLogs)  | 

## 任務設定範例
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.Example"></a>

您可以使用 AWS 管理主控台 或 AWS CLI 來建立複寫任務。如果您使用 AWS CLI，您可以透過建立 JSON 檔案來設定任務設定，然後將 JSON 檔案的檔案：// URI 指定為 [CreateReplicationTask](https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateReplicationTask.html) 操作的 [ ReplicationTaskSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateReplicationTask.html#DMS-CreateReplicationTask-request-ReplicationTaskSettings) 參數。

下列範例示範如何使用 AWS CLI 來呼叫 `CreateReplicationTask`操作：

```
aws dms create-replication-task \
--replication-task-identifier MyTask \
--source-endpoint-arn arn:aws:dms:us-west-2:123456789012:endpoint:ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABC \
--target-endpoint-arn arn:aws:dms:us-west-2:123456789012:endpoint:ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABC \
--replication-instance-arn arn:aws:dms:us-west-2:123456789012:rep:ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABC \
--migration-type cdc \
--table-mappings file://tablemappings.json \
--replication-task-settings file://settings.json
```

上述範例使用名為 `tablemappings.json` 的資料表映射檔案。如需資料表映射範例，請參閱：[使用資料表映射指定任務設定](CHAP_Tasks.CustomizingTasks.TableMapping.md)。

任務設定 JSON 檔案看起來與以下內容相似。

```
{
  "TargetMetadata": {
    "TargetSchema": "",
    "SupportLobs": true,
    "FullLobMode": false,
    "LobChunkSize": 64,
    "LimitedSizeLobMode": true,
    "LobMaxSize": 32,
    "InlineLobMaxSize": 0,
    "LoadMaxFileSize": 0,
    "ParallelLoadThreads": 0,
    "ParallelLoadBufferSize":0,
    "ParallelLoadQueuesPerThread": 1,
    "ParallelApplyThreads": 0,
    "ParallelApplyBufferSize": 100,
    "ParallelApplyQueuesPerThread": 1,    
    "BatchApplyEnabled": false,
    "TaskRecoveryTableEnabled": false
  },
  "FullLoadSettings": {
    "TargetTablePrepMode": "DO_NOTHING",
    "CreatePkAfterFullLoad": false,
    "StopTaskCachedChangesApplied": false,
    "StopTaskCachedChangesNotApplied": false,
    "MaxFullLoadSubTasks": 8,
    "TransactionConsistencyTimeout": 600,
    "CommitRate": 10000
  },
    "TTSettings" : {
    "EnableTT" : true,
    "TTS3Settings": {
        "EncryptionMode": "SSE_KMS",
        "ServerSideEncryptionKmsKeyId": "arn:aws:kms:us-west-2:112233445566:key/myKMSKey",
        "ServiceAccessRoleArn": "arn:aws:iam::112233445566:role/dms-tt-s3-access-role",
        "BucketName": "myttbucket",
        "BucketFolder": "myttfolder",
        "EnableDeletingFromS3OnTaskDelete": false
      },
    "TTRecordSettings": {
        "EnableRawData" : true,
        "OperationsToLog": "DELETE,UPDATE",
        "MaxRecordSize": 64
      }
  },
  "Logging": {
    "EnableLogging": false
  },
  "ControlTablesSettings": {
    "ControlSchema":"",
    "HistoryTimeslotInMinutes":5,
    "HistoryTableEnabled": false,
    "SuspendedTablesTableEnabled": false,
    "StatusTableEnabled": false
  },
  "StreamBufferSettings": {
    "StreamBufferCount": 3,
    "StreamBufferSizeInMB": 8
  },
  "ChangeProcessingTuning": { 
    "BatchApplyPreserveTransaction": true, 
    "BatchApplyTimeoutMin": 1, 
    "BatchApplyTimeoutMax": 30, 
    "BatchApplyMemoryLimit": 500, 
    "BatchSplitSize": 0, 
    "MinTransactionSize": 1000, 
    "CommitTimeout": 1, 
    "MemoryLimitTotal": 1024, 
    "MemoryKeepTime": 60, 
    "StatementCacheSize": 50 
  },
  "ChangeProcessingDdlHandlingPolicy": {
    "HandleSourceTableDropped": true,
    "HandleSourceTableTruncated": true,
    "HandleSourceTableAltered": true
  },
  "LoopbackPreventionSettings": {
    "EnableLoopbackPrevention": true,
    "SourceSchema": "LOOP-DATA",
    "TargetSchema": "loop-data"
  },

  "CharacterSetSettings": {
    "CharacterReplacements": [ {
        "SourceCharacterCodePoint": 35,
        "TargetCharacterCodePoint": 52
      }, {
        "SourceCharacterCodePoint": 37,
        "TargetCharacterCodePoint": 103
      }
    ],
    "CharacterSetSupport": {
      "CharacterSet": "UTF16_PlatformEndian",
      "ReplaceWithCharacterCodePoint": 0
    }
  },
  "BeforeImageSettings": {
    "EnableBeforeImage": false,
    "FieldName": "",  
    "ColumnFilter": "pk-only"
  },
  "ErrorBehavior": {
    "DataErrorPolicy": "LOG_ERROR",
    "DataTruncationErrorPolicy":"LOG_ERROR",
    "DataMaskingErrorPolicy": "STOP_TASK",
    "DataErrorEscalationPolicy":"SUSPEND_TABLE",
    "DataErrorEscalationCount": 50,
    "TableErrorPolicy":"SUSPEND_TABLE",
    "TableErrorEscalationPolicy":"STOP_TASK",
    "TableErrorEscalationCount": 50,
    "RecoverableErrorCount": 0,
    "RecoverableErrorInterval": 5,
    "RecoverableErrorThrottling": true,
    "RecoverableErrorThrottlingMax": 1800,
    "ApplyErrorDeletePolicy":"IGNORE_RECORD",
    "ApplyErrorInsertPolicy":"LOG_ERROR",
    "ApplyErrorUpdatePolicy":"LOG_ERROR",
    "ApplyErrorEscalationPolicy":"LOG_ERROR",
    "ApplyErrorEscalationCount": 0,
    "FullLoadIgnoreConflicts": true
  },
  "ValidationSettings": {
    "EnableValidation": false,
    "ValidationMode": "ROW_LEVEL",
    "ThreadCount": 5,
    "PartitionSize": 10000,
    "FailureMaxCount": 1000,
    "RecordFailureDelayInMinutes": 5,
    "RecordSuspendDelayInMinutes": 30,
    "MaxKeyColumnSize": 8096,
    "TableFailureMaxCount": 10000,
    "ValidationOnly": false,
    "HandleCollationDiff": false,
    "RecordFailureDelayLimitInMinutes": 1,
    "SkipLobColumns": false,
    "ValidationPartialLobSize": 0,
    "ValidationQueryCdcDelaySeconds": 0
  }
}
```

# 目標中繼資料任務設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TargetMetadata"></a>

目標中繼資料設定包含以下項目。如需使用任務組態檔案來設定任務設定的相關資訊，請參閱：[任務設定範例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。
+ `TargetSchema` – 目標資料表結構描述名稱。若此中繼資料選項為空白，則會使用來源資料表的結構描述。若沒有定義來源結構描述， AWS DMS 會自動為目標資料庫，將擁有者前綴新增到所有資料表。此選項應維持空白，以供 MySQL 類型的目標端點使用。在資料對映中重新命名結構描述的優先順序高於此設定。
+ LOB 設定 – 判斷如何管理大型物件 (LOB) 的設定。若您設定 `SupportLobs=true`，您必須將以下其中一個項目設為 `true`：
  + `FullLobMode` – 若您將此選項設為 `true`，您必須輸入 `LobChunkSize` 選項的值。輸入要在將資料複寫至目標時使用的 LOB 區塊大小 (KB)。`FullLobMode` 選項最適合非常大的 LOB 大小，但通常會導致載入速度較慢。`LobChunkSize` 的建議值為 64 KB。`LobChunkSize` 的值增加超過 64 KB 可能會導致任務失敗。
  + `InlineLobMaxSize` – 此值會決定哪些 LOBs AWS DMS 完全載入期間內嵌傳輸。傳輸小型 LOB 的效率會比從來源檔案尋找他們更高。在完全載入期間， 會 AWS DMS 檢查所有 LOBs，並為小於 LOBs 執行內嵌傳輸`InlineLobMaxSize`。 會 AWS DMS 轉移大於 `InlineLobMaxSize`中 的所有 LOBs`FullLobMode`。`InlineLobMaxSize` 的預設值為 0，範圍介於 1 –102400 KB (100 MB)。除非您知道大多數的 LOB 都小於 `InlineLobMaxSize` 中指定的值，否則請不要設定 `InlineLobMaxSize` 的值。
  + `LimitedSizeLobMode` – 若您將此選項設為 `true`，您必須輸入 `LobMaxSize` 選項的值。輸入個別 LOB 的大小上限 (KB)。的最大值`LobMaxSize`為 102400 KB (100 MB)。

  如需這些任務 LOB 設定使用條件的詳細資訊，請參閱：[設定 AWS DMS 任務中來源資料庫的 LOB 支援](CHAP_Tasks.LOBSupport.md)。您也可以控制個別資料表的 LOB 管理。如需詳細資訊，請參閱[資料表和集合設定規則與操作](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.md)。
+ `BatchApplyEnabled` – 判斷每個交易是要個別套用，還是以批次遞交變更。預設值為 `false`。

  當 `BatchApplyEnabled` 設定為 `true` 時，DMS 需要**來源**資料表上的主索引鍵 (PK) 或唯一索引鍵 (UK)。如果來源資料表沒有 PK 或 UK，則只會套用批次插入，但不會套用批次更新和刪除。

  當 `BatchApplyEnabled` 設定為 `true` 時，如果**目標**資料表具有唯一限制條件和主索引鍵， AWS DMS 就會產生錯誤訊息。當 `BatchApplyEnabled` 設定為 `true` 時，不支援同時具有唯一限制條件和主索引鍵的目標資料表。

  當 `BatchApplyEnabled` 設為 true 並 AWS DMS 遇到具有預設錯誤處理政策之資料表的資料錯誤時， AWS DMS 任務會針對其餘資料表從批次模式切換到one-by-one模式。若要變更此行為，您可以在任務設定 JSON 檔案的 `"ErrorBehavior"` 群組屬性中，針對下列政策設定 `"SUSPEND_TABLE"` 動作：
  + `DataErrorPolicy`
  + `ApplyErrorDeletePolicy`
  + `ApplyErrorInsertPolicy`
  + `ApplyErrorUpdatePolicy`

  如需有關此 `"ErrorBehavior"` 群組屬性的詳細資訊，請參閱 [指定 AWS Database Migration Service 任務的任務設定](CHAP_Tasks.CustomizingTasks.TaskSettings.md) 中的任務設定 JSON 檔案範例。將這些政策設定為 後`"SUSPEND_TABLE"`， AWS DMS 任務接著會在引發它們的任何資料表上暫停資料錯誤，並對所有資料表以批次模式繼續。

  您可以搭配 `BatchApplyPreserveTransaction` 參數使用 `BatchApplyEnabled` 參數。若將 `BatchApplyEnabled` 設為 `true`，則 `BatchApplyPreserveTransaction` 參數會判斷交易完整性。

  若將 `BatchApplyPreserveTransaction` 設為 `true`，則會保留交易完整性，並且會保證使用批次來包含所有來自來源交易中的變更。

  若將 `BatchApplyPreserveTransaction` 設為 `false`，則交易完整性中可能會有暫時性的縮時以改善效能。

  `BatchApplyPreserveTransaction` 參數只會套用到 Oracle 目標端點，並且只有在將 `BatchApplyEnabled` 參數設為 `true` 時才有關聯。

  當 LOB 資料行包含在複寫中時，`BatchApplyEnabled` 只能用在有限大小 LOB 模式。

  如需使用這些變更資料擷取 (CDC) 負載設定的詳細資訊，請參閱：[變更處理調校設定](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md)。
+ `MaxFullLoadSubTasks` – 指出要平行載入的資料表數目上限。預設值為 8；最大值為 49。
+ `ParallelLoadThreads` – 指定 AWS DMS 用來將每個資料表載入目標資料庫的執行緒數目。此參數對於非 RDBMS 目標有最大值。DynamoDB 目標的最大值為 200。Amazon Kinesis Data Streams、Apache Kafka 或 Amazon OpenSearch Service 目標的最大值是 32。您可以要求提高此上限。 `ParallelLoadThreads` 會套用至「完全載入」任務。如需有關個別資料表平行載入設定的詳細資訊，請參閱[資料表和集合設定規則與操作](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.md)。

  此設定適用於下列端點引擎類型：
  + DynamoDB
  + Amazon Kinesis Data Streams
  + Amazon MSK
  + Amazon OpenSearch Service
  + Amazon Redshift

  AWS DMS 支援 `ParallelLoadThreads` for MySQL 作為額外的連線屬性。 `ParallelLoadThreads` 不適用於 MySQL 作為任務設定。
+ `ParallelLoadBufferSize` 指定要在讓平行載入執行緒用來將資料載入目標的緩衝區中儲存的記錄數量上限。預設值為 50。最大值為 1000。此設定目前只有在目標為 DynamoDB、Kinesis、Apache Kafka 或 OpenSearch 時才有效。使用此參數搭配 `ParallelLoadThreads`。`ParallelLoadBufferSize` 只有在有多個執行緒時才有效。如需有關個別資料表平行載入設定的詳細資訊，請參閱[資料表和集合設定規則與操作](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.md)。
+ `ParallelLoadQueuesPerThread` – 指定每個並行執行緒存取的佇列數目，以便將資料記錄從佇列中取出，並為目標產生批次載入。預設為 1。此設定目前只有在目標為 Kinesis 或 Apache Kafka 時才有效。
+ `ParallelApplyThreads` – 指定在 CDC 載入期間 AWS DMS 用來將資料記錄推送至 Amazon DocumentDB、Kinesis、Amazon MSK、OpenSearch 或 Amazon Redshift 目標端點的並行執行緒數目。預設為零 (0)。

  此設定只適用於僅限 CDC。此設定不適用於「完全載入」。

  

  此設定適用於下列端點引擎類型：
  + Amazon DocumentDB (with MongoDB compatibility)
  + Amazon Kinesis Data Streams
  + Amazon Managed Streaming for Apache Kafka
  + Amazon OpenSearch Service
  + Amazon Redshift
+ `ParallelApplyBufferSize` – 指定在 CDC 負載期間，由並行執行緒推送至 Amazon DocumentDB, Kinesis、Amazon MSK、OpenSearch 或 Amazon Redshift 目標端點時，每個緩衝區佇列中儲存的記錄數上限。預設值為 100. 最大值為 1000。`ParallelApplyThreads` 指定多個執行緒時，請使用此選項。
+ `ParallelApplyQueuesPerThread` – 指定每個執行緒存取的佇列數目，以便從佇列中取出資料記錄，並在 CDC 期間產生 Amazon DocumentDB、Kinesis、Amazon MSK 或 OpenSearch 端點的批次載入。預設值為 1.

# 完全載入任務設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad"></a>

完全載入設定包含下列項目。如需使用任務組態檔案來設定任務設定的相關資訊，請參閱：[任務設定範例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。
+ 指出如何在完全載入新創公司時處理載入目標，為 `TargetTablePrepMode` 選項指定下列其中一個值：
  +  `DO_NOTHING` – 現有目標資料表的資料和中繼資料不會受到影響。
  +  `DROP_AND_CREATE` – 卸除現有資料表，並在原來的位置建立新的資料表。
  +  `TRUNCATE_BEFORE_LOAD` – 截斷資料，而不影響資料表中繼資料。
+ 若要延遲建立主索引鍵或唯一索引，直到完全載入完成，請將 `CreatePkAfterFullLoad` 選項設為 `true`。
+ 針對完全載入及啟用 CDC 的任務，您可以設定下列 `Stop task after full load completes` 選項：
  + `StopTaskCachedChangesApplied` – 將此選項設為 `true` 來在完全載入完成並套用快取變更後停止任務。
  + `StopTaskCachedChangesNotApplied` – 將此選項設為 `true` 以在套用快取變更前停止任務。
+ 設定 `MaxFullLoadSubTasks` 選項，指出要平行載入的資料表數目上限。預設值為 8；最大值為 49。
+ 設定 `ParallelLoadThreads` 選項以指出在完全載入程序期間，DMS 將資料記錄推送至目標端點時將使用多少個並行執行緒。預設值為零 (0)。
**重要**  
`MaxFullLoadSubTasks` 控制要平行載入的資料表或資料表區段數目。`ParallelLoadThreads` 控制遷移任務用來平行執行載入的執行緒數目。*這些設定會相乘*。因此，在完全載入任務期間所使用的執行緒總數，大約是 `ParallelLoadThreads `值乘以 `MaxFullLoadSubTasks` (`ParallelLoadThreads` **\$1** `MaxFullLoadSubtasks)` 的值.  
如果您建立具有大量「完全載入」子任務和大量平行載入執行緒的任務，則任務可能會耗用太多記憶體而失敗。
+ 您可以設定 AWS DMS 等待交易關閉的秒數，然後再開始完全載入操作。若要這樣做，如果要在任務開始時開啟交易，請設定 `TransactionConsistencyTimeout` 選項。預設值為 600 (10 分鐘）。即使有開啟的交易，在達到逾時值後 AWS DMS 仍開始完全載入。僅完全載入任務不會等待 10 分鐘，而是會立即啟動。
+ 若要指出可一起傳輸的記錄數量上限，請設定 `CommitRate` 選項。預設值為 10000，最大值為 50000。

# 時間歷程任務設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel"></a>

若要記錄和偵錯複寫任務，您可以使用 AWS DMS 時間歷程。您可以透過這種方法，使用 Amazon S3 儲存日誌並使用加密金鑰加密日誌。只有具備時間歷程 S3 儲存貯體的存取權，您才能使用日期時間篩選條件擷取 S3 日誌，然後視需要檢視、下載和混淆日誌。您可以透過這樣做，安全地「回到過去的時間」來調查資料庫活動。時間歷程與 CloudWatch 日誌記錄獨立運作。如需 CloudWatch 日誌記錄的詳細資訊，請參閱：[記錄任務設定](CHAP_Tasks.CustomizingTasks.TaskSettings.Logging.md)。

您可以在所有支援 AWS DMS Oracle、Microsoft SQL Server 和 PostgreSQL 來源端點，以及 AWS DMS支援 PostgreSQL 和 MySQL 目標端點 AWS 的區域中使用時間歷程。您只能針對完全載入和變更資料擷取 (CDC) 任務，以及僅限 CDC 的任務開啟「時間歷程」。若要開啟「時間歷程」或修改任何現有的「時間歷程」設定，請確保複寫任務已停止。

「時間歷程」設定包括下列 `TTSettings` 屬性：
+ `EnableTT` – 如果此選項設定為 `true`，則會為任務開啟「時間歷程」記錄。預設值為 `false`。

  類型：布林值

  必要：否
+ `EncryptionMode` – S3 儲存貯體上用來儲存資料和日誌的伺服器端加密類型。您可以指定為 `"SSE_S3"` (預設) 或 `"SSE_KMS"`。

  您可以將 `EncryptionMode` 從 `"SSE_KMS"` 變更為 `"SSE_S3"`，但不能反向變更。

  類型：字串

  必要：否
+ `ServerSideEncryptionKmsKeyId` – 如果您`"SSE_KMS"`為 指定 `EncryptionMode`，請提供自訂受管 AWS KMS 金鑰的 ID。請確定您使用的金鑰具有連接政策，該政策會開啟 AWS Identity and Access Management (IAM) 使用者許可，並允許使用金鑰。

  `"SSE_KMS"` 選項僅支援您自己的自訂受管對稱 KMS 金鑰。

  類型：字串

  必要：僅限您將 `EncryptionMode` 設定為 `"SSE_KMS"` 時
+ `ServiceAccessRoleArn` – 服務存取 IAM 角色所使用的 Amazon Resource Name (ARN)。將角色名稱設定為 `dms-tt-s3-access-role`。這是允許 從 S3 AWS DMS 儲存貯體寫入和讀取物件的必要設定。

  類型：字串

  必填：如果「時間歷程」已開啟

  以下為此角色的範例政策。

------
#### [ JSON ]

****  

  ```
  {
   "Version":"2012-10-17",		 	 	 
   "Statement": [
          {
              "Sid": "VisualEditor0",
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "kms:GenerateDataKey",
                  "kms:Decrypt",
                  "s3:ListBucket",
                  "s3:DeleteObject"
              ],
              "Resource": [
                  "arn:aws:s3:::S3bucketName*",
                  "arn:aws:kms:us-east-1:112233445566:key/1234a1a1-1m2m-1z2z-d1d2-12dmstt1234"
              ]
          }
      ]
  }
  ```

------

  以下為此角色的範例信任政策。

------
#### [ JSON ]

****  

  ```
  {
   "Version":"2012-10-17",		 	 	 
   "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "dms.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
          }
      ]
  }
  ```

------
+ `BucketName` – 用來儲存時間歷程日誌的 S3 儲存貯體名稱。在開啟「時間歷程」日誌之前，請務必先建立此 S3 儲存貯體。

  類型：字串

  必填：如果「時間歷程」已開啟
+ `BucketFolder` – 選用參數，用於設定 S3 儲存貯體中的資料夾名稱。如果您指定此參數，DMS 會在路徑 `"/BucketName/BucketFolder/taskARN/YYYY/MM/DD/hh"` 中建立時間歷程記錄。如果您未指定此參數， 會將預設路徑 AWS DMS 建立為 `"/BucketName/dms-time-travel-logs/taskARN/YYYY/MM/DD/hh`。

  類型：字串

  必要：否
+ `EnableDeletingFromS3OnTaskDelete` – 當此選項設定為 時`true`，如果任務已刪除， 會從 S3 AWS DMS 刪除時間歷程日誌。預設值為 `false`。

  類型：字串

  必要：否
+ `EnableRawData` – 將此選項設定為 `true` 時，時間歷程日誌的資料處理語言 (DML) 原始資料會顯示在時間歷程記錄的 `raw_data` 資料欄下。如需詳細資訊，請參閱：[使用時間歷程日誌](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema.md)。預設值為 `false`。當此選項設定為 `false` 時，只會擷取 DML 類型。

  類型：字串

  必要：否
+ `RawDataFormat` – 在 3.5.0 版和更新 AWS DMS 版本中，當 `EnableRawData` 設定為 `true`時。此屬性指定時間歷程日誌中 DML 原始資料的格式，並可顯示為：
  + `"TEXT"` – 對於 CDC 期間擷取為 `Raw` 欄位的 DML 事件，可顯示為已剖析且可讀的資料欄名稱和值。
  + `"HEX"` – 對於 CDC 期間為 DML 事件擷取的資料欄名稱和值原始十六進位法。

  此屬性適用於 Oracle 和 Microsoft SQL Server 資料庫來源。

  類型：字串

  必要：否
+ `OperationsToLog` – 指定登入時間歷程記錄的 DML 操作類型。您可以指定下列其中一個選項：
  + `"INSERT"`
  + `"UPDATE"`
  + `"DELETE"`
  + `"COMMIT"`
  + `"ROLLBACK"`
  + `"ALL"`

  預設值為 `"ALL"`。

  類型：字串

  必要：否
+ `MaxRecordSize` – 指定每列記錄的「時間歷程」日誌記錄大小上限。使用此屬性可控制特別忙碌資料表的「時間歷程」記錄的增長。預設值為 64 KB。

  類型：整數

  必要：否

如需開啟和使用時間歷程日誌的詳細資訊，請參閱下列主題。

**Topics**
+ [

# 開啟任務的時間歷程日誌
](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.TaskEnabling.md)
+ [

# 使用時間歷程日誌
](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema.md)
+ [

# 將時間歷程日誌 AWS DMS 上傳至 S3 的頻率
](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.UploadsToS3.md)

# 開啟任務的時間歷程日誌
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.TaskEnabling"></a>

您可以使用上述 AWS DMS 任務設定來開啟任務的時間歷程。請確定您的複寫任務已停止，然後再開啟 [時間歷程]。

**使用 開啟時間歷程 AWS CLI**

1. 建立 DMS 任務組態 JSON 檔案，並新增如下所示的 `TTSettings` 區段。如需使用任務組態檔案來設定任務設定的相關資訊，請參閱：[任務設定範例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。

   ```
    .
    .
    .
       },
   "TTSettings" : {
     "EnableTT" : true,
     "TTS3Settings": {
         "EncryptionMode": "SSE_KMS",
         "ServerSideEncryptionKmsKeyId": "arn:aws:kms:us-west-2:112233445566:key/myKMSKey",
         "ServiceAccessRoleArn": "arn:aws:iam::112233445566:role/dms-tt-s3-access-role",
         "BucketName": "myttbucket",
         "BucketFolder": "myttfolder",
         "EnableDeletingFromS3OnTaskDelete": false
       },
     "TTRecordSettings": {
         "EnableRawData" : true,
         "OperationsToLog": "DELETE,UPDATE",
         "MaxRecordSize": 64
       },
    .
    .
    .
   ```

1. 在適當的任務動作中，使用 `--replication-task-settings` 選項指定此 JSON 檔案。例如，下列 CLI 程式碼片段會將此「時間歷程」設定檔案指定為 `create-replication-task` 的一部分。

   ```
   aws dms create-replication-task 
   --target-endpoint-arn arn:aws:dms:us-east-1:112233445566:endpoint:ELS5O7YTYV452CAZR2EYBNQGILFHQIFVPWFRQAY \
   --source-endpoint-arn arn:aws:dms:us-east-1:112233445566:endpoint:HNX2BWIIN5ZYFF7F6UFFZVWTDFFSMTNOV2FTXZA \
   --replication-instance-arn arn:aws:dms:us-east-1:112233445566:rep:ERLHG2UA52EEJJKFYNYWRPCG6T7EPUAB5AWBUJQ \
   --migration-type full-load-and-cdc --table-mappings 'file:///FilePath/mappings.json' \
   --replication-task-settings 'file:///FilePath/task-settings-tt-enabled.json' \
   --replication-task-identifier test-task
                               .
                               .
                               .
   ```

   其中，此時間歷程設定檔案的名稱是 `task-settings-tt-enabled.json`。

同樣地，您可以將此檔案指定為 `modify-replication-task` 動作的一部分。

請注意下列任務動作對時間歷程日誌的特殊處理方式：
+ `start-replication-task` – 執行複寫任務時，如果無法存取用於「時間歷程」的 S3 儲存貯體，則會將任務標記為 `FAILED`。
+ `stop-replication-task` – 當任務停止時， 會 AWS DMS 立即將所有可用於複寫執行個體的時間歷程日誌推送到用於時間歷程的 S3 儲存貯體。

執行複製任務時，您可以將 `EncryptionMode` 值從 `"SSE_KMS"` 變更為 `"SSE_S3"`，但無法反向變更。

如果進行中任務的時間歷程日誌大小超過 1 GB，DMS 會在達到該大小後的五分鐘內將日誌推送到 S3。任務執行後，如果 S3 儲存貯體或 KMS 金鑰變為無法存取，DMS 會停止將日誌推送到此儲存貯體。如果您發現日誌未推送至 S3 儲存貯體，請檢查您的 S3 和 AWS KMS 許可。如需 DMS 將這些日誌推送到 S3 的頻率詳細資訊，請參閱：[將時間歷程日誌 AWS DMS 上傳至 S3 的頻率](CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.UploadsToS3.md)。

若要從主控台為現有任務開啟「時間歷程」，請使用**任務設定**下的 JSON 編輯器選項來新增 `TTSettings` 區段。

# 使用時間歷程日誌
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.LogSchema"></a>

*時間歷程日誌檔案*是逗號分隔值 (CSV) 檔案，包含下列欄位。

```
log_timestamp 
component 
dms_source_code_location 
transaction_id 
event_id 
event_timestamp 
lsn/scn 
primary_key
record_type 
event_type 
schema_name 
table_name 
statement 
action 
result 
raw_data
```

在 S3 提供時間歷程日誌之後，您可以使用 Amazon Athena 等工具直接存取和查詢這些記錄。或者，您可以從 S3 下載任何檔案的日誌。

以下範例顯示「時間歷程」日誌，其中會記錄名為 `mytable` 資料表的交易。為了方便閱讀，下列日誌會新增行尾。

```
"log_timestamp ","tt_record_type","dms_source_code_location ","transaction_id",
"event_id","event_timestamp","scn_lsn","primary_key","record_type","event_type",
"schema_name","table_name","statement","action","result","raw_data"
"2021-09-23T01:03:00:778230","SOURCE_CAPTURE","postgres_endpoint_wal_engine.c:00819",
"609284109","565612992","2021-09-23 01:03:00.765321+00","00000E9C/D53AB518","","DML",
"UPDATE (3)","dmstest","mytable","","Migrate","","table dmstest.mytable:
UPDATE: id[bigint]:2244937 phone_number[character varying]:'phone-number-482'
age[integer]:82 gender[character]:'f' isactive[character]:'true ' 
date_of_travel[timestamp without time zone]:'2021-09-23 01:03:00.76593' 
description[text]:'TEST DATA TEST DATA TEST DATA TEST DATA'"
```

# 將時間歷程日誌 AWS DMS 上傳至 S3 的頻率
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.TimeTravel.UploadsToS3"></a>

為了將複寫執行個體的儲存用量降至最低， 會定期從中 AWS DMS 卸載時間歷程日誌。

時間歷程日誌推送到 Amazon S3 儲存貯體的情況如下：
+ 如果日誌目前的大小超過 1 GB， 會在五分鐘內將日誌 AWS DMS 上傳至 S3。因此， 最多 AWS DMS 可以 AWS KMS 為每個執行中的任務每小時呼叫 S3 和 12 次。
+ AWS DMS 無論日誌的大小為何， 都會每小時將日誌上傳至 S3。
+ 當任務停止時， 會 AWS DMS 立即將時間歷程日誌上傳至 S3。

# 記錄任務設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.Logging"></a>

日誌記錄會使用 Amazon CloudWatch 來在遷移程序期間記錄資訊。您可以使用記錄任務設定，指定要記錄哪些元件活動，以及要將哪些資訊寫入日誌。記錄日誌任務設定會寫入 JSON 檔案。如需使用任務組態檔案來設定任務設定的相關資訊，請參閱：[任務設定範例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。

您可以透過多種方式開啟 CloudWatch 記錄功能。您可以在建立遷移任務 AWS 管理主控台 時，在 上選取 `EnableLogging`選項。或者，您可以在使用 AWS DMS API 建立任務`true`時，將 `EnableLogging`選項設定為 。您也可以在任務設定的日誌記錄區段中以 JSON 指定 `"EnableLogging": true`。

當您將 `EnableLogging`設定為 時`true`， 會 AWS DMS 指派 CloudWatch 群組名稱和串流名稱，如下所示。您無法直接設定這些值。
+ **CloudwatchLogGroup**：`dms-tasks-<REPLICATION_INSTANCE_IDENTIFIER>`
+ **CloudwatchLogStream**：`dms-task-<REPLICATION_TASK_EXTERNAL_RESOURCE_ID>`

`<REPLICATION_INSTANCE_IDENTIFIER>` 是複寫執行個體的識別碼。`<REPLICATION_TASK_EXTERNAL_RESOURCE_ID>` 是任務 ARN `<resourcename>` 區段的值。如需 如何 AWS DMS 產生資源 ARNs 的資訊，請參閱 [建構 的 Amazon Resource Name (ARN) AWS DMS](CHAP_Introduction.AWS.ARN.md)。

CloudWatch 與 AWS Identity and Access Management (IAM) 整合，您可以指定 AWS 帳戶中的使用者可執行哪些 CloudWatch 動作。如需有關在 CloudWatch 中使用 IAM 的詳細資訊，請參閱《*Amazon CloudWatch 使用者指南*》中的「[適用於 Amazon CloudWatch 的 Identity and Access Management](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/auth-and-access-control-cw.html)」和「[記錄 Amazon CloudWatch API 呼叫](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/logging_cw_api_calls.html)」。

若要刪除任務日誌，您可以在任務設定的日誌記錄區段中以 JSON 設定 `DeleteTaskLogs` 為真。

您可以為下列事件類型指定日誌記錄：
+ `FILE_FACTORY` – 檔案處理站會管理用於批次套用和批次載入的檔案，並管理 Amazon S3 端點。
+ `METADATA_MANAGER` – 中繼資料管理員會在複寫期間管理來源和目標中繼資料、分割和資料表狀態。
+ `SORTER` – `SORTER` 負責接收來自 `SOURCE_CAPTURE` 程序的傳入事件。事件會在交易中進行批次處理，並傳送至 `TARGET_APPLY` 服務元件。如果 `SOURCE_CAPTURE` 程序產生的事件速度超過 `TARGET_APPLY` 元件可處理的速度，則 `SORTER` 元件會將待處理事件快取至磁碟或置換檔。快取事件是複寫執行個體中儲存空間耗盡的常見原因。

  `SORTER` 服務元件會管理快取的事件、收集 CDC 統計資料，以及報告任務延遲。
+ `SOURCE_CAPTURE` – 從來源資料庫或服務擷取進行中複寫 (CDC) 資料，並傳遞至 SORTER 服務元件。
+ `SOURCE_UNLOAD` – 在完全載入期間，資料會從來源資料庫或服務卸載。
+ `TABLES_MANAGER` - 資料表管理器會追蹤擷取的資料表、管理資料表的遷移順序，並收集資料表統計資料。
+ `TARGET_APPLY` – 將資料和資料定義語言 (DDL) 陳述式套用到目標資料庫。
+ `TARGET_LOAD` – 將資料載入目標資料庫。
+ `TASK_MANAGER` – 任務管理器會管理正在執行的任務，並將任務分解為子任務以進行平行資料處理。
+ `TRANSFORMATION` – 資料表映射轉換事件。如需詳細資訊，請參閱[使用資料表映射指定任務設定](CHAP_Tasks.CustomizingTasks.TableMapping.md)。
+ `VALIDATOR/ VALIDATOR_EXT` – `VALIDATOR` 服務元件會驗證資料是否已從來源準確遷移至目標。如需詳細資訊，請參閱[資料驗證](CHAP_Validating.md)。
+ `DATA_RESYNC` – 資料重新同步功能的常見元件，可管理資料重新同步流程。如需詳細資訊，請參閱[AWS DMS 資料重新同步](CHAP_Validating.DataResync.md)。
+ `RESYNC_UNLOAD` – 在重新同步程序期間，會從來源資料庫或服務卸載資料。
+ `RESYNC_APPLY` – 資料處理語言 (DML) 陳述式會在重新同步期間套用至目標資料庫。

使用 `LOGGER_SEVERITY_DETAILED_DEBUG` 日誌嚴重性層級時，下列記錄元件會產生大量的日誌：
+ `COMMON`
+ `ADDONS`
+ `DATA_STRUCTURE`
+ `COMMUNICATION`
+ `FILE_TRANSFER`
+ `FILE_FACTORY`

在疑難排解期間，這些元件很少需要 `DEFAULT` 以外的日誌記錄層級。除非 AWS Support 特別要求，否則我們不建議變更這些元件`DEFAULT`的 記錄層級。

指定上述其中一項之後，即可以接著指定記錄的資訊量，如下列清單所示。

嚴重性層級的順序是從最低到最高層級的資訊。較高的層級一律會包含較低層級的資訊。
+ LOGGER\$1SEVERITY\$1ERROR – 將錯誤訊息寫入日誌。
+ LOGGER\$1SEVERITY\$1WARNING – 將警告及錯誤訊息寫入日誌。
+ LOGGER\$1SEVERITY\$1INFO – 將資訊訊息、警告及錯誤訊息寫入日誌。
+ LOGGER\$1SEVERITY\$1DEFAULT – 將資訊訊息、警告及錯誤訊息寫入日誌。
+ LOGGER\$1SEVERITY\$1DEBUG – 將偵錯訊息、資訊訊息、警告及錯誤訊息寫入日誌。
+ LOGGER\$1SEVERITY\$1DETAILED\$1DEBUG – 將所有資訊寫入日誌。

下列 JSON 範例顯示日誌記錄所有動作和嚴重性層級的任務設定。

```
…
  "Logging": {
    "EnableLogging": true,
    "LogComponents": [
      {
        "Id": "FILE_FACTORY",
        "Severity": "LOGGER_SEVERITY_DEFAULT"
      },{
        "Id": "METADATA_MANAGER",
        "Severity": "LOGGER_SEVERITY_DEFAULT"
      },{
        "Id": "SORTER",
        "Severity": "LOGGER_SEVERITY_DEFAULT"
      },{
        "Id": "SOURCE_CAPTURE",
        "Severity": "LOGGER_SEVERITY_DEFAULT"
      },{
        "Id": "SOURCE_UNLOAD",
        "Severity": "LOGGER_SEVERITY_DEFAULT"
      },{
        "Id": "TABLES_MANAGER",
        "Severity": "LOGGER_SEVERITY_DEFAULT"
      },{
        "Id": "TARGET_APPLY",
        "Severity": "LOGGER_SEVERITY_DEFAULT"
      },{
        "Id": "TARGET_LOAD",
        "Severity": "LOGGER_SEVERITY_INFO"
      },{
        "Id": "TASK_MANAGER",
        "Severity": "LOGGER_SEVERITY_DEBUG"
      },{
        "Id": "TRANSFORMATION",
        "Severity": "LOGGER_SEVERITY_DEBUG"
      },{
        "Id": "VALIDATOR",
        "Severity": "LOGGER_SEVERITY_DEFAULT"
      }
    ],
    "CloudWatchLogGroup": null,
    "CloudWatchLogStream": null
  }, 
…
```

# 控制資料表任務設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.ControlTable"></a>

控制資料表提供 AWS DMS 任務的相關資訊。它們也提供有用的統計資料，可供您用來規劃和管理目前遷移任務和未來的任務。您可以在 JSON 檔案中套用這些任務設定，或在 AWS DMS 主控台的**建立任務**頁面上選擇**進階設定**。資料庫目標上一律會建立「套用例外」資料表 (`dmslogs.awsdms_apply_exceptions`)。如需使用任務組態檔案來設定任務設定的相關資訊，請參閱：[任務設定範例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。

AWS DMS 只會在完全載入 \$1 CDC 或僅限 CDC 任務期間建立控制資料表，而不會在僅完全載入任務期間建立控制資料表。

對於完全載入和 CDC (遷移現有資料並複寫持續變更) 和僅限 CDC (僅複寫資料變更) 任務，您也可以建立其他資料表，選項如下：
+ **複寫狀態 (dmslogs.awsdms\$1status)** – 此資料表可提供目前任務的詳細資訊。這包含任務狀態、任務所使用的記憶體數量，以及尚未套用到目標的變更數。此資料表也會提供 AWS DMS 目前正在讀取的來源資料庫中的位置。此外，它指出該任務是處於完全載入階段或變更資料擷取 (CDC)。
+ **暫停資料表 (dmslogs.awsdms\$1suspended\$1tables)** – 此資料表可提供暫停資料表的清單，以及其暫停的原因。
+ **複寫歷史記錄 (dmslogs.awsdms\$1history)** – 此資料表可提供複寫歷史記錄的資訊。這項資訊包含任務期間處理的記錄數及記錄量、CDC 任務結尾的延遲，以及其他統計資料。

套用異常資料表 (`dmslogs.awsdms_apply_exceptions`) 包含下列參數。


| 資料行 | Type | 說明 | 
| --- | --- | --- | 
|  TASK\$1NAME  |  nvchar  |   AWS DMS 任務的資源 ID。您可以在任務 ARN 中找到資源識別碼。  | 
|  TABLE\$1OWNER  |  nvchar  |  資料表的擁有者。  | 
|  TABLE\$1NAME  |  nvchar  |  資料表名稱。  | 
|  ERROR\$1TIME  |  timestamp  |  異常 (錯誤) 發生的時間。  | 
|  STATEMENT  |  nvchar  |  發生錯誤時正在執行的陳述式。  | 
|  ERROR  |  nvchar  |  錯誤名稱及描述。  | 

複寫狀態資料表 (`dmslogs.awsdms_status`) 包含任務及目標資料庫目前的狀態。其具備下列設定。


| 資料行 | Type | 說明 | 
| --- | --- | --- | 
|  SERVER\$1NAME  |  nvchar  |  執行複寫任務的機器名稱。  | 
|  TASK\$1NAME  |  nvchar  |   AWS DMS 任務的資源 ID。您可以在任務 ARN 中找到資源識別碼。  | 
|  TASK\$1STATUS  |  varchar  |  下列其中一值： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.ControlTable.html) 只要至少有一個資料表仍處於完全載入狀態，任務狀態就會設為 FULL LOAD。在載入所有資料表後，若已啟用 CDC，則任務狀態就會變更為 CHANGE PROCESSING。在您啟動任務之前或任務完成後，任務會設定為 NOT RUNNING。  | 
| STATUS\$1TIME |  timestamp  |  任務狀態的時間戳記。  | 
|  PENDING\$1CHANGES  |  int  |  在來源資料庫中遞交，並快取至複寫執行個體記憶體和磁碟中的變更記錄數目。  | 
|  DISK\$1SWAP\$1SIZE  |  int  |  舊交易或已卸載交易所使用的磁碟空間數。  | 
| TASK\$1MEMORY |  int  |  目前使用的記憶體 (MB)。  | 
|  SOURCE\$1CURRENT \$1POSITION  |  varchar  |   AWS DMS 目前讀取來源資料庫中的位置。  | 
|  SOURCE\$1CURRENT \$1TIMESTAMP  |  timestamp  |   AWS DMS 目前讀取來源資料庫中的時間戳記。  | 
|  SOURCE\$1TAIL \$1POSITION  |  varchar  |  尚未遞交的最舊啟動交易位置。此值是您可以在不遺失任何變更的情況下回復到的最新位置。  | 
|  SOURCE\$1TAIL \$1TIMESTAMP  |  timestamp  |  尚未遞交的最舊啟動交易時間戳記。此值是您可以在不遺失任何變更的情況下回復到的最新時間戳記。  | 
|  SOURCE\$1TIMESTAMP \$1APPLIED  |  timestamp  |  最後交易遞交的時間戳記。在大量套用程序中，此值是批次中最後一筆交易遞交的時間戳記。  | 

暫停的資料表 (`dmslogs.awsdms_suspended_tables`) 包含下列參數。


| 資料行 | Type | 說明 | 
| --- | --- | --- | 
|  SERVER\$1NAME  |  nvchar  |  執行複寫任務的機器名稱。  | 
|  TASK\$1NAME  |  nvchar  |   AWS DMS 任務的名稱  | 
|  TABLE\$1OWNER  |  nvchar  |  資料表的擁有者。  | 
|  TABLE\$1NAME  |  nvchar  |  資料表名稱。  | 
|  SUSPEND\$1REASON  |  nvchar  |  暫停的原因。  | 
|  SUSPEND\$1TIMESTAMP  |  timestamp  |  暫停的發生時間。  | 

複寫歷史記錄資料表 (`dmslogs.awsdms_history`) 包含下列參數。


| 資料行 | Type | 說明 | 
| --- | --- | --- | 
|  SERVER\$1NAME  |  nvchar  |  執行複寫任務的機器名稱。  | 
|  TASK\$1NAME  |  nvchar  |   AWS DMS 任務的資源 ID。您可以在任務 ARN 中找到資源識別碼。  | 
|  TIMESLOT\$1TYPE  |  varchar  |  下列其中一值： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.ControlTable.html) 若任務同時執行完全載入及 CDC，則會將兩個歷史記錄寫入時段。  | 
| TIMESLOT |  timestamp  |  時段的結束時間戳記。  | 
|  TIMESLOT\$1DURATION  |  int  |  時段的持續時間 (以分鐘為單位)。  | 
|  TIMESLOT\$1LATENCY  |  int  |  時段結束時的目標延遲 (以秒為單位)。此值僅適用於 CDC 時段。  | 
| RECORDS |  int  |  時段期間處理的記錄數量。  | 
|  TIMESLOT\$1VOLUME  |  int  |  處理的資料量 (MB)。  | 

驗證失敗資料表 (`awsdms_validation_failures_v1`) 包含任務的所有資料驗證失敗。如需資料驗證的詳細資訊，請參閱[資料驗證疑難排解](CHAP_Validating.md#CHAP_Validating.Troubleshooting)。

其他控制資料表設定包含下列項目：
+ `HistoryTimeslotInMinutes` – 使用此選項來指出複寫歷史記錄資料表中每個時段的長度。預設值為 5 分鐘。
+ `ControlSchema` – 使用此選項來指出 AWS DMS 目標控制資料表的資料庫結構描述名稱。若您沒有在此選項中輸入任何資訊，資料表便會複製到資料庫中的預設位置，如以下所示：
  + PostgreSQL，公有
  + Oracle，目標結構描述
  + Microsoft SQL Server, 目標資料庫中的 dbo
  + MySQL，awsdms\$1control
  + MariaDB，awsdms\$1control
  + Amazon Redshift，公有
  + DynamoDB，建立做為資料庫中的個別資料表
  + IBM Db2 LUW, awsdms\$1control

# 串流緩衝區任務設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.StreamBuffer"></a>

您可以使用 設定串流緩衝區設定 AWS CLI，包括下列項目。如需取得如何使用任務組態檔案來進行任務設定的相關資訊，請參閱[任務設定範例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。
+ `StreamBufferCount` – 使用此選項來指定遷移任務的資料串流緩衝區數量。預設串流緩衝區數量為 3。增加此設定的值可增加資料擷取的速度。但是，此增加效能高度依賴遷移環境，包括來源系統及複寫伺服器的執行個體類別。針對大多數情況，預設值便已足夠。
+ `StreamBufferSizeInMB` – 使用此選項來指出每個資料串流緩衝區的大小上限。預設大小為 8 MB。當您在使用非常大型的 LOB 時，可能需要增加此選項的值。若您在日誌檔案中收到訊息，指出串流緩衝區大小不足，您也可能需要增加此值。在計算此選項的大小時，您可以使用以下方程式：` [Max LOB size (or LOB chunk size)]*[number of LOB columns]*[number of stream buffers]*[number of tables loading in parallel per task(MaxFullLoadSubTasks)]*3`
+ `CtrlStreamBufferSizeInMB` – 使用此選項來設定控制串流緩衝區的大小。其值可介於 1-8 之間，單位為 MB。預設值為 5。若您使用非常大量的資料表 (例如成千上萬個資料表)，您可能需要增加此值。

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

# 資料驗證任務設定
<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;
```

# 資料重新同步設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.DataResyncSettings"></a>

資料重新同步功能可讓您根據資料驗證報告，將目標資料庫與來源資料庫重新同步。如需詳細資訊，請參閱[AWS DMS 資料驗證](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html)。

您可以在設定重新同步程序的`ReplicationTaskSettings`端點`ResyncSettings`中新增 的其他參數。如需詳細資訊，請參閱《指定[任務設定》中的任務設定範例](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.html#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。 [AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.html)

**注意**  
`ResyncSchedule` 如果啟用重新同步程序且任務具有 CDC 元件，則需要 和 `MaxResyncTime` 參數。它們不適用於僅完全載入的任務。

資料重新同步參數設定和值如下所示：

`EnableResync`  
設為 時啟用資料重新同步功能`true`。預設會停用資料重新同步。  
**資料類型**：布林值  
**必要**：否  
**預設**：`false`  
**驗證**：如果 `ResyncSettings` 參數存在於 中，則不應為 null`TaskSettings`。

`ResyncSchedule`  
資料重新同步功能生效的時段。必須以 Cron 格式存在。如需詳細資訊，請參閱[Cron 表達式規則](CHAP_Validating.DataResync.md#CHAP_DataResync.cron)。  
**資料類型**：字串  
**必要**：否  
**驗證**：  
+ 必須以 Cron 表達式格式存在。
+ 對於 CDC `EnableResync`設定為 的任務，不應為 null`true`。
+ 無法為沒有 CDC 元件的任務設定 。

`MaxResyncTime`  
資料重新同步功能生效的最大時間限制，以分鐘為單位。  
**資料類型**：整數  
**必要**：否  
**驗證**：  
+ 使用 CDC 的任務不應為 null。
+ 沒有 CDC 的任務不需要。
+ 最小值：`5 minutes`，最大值： `14400 minutes` (10 天）。

`Validation onlyTaskID`  
驗證任務的唯一 ID。僅驗證任務 ID 會附加在 ARN 的結尾。例如：  
+ 僅驗證任務 ARN： `arn:aws:dms:us-west-2:123456789012:task:6DG4CLGJ5JSJR67CFD7UDXFY7KV6CYGRICL6KWI`
+ 僅驗證任務 ID： `6DG4CLGJ5JSJR67CFD7UDXFY7KV6CYGRICL6KWI`
**資料類型**：字串  
**必要**：否  
**驗證**：對於已啟用資料重新同步功能且已停用驗證的任務， 不應為 null。  
範例：  

```
"ResyncSettings": {
    "EnableResync": true,
    "ResyncSchedule": "30 9 ? * MON-FRI", 
    "MaxResyncTime": 400,  
    "ValidationTaskId": "JXPP94804DJOEWIJD9348R3049"
},
```

# 變更處理 DDL 處理的任務設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.DDLHandling"></a>



下列設定決定 如何在變更資料擷取 (CDC) 期間 AWS DMS 處理目標資料表的資料定義語言 (DDL) 變更。如需使用任務組態檔案來設定任務設定的相關資訊，請參閱：[任務設定範例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。

處理變更處理 DDL 的任務設定包含下列項目：
+ `HandleSourceTableDropped –` 將此選項設為 `true` 來在來源資料表卸除時卸除目標資料表。
+ `HandleSourceTableTruncated` – 將此選項設為 `true` 以在來源資料表截斷時截斷目標資料表。
+ `HandleSourceTableAltered` – 將此選項設為 `true` 以在來源資料表改變時改變目標資料表。

以下是處理變更處理 DDL 的任務設定如何顯示在任務設定 JSON 檔中的範例：

```
                "ChangeProcessingDdlHandlingPolicy": {
                   "HandleSourceTableDropped": true,
                   "HandleSourceTableTruncated": true,
                   "HandleSourceTableAltered": true
                },
```

**注意**  
如需針對特定端點支援的 DDL 陳述式資訊，請參閱說明該端點的主題。

# 字元替換任務設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.CharacterSubstitution"></a>

您可以指定複寫任務針對具有 AWS DMS `STRING`或 `WSTRING`資料類型的所有來源資料庫資料欄，在目標資料庫上執行字元替換。如需使用任務組態檔案來設定任務設定的相關資訊，請參閱：[任務設定範例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。

您可以使用來自下列來源和目標資料庫的端點，為任何任務設定字元替換：
+ 來源資料庫：
  + Oracle
  + Microsoft SQL Server
  + MySQL
  + MariaDB
  + PostgreSQL
  + SAP Adaptive Server Enterprise (ASE)
  + IBM Db2 LUW
+ 目標資料庫：
  + Oracle
  + Microsoft SQL Server
  + MySQL
  + MariaDB
  + PostgreSQL
  + SAP Adaptive Server Enterprise (ASE)
  + Amazon Redshift

您可以在任務設定中使用 `CharacterSetSettings` 參數來指定字元替換。這些字元替換會針對使用 Unicode 字碼指標值 (十六進位表示法) 指定的字元。如果同時指定兩者，您可以依下列順序實作兩階段替換：

1. **個別字元取代** – AWS DMS 可以將來源上所選字元的值取代為目標上對應字元的指定取代值。使用 `CharacterSetSettings` 中的 `CharacterReplacements` 陣列來選取具有您指定之 Unicode 字碼指標的所有來源字元。也使用此陣列來指定目標上對應字元的取代字碼指標。

   若要選取來源上具有指定程式碼指標的所有字元，請將 `CharacterReplacements` 陣列中的 `SourceCharacterCodePoint` 執行個體設定為該程式碼指標。然後，透過設定此陣列 `TargetCharacterCodePoint` 中對應的執行個體，指定所有同等目標字元的取代字碼指標。若要刪除目標字元而非取代它們，請將適當的 `TargetCharacterCodePoint` 執行個體設定為零 (0)。您可以透過在 `CharacterReplacements` 陣列中指定額外的 `SourceCharacterCodePoint` 和 `TargetCharacterCodePoint` 設定對，來取代或刪除任意數量的目標字元值。如果您為 `SourceCharacterCodePoint` 的多個執行個體指定相同的值，最後 `TargetCharacterCodePoint` 的對應設定的值會套用至目標。

   例如，假設您為 `CharacterReplacements` 指定下列值。

   ```
   "CharacterSetSettings": {
       "CharacterReplacements": [ {
           "SourceCharacterCodePoint": 62,
           "TargetCharacterCodePoint": 61
           }, {
           "SourceCharacterCodePoint": 42,
           "TargetCharacterCodePoint": 41
           }
       ]
   }
   ```

   在此範例中， 會將目標上具有來源碼點十六進位值 62 的所有字元 AWS DMS 取代為程式碼點值 61 的字元。此外，以代碼點值為 41 的字元 AWS DMS 取代目標上具有來源碼點 42 的所有字元。換言之， AWS DMS 會以字母 `'a'` 取代目標上字母 `'b'` 的所有執行個體。同樣地， 會以字母 AWS DMS 取代目標`'B'`上的字母所有執行個體`'A'`。

1. **字元集驗證和替換** – 完成任何個別字元替換後， AWS DMS 可以確保所有目標字元在您指定的單一字元集中都有有效的 Unicode 程式碼點。您可以在 `CharacterSetSettings` 中使用 `CharacterSetSupport` 來設定此目標字元驗證和修改。若要指定驗證字元集，請將 `CharacterSetSupport` 中的 `CharacterSet` 設為字元集的字串值。(`CharacterSet` 的可能值如下。) 您可以透過下列其中一種方式 AWS DMS 修改無效的目標字元：
   + 為所有無效目標字元指定單一替換 Unicode 字碼指標，無論其目前的字碼指標為何。若要設定此取代程式碼指標，請將 `CharacterSetSupport` 中的 `ReplaceWithCharacterCodePoint` 設為指定的值。
   + 將 `ReplaceWithCharacterCodePoint` 設為零 (0)，以設定刪除所有無效的目標字元。

   例如，假設您為 `CharacterSetSupport` 指定下列值。

   ```
   "CharacterSetSettings": {
       "CharacterSetSupport": {
           "CharacterSet": "UTF16_PlatformEndian",
           "ReplaceWithCharacterCodePoint": 0
       }
   }
   ```

   在此範例中， 會 AWS DMS 刪除在字元集中無效的目標上找到的任何`"UTF16_PlatformEndian"`字元。因此，它會刪除任何以十六進位值 `2FB6` 指定的字元。此值無效，因為這是 4 位元組 Unicode 字碼指標，而 UTF16 字元集僅接受具有 2 位元組字碼指標的字元。

**注意**  
複寫任務會先完成所有指定的字元替換，再啟動您透過資料表映射指定的任何全域或資料表層級轉換。如需資料表映射的詳細資訊，請參閱[使用資料表映射指定任務設定](CHAP_Tasks.CustomizingTasks.TableMapping.md)。  
字元替換不支援 LOB 資料類型。這包括 DMS 認為是 LOB 資料類型的任何資料類型。例如，在 Oracle 中的 `Extended` 資料類型被認為是 LOB。如需有關來源資料類型的詳細資訊，請參閱下列 [Oracle 的來源資料類型](CHAP_Source.Oracle.md#CHAP_Source.Oracle.DataTypes)：

 AWS DMS 支援 的值`CharacterSet`會顯示在下表中。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.CharacterSubstitution.html)

# 前映像任務設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.BeforeImage"></a>

將 CDC 更新寫入至 Kinesis 或 Apache Kafka 等資料串流目標時，您可以在更新進行變更前，檢視來源資料庫列的原始值。為了實現這一點， 會根據來源資料庫引擎提供的資料， AWS DMS 填入更新事件*之前的映像*。如需使用任務組態檔案來設定任務設定的相關資訊，請參閱：[任務設定範例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。

若要這麼做，您需要 `BeforeImageSettings` 參數將新的 JSON 屬性新增至所有更新操作，其中包含從來源資料庫系統收集到的值。

請確保 `BeforeImageSettings` 只套用於完全載入加上 CDC 任務或僅限 CDC 任務。完全載入加上 CDC 任務會遷移現有資料並複寫持續變更。僅限 CDC 任務只會複寫資料變更。

請勿將 `BeforeImageSettings` 套用至僅限完全載入的任務。

`BeforeImageSettings` 的可能選項如下：
+ `EnableBeforeImage` – 設定為 `true` 時，將在建立映像前開啟。預設值為 `false`。
+ `FieldName` – 將名稱指派給新的 JSON 屬性。若 `EnableBeforeImage` 為 `true`，`FieldName` 則為必填，且不能留白。
+ `ColumnFilter` – 使用前映像來指定要新增的欄。若只要新增屬於資料表主索引鍵一部分的欄，請使用預設值 `pk-only`。若要新增任何具有前映像值的欄，請使用 `all`。請注意，前映像不支援大型二進位物件 (LOB) 資料類型，例如 CLOB 和 BLOB。

下列顯示 `BeforeImageSettings` 的使用方式範例。

```
"BeforeImageSettings": {
    "EnableBeforeImage": true,
    "FieldName": "before-image",
    "ColumnFilter": "pk-only"
  }
```

如需 Kinesis 的前映像設定 (包括其他資料表映射設定) 的相關資訊，請參閱：[使用前映像檢視作為目標之 Kinesis 資料串流的 CDC 列原始值](CHAP_Target.Kinesis.md#CHAP_Target.Kinesis.BeforeImage)。

如需 Kafka 的前映像設定 (包括其他資料表映射設定) 的相關資訊，請參閱 [使用前映像檢視做為目標之 Apache Kafka 的 CDC 列原始值](CHAP_Target.Kafka.md#CHAP_Target.Kafka.BeforeImage)。

# 錯誤處理任務設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.ErrorHandling"></a>

您可以使用下列設定，設定複寫任務的錯誤處理行為：如需使用任務組態檔案來設定任務設定的相關資訊，請參閱：[任務設定範例](CHAP_Tasks.CustomizingTasks.TaskSettings.md#CHAP_Tasks.CustomizingTasks.TaskSettings.Example)。
+ `DataErrorPolicy` – 決定 AWS DMS 在記錄層級發生與資料處理相關的錯誤時所採取的動作。資料處理錯誤的一些範例包括轉換錯誤、轉換中發生的錯誤，以及資料錯誤。預設值為 `LOG_ERROR`。
  + `IGNORE_RECORD` – 任務會繼續執行並忽略該記錄的資料。`DataErrorEscalationCount` 屬性的錯誤計數器會遞增。因此，若您設定資料表的錯誤限制，此錯誤便會計入該限制。
  + `LOG_ERROR` – 任務會繼續執行，並且會將錯誤寫入任務日誌。
  + `SUSPEND_TABLE` – 任務會繼續執行，但發生錯誤記錄資料表中的資料會移動到錯誤狀態，並且不會複寫資料。
  + `STOP_TASK` – 任務會停止，並需要手動操作。
+ `DataTruncationErrorPolicy` – 決定 AWS DMS 在資料截斷時要採取的動作。預設值為 `LOG_ERROR`。
  + `IGNORE_RECORD` – 任務會繼續執行並忽略該記錄的資料。`DataErrorEscalationCount` 屬性的錯誤計數器會遞增。因此，若您設定資料表的錯誤限制，此錯誤便會計入該限制。
  + `LOG_ERROR` – 任務會繼續執行，並且會將錯誤寫入任務日誌。
  + `SUSPEND_TABLE` – 任務會繼續執行，但發生錯誤記錄資料表中的資料會移動到錯誤狀態，並且不會複寫資料。
  + `STOP_TASK` – 任務會停止，並需要手動操作。
+ `DataErrorEscalationPolicy` – 決定 AWS DMS 在到達錯誤數量上限 (於 `DataErrorEscalationCount` 參數中設定) 時要採取的動作。預設值為 `SUSPEND_TABLE`。
  + `SUSPEND_TABLE` – 任務會繼續執行，但發生錯誤記錄資料表中的資料會移動到錯誤狀態，並且不會複寫資料。
  + `STOP_TASK` – 任務會停止，並需要手動操作。
+ `DataErrorEscalationCount` – 設定針對特定記錄，資料可發生的錯誤數量上限。到達此數量時，包含錯誤記錄資料表中的資料會根據 `DataErrorEscalationPolicy` 中設定的政策處理。預設值為 0。
+ `EventErrorPolicy` – 決定 AWS DMS 在傳送任務相關事件時發生錯誤時所採取的動作。可能值如下
  + `IGNORE` – 任務會繼續執行，且會忽略與該事件相關聯的所有資料。
  + `STOP_TASK` – 任務會停止，並需要手動操作。
+ `TableErrorPolicy` 決定 AWS DMS 在處理特定資料表的資料或中繼資料期間發生錯誤時要採取的動作。此錯誤僅適用於一般資料表資料，而非與特定記錄相關的錯誤。預設值為 `SUSPEND_TABLE`。
  + `SUSPEND_TABLE` – 任務會繼續執行，但發生錯誤記錄資料表中的資料會移動到錯誤狀態，並且不會複寫資料。
  + `STOP_TASK` – 任務會停止，並需要手動操作。
+ `TableErrorEscalationPolicy` – 決定 AWS DMS 在到達錯誤數量上限 (使用 `TableErrorEscalationCount` 參數設定) 時要採取的動作。預設及唯一的使用者設定為 `STOP_TASK`，在此設定下任務會停止並需要手動操作。
+ `TableErrorEscalationCount` – 針對特定資料表，一般資料或中繼資料可發生的錯誤數量上限。到達此數量時，該資料表的資料會根據 `TableErrorEscalationPolicy` 中設定的政策處理。預設值為 0。
+ `RecoverableErrorCount` – 在發生環境錯誤時，嘗試重新啟動任務的次數上限。在系統嘗試重新啟動任務的次數到達指定次數後，任務便會停止並需要手動操作。預設值為 -1。

  當您將此值設定為 -1 時，DMS 嘗試的重試次數會根據傳回的錯誤類型而有所不同，如下所示：
  + **執行中狀態、可復原的錯誤**：如果發生可復原的錯誤，例如連線中斷或目標套用失敗，DMS 會重試任務九次。
  + **啟動狀態、可復原的錯誤**：DMS 會重試任務六次。
  + **DMS 處理的執行中狀態、嚴重錯誤**：DMS 會重試任務六次。
  + **DMS 未處理的執行中狀態、嚴重錯誤**：DMS 不會重試任務。
  + **除上述之外**：無限期 AWS DMS 重試任務。

  將此值設為 0 以永不嘗試重新啟動任務。

  建議您`RecoverableErrorInterval`將 `RecoverableErrorCount`和 設定為 值，以便有足夠的間隔重試，讓您的 DMS 任務可以正常復原。如果發生嚴重錯誤，DMS 會在大多數情況下停止重新啟動嘗試。
+ `RecoverableErrorInterval` – AWS DMS 在嘗試重新啟動任務之間等待的秒數。預設值為 5。
+ `RecoverableErrorThrottling` – 啟用時，嘗試重新啟動任務之間的間隔會根據 `RecoverableErrorInterval` 的值連續增加。例如，如果 `RecoverableErrorInterval` 設為 5 秒，則下一次重試將在 10 秒後發生，然後是 20 秒，然後是 40 秒，以此類推。預設值為 `true`。
+ `RecoverableErrorThrottlingMax` – 如果`RecoverableErrorThrottling`啟用 AWS ，DMS 在嘗試重新啟動任務之間等待的秒數上限。預設為 1800。
+ `RecoverableErrorStopRetryAfterThrottlingMax`– 預設值設定為 `true`，DMS 會在達到每個 的復原嘗試之間 AWS DMS 等待的秒數上限之後停止繼續任務`RecoverableErrorStopRetryAfterThrottlingMax`。設為 時`false`，DMS 會在達到復原嘗試之間 AWS DMS 等待的秒數上限之後繼續任務，每個 `RecoverableErrorStopRetryAfterThrottlingMax` 直到`RecoverableErrorCount`達到為止。
+ `ApplyErrorDeletePolicy` – 決定 AWS DMS 在與 DELETE 操作發生衝突時要採取的動作。預設值為 `IGNORE_RECORD`。可能的值如下：
  + `IGNORE_RECORD` – 任務會繼續執行並忽略該記錄的資料。`ApplyErrorEscalationCount` 屬性的錯誤計數器會遞增。因此，若您設定資料表的錯誤限制，此錯誤便會計入該限制。
  + `LOG_ERROR` – 任務會繼續執行，並且會將錯誤寫入任務日誌。
  + `SUSPEND_TABLE` – 任務會繼續執行，但發生錯誤記錄資料表中的資料會移動到錯誤狀態，並且不會複寫資料。
  + `STOP_TASK` – 任務會停止，並需要手動操作。
+ `ApplyErrorInsertPolicy` – 決定 AWS DMS 在與 INSERT 操作發生衝突時要採取的動作。預設值為 `LOG_ERROR`。可能的值如下：
  + `IGNORE_RECORD` – 任務會繼續執行並忽略該記錄的資料。`ApplyErrorEscalationCount` 屬性的錯誤計數器會遞增。因此，若您設定資料表的錯誤限制，此錯誤便會計入該限制。
  + `LOG_ERROR` – 任務會繼續執行，並且會將錯誤寫入任務日誌。
  + `SUSPEND_TABLE` – 任務會繼續執行，但發生錯誤記錄資料表中的資料會移動到錯誤狀態，並且不會複寫資料。
  + `STOP_TASK` – 任務會停止，並需要手動操作。
  + `INSERT_RECORD` – 若現有目標記錄與插入的來源記錄具有相同的主索引鍵，則更新目標記錄。
**注意**  
**在交易套用模式中**：在此程序中，系統會先嘗試插入記錄。如果插入因主索引鍵衝突而失敗，則會刪除現有記錄，然後插入新的記錄。
**在批次套用模式中**：程序會先移除目標批次中的所有現有記錄，再插入一組完整的新記錄，以確保資料能順利取代。
此程序可防止資料重複，但相較於預設政策，會產生一些效能成本。確切的效能影響取決於您的特定工作負載特性。
+ `ApplyErrorUpdatePolicy` – 決定 AWS DMS 在與 UPDATE 操作發生衝突時要採取的動作。預設值為 `LOG_ERROR`。可能的值如下：
  + `IGNORE_RECORD` – 任務會繼續執行並忽略該記錄的資料。`ApplyErrorEscalationCount` 屬性的錯誤計數器會遞增。因此，若您設定資料表的錯誤限制，此錯誤便會計入該限制。
  + `LOG_ERROR` – 任務會繼續執行，並且會將錯誤寫入任務日誌。
  + `SUSPEND_TABLE` – 任務會繼續執行，但發生錯誤記錄資料表中的資料會移動到錯誤狀態，並且不會複寫資料。
  + `STOP_TASK` – 任務會停止，並需要手動操作。
  + `UPDATE_RECORD` – 如果遺失目標記錄，則會將遺失的目標記錄插入目標資料表。 會 AWS DMS 完全停用任務的 LOB 資料欄支援。若來源資料庫為 Oracle，則選取此選項便需要為所有來源資料表資料行啟用完整的增補日誌記錄。
**注意**  
**在交易套用模式中**：在此程序中，系統會先嘗試更新記錄。如果更新因目標遺失記錄而失敗，則會針對失敗的記錄執行刪除，然後插入新的記錄。此程序需要 Oracle 來源資料庫的完整補充記錄，DMS 會停用此任務的 LOB 資料欄支援。
**在批次套用模式中**：程序會先移除目標批次中的所有現有記錄，再插入一組完整的新記錄，以確保資料能順利取代。
+ `ApplyErrorEscalationPolicy` – 決定 AWS DMS 在達到錯誤數量上限 （使用 `ApplyErrorEscalationCount` 參數設定） 時要採取的動作。預設值為 LOG\$1ERROR：
  + `LOG_ERROR` – 任務會繼續執行，並且會將錯誤寫入任務日誌。
  + `SUSPEND_TABLE` – 任務會繼續執行，但發生錯誤記錄資料表中的資料會移動到錯誤狀態，並且不會複寫資料。
  + `STOP_TASK` – 任務會停止，並需要手動操作。
+ `ApplyErrorEscalationCount` – 此選項設定在變更處理操作期間，特定資料表所能發生的 APPLY 衝突數量上限。到達此數量時，該資料表資料會根據 `ApplyErrorEscalationPolicy` 參數中設定的政策處理。預設值為 0。
+ `ApplyErrorFailOnTruncationDdl` – 設定此選項為 `true` 會在 CDC 期間於任何追蹤資料表上執行截斷時造成任務失敗。預設值為 `false`。

  此方法無法搭配 PostgreSQL 11.x 及更低版本，或是任何其他不複寫 DDL 資料表截斷的來源端點使用。
+ `FailOnNoTablesCaptured` – 設定此選項為 `true` 會在為任務定義的資料表映射於任務啟動期間找不到任何資料表時造成任務失敗。預設值為 `true`。
+ `FailOnTransactionConsistencyBreached` – 此選項適用於使用 Oracle 做為來源，包含 CDC 的任務。預設值為 false。將此設為 `true` 會在開啟交易的時間超過指定逾時並且可進行卸除時，造成任務失敗。

  當 CDC 任務以 Oracle 啟動時， 會在有限的時間內 AWS DMS 等待最舊的開放交易關閉，再啟動 CDC。如果最舊的開啟中交易在達到逾時之前不會關閉，則大多數情況下會 AWS DMS 啟動 CDC，忽略該交易。如果此選項設定為 `true`，則任務便會失敗。
+ `FullLoadIgnoreConflicts` – 將此選項設定為 `true`，以在套用快取事件時 AWS DMS 忽略「受影響的零資料列」和「重複」錯誤。如果設定為 `false`，則 AWS DMS 報告所有錯誤，而不是忽略它們。預設值為 `true`。
+ `DataMaskingErrorPolicy` – 決定資料遮罩因不相容的資料類型或任何其他原因而失敗時所 AWS DMS 採取的動作。follwing 是可用的選項：
  + `STOP_TASK` （預設） – 任務停止且需要手動介入。
  + `IGNORE_RECORD` – 任務會繼續執行並忽略該記錄的資料。
  + `LOG_ERROR` – 任務會繼續執行，並且會將錯誤寫入任務日誌。未遮罩的資料將載入目標資料表。
  + `SUSPEND_TABLE` – 任務會繼續執行，但發生錯誤記錄資料表中的資料會移動到錯誤狀態，並且不會複寫資料。

**注意**  
 Redshift 中做為目標的資料表載入錯誤會在 中回報`STL_LOAD_ERRORS`。如需詳細資訊，請參閱《*Amazon Redshift 資料庫開發人員指南*》中的 [STL\$1LOAD\$1ERRORS](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html)。

**注意**  
與可復原錯誤相關的參數變更只會在您停止和繼續 DMS 任務後生效。變更不適用於目前的執行。

# 儲存任務設定
<a name="CHAP_Tasks.CustomizingTasks.TaskSettings.Saving"></a>

若您希望針對另一個任務重複使用設定，您可以將任務設定儲存為 JSON 檔案。在任務的**詳細資訊概觀**區段下，可以找到要複製到 JSON 檔案的任務設定。

**注意**  
重複使用其他任務的任務設定時，請移除所有 `CloudWatchLogGroup` 和 `CloudWatchLogStream` 屬性。否則，將會發生以下錯誤：系統錯誤訊息：任務設定 CloudWatchLogGroup 或 CloudWatchLogStream 無法在建立時設定。

例如，以下 JSON 檔案包含針對任務儲存的設定。

```
{
    "TargetMetadata": {
        "TargetSchema": "",
        "SupportLobs": true,
        "FullLobMode": false,
        "LobChunkSize": 0,
        "LimitedSizeLobMode": true,
        "LobMaxSize": 32,
        "InlineLobMaxSize": 0,
        "LoadMaxFileSize": 0,
        "ParallelLoadThreads": 0,
        "ParallelLoadBufferSize": 0,
        "BatchApplyEnabled": false,
        "TaskRecoveryTableEnabled": false,
        "ParallelLoadQueuesPerThread": 0,
        "ParallelApplyThreads": 0,
        "ParallelApplyBufferSize": 0,
        "ParallelApplyQueuesPerThread": 0
    },
    "FullLoadSettings": {
        "TargetTablePrepMode": "DO_NOTHING",
        "CreatePkAfterFullLoad": false,
        "StopTaskCachedChangesApplied": false,
        "StopTaskCachedChangesNotApplied": false,
        "MaxFullLoadSubTasks": 8,
        "TransactionConsistencyTimeout": 600,
        "CommitRate": 10000
    },
    "Logging": {
        "EnableLogging": true,
        "LogComponents": [
            {
                "Id": "TRANSFORMATION",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "SOURCE_UNLOAD",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "IO",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "TARGET_LOAD",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "PERFORMANCE",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "SOURCE_CAPTURE",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "SORTER",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "REST_SERVER",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "VALIDATOR_EXT",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "TARGET_APPLY",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "TASK_MANAGER",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "TABLES_MANAGER",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "METADATA_MANAGER",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "FILE_FACTORY",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "COMMON",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "ADDONS",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "DATA_STRUCTURE",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "COMMUNICATION",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            },
            {
                "Id": "FILE_TRANSFER",
                "Severity": "LOGGER_SEVERITY_DEFAULT"
            }
        ]
    },
    "ControlTablesSettings": {
        "ControlSchema": "",
        "HistoryTimeslotInMinutes": 5,
        "HistoryTableEnabled": false,
        "SuspendedTablesTableEnabled": false,
        "StatusTableEnabled": false,
        "FullLoadExceptionTableEnabled": false
    },
    "StreamBufferSettings": {
        "StreamBufferCount": 3,
        "StreamBufferSizeInMB": 8,
        "CtrlStreamBufferSizeInMB": 5
    },
    "ChangeProcessingDdlHandlingPolicy": {
        "HandleSourceTableDropped": true,
        "HandleSourceTableTruncated": true,
        "HandleSourceTableAltered": true
    },
    "ErrorBehavior": {
        "DataErrorPolicy": "LOG_ERROR",
        "DataTruncationErrorPolicy": "LOG_ERROR",
        "DataErrorEscalationPolicy": "SUSPEND_TABLE",
        "DataErrorEscalationCount": 0,
        "TableErrorPolicy": "SUSPEND_TABLE",
        "TableErrorEscalationPolicy": "STOP_TASK",
        "TableErrorEscalationCount": 0,
        "RecoverableErrorCount": -1,
        "RecoverableErrorInterval": 5,
        "RecoverableErrorThrottling": true,
        "RecoverableErrorThrottlingMax": 1800,
        "RecoverableErrorStopRetryAfterThrottlingMax": true,
        "ApplyErrorDeletePolicy": "IGNORE_RECORD",
        "ApplyErrorInsertPolicy": "LOG_ERROR",
        "ApplyErrorUpdatePolicy": "LOG_ERROR",
        "ApplyErrorEscalationPolicy": "LOG_ERROR",
        "ApplyErrorEscalationCount": 0,
        "ApplyErrorFailOnTruncationDdl": false,
        "FullLoadIgnoreConflicts": true,
        "FailOnTransactionConsistencyBreached": false,
        "FailOnNoTablesCaptured": true
    },
    "ChangeProcessingTuning": {
        "BatchApplyPreserveTransaction": true,
        "BatchApplyTimeoutMin": 1,
        "BatchApplyTimeoutMax": 30,
        "BatchApplyMemoryLimit": 500,
        "BatchSplitSize": 0,
        "MinTransactionSize": 1000,
        "CommitTimeout": 1,
        "MemoryLimitTotal": 1024,
        "MemoryKeepTime": 60,
        "StatementCacheSize": 50
    },
    "PostProcessingRules": null,
    "CharacterSetSettings": null,
    "LoopbackPreventionSettings": null,
    "BeforeImageSettings": null,
    "FailTaskWhenCleanTaskResourceFailed": false
}
```