我想要提高完整載入和 CDC AWS Database Migration Service (AWS DMS) 任務上的變更資料擷取 (CDC) 複寫效能。來源延遲不高,但目標延遲較高或正在增加。
簡短描述
預設情況下,AWS DMS 會在 CDC 階段使用交易套用來複寫資料。如果您的任務從來源擷取大量交易並導致目標延遲,那麼您可以啟動批次套用設定。
**注意:**Amazon Redshift 目標預設使用批次套用。Amazon Simple Storage Service (Amazon S3) 目標必須使用交易套用。
批次套用僅適用於具有主索引鍵/唯一索引的資料表。對於沒有主索引鍵/唯一索引的資料表,批次套用只會以批次模式套用插入操作,更新和刪除則會逐筆執行。如果資料表具有主索引鍵/唯一索引,但切換到一對一模式,請參閱如何對 Amazon Redshift 切換到一對一模式的原因進行疑難排解?
當您在複寫中包含大型二進位物件 (LOB) 欄位時,您只能在受限 LOB 模式下使用 BatchApplyEnabled。如需詳細資訊,請參閱目標中繼資料任務設定。
**注意:**如果您將 BatchApplyEnabled 設為 true,並且您的目標具有唯一條件約束,則 AWS DMS 會產生錯誤訊息。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
預設情況下,BatchApplySetting 處於關閉狀態。若要啟動此設定,請使用 AWS CLI 或 AWS DMS 主控台。在啟動批次套用之前,請建立一個具有程式化存取權的 IAM 使用者。
使用 AWS CLI 啟動批次套用
請完成下列步驟:
- 開啟使用 AWS CLI 的系統。
- 執行 configure 命令以開啟 AWS CLI 提示字元。
- 輸入您的 AWS 存取金鑰 ID。
- 輸入您的 AWS 私密金鑰 ID。
- 輸入您的 AWS DMS 資源的 AWS 區域。
- 輸入輸出格式。
- 確認任務處於已停止狀態。
- 使用以下批次設定執行 modify-replication-task 命令:
aws dms modify-replication-task --replication-task-arn arn:aws:dms:region:123456789123:task:4VUCZ6ROH4ZYRIA25M3SE6NXCM --replication-task-settings "{\"TargetMetadata\":{\"BatchApplyEnabled\":true}}"
**注意:**將 replication-task-arn 替換為您的 Amazon Resource Name (ARN),並將 region 替換為您的區域。
- 開啟 AWS DMS console (AWS DMS 主控台)。
- 在導覽窗格中的 Migrate or replicate (移轉或複寫) 下,選擇 Tasks (任務)。
- 選取您的任務,然後選擇 Task settings (JSON) (任務設定 (JSON))。
- 確認 BatchApplyEnabled 已設定為已啟用。
使用 AWS DMS 主控台啟動批次套用
請完成下列步驟:
- 開啟 AWS DMS console (AWS DMS 主控台)。
- 在導覽窗格中的 Migrate or replicate (移轉或複寫) 下,選擇 Tasks (任務)。
- 選取您的任務,然後選擇 Modify (修改)。
- 從 Task settings (任務設定) 區段,選取 JSON editor (JSON 編輯器)。
- 在 TargetMetadata 下,將 BatchApplyEnabled 改為 true。
- 選擇 Save (儲存)。
在以批次模式執行任務後,對高 CDCLatencyTarget 的問題進行疑難排解
在以批次模式執行任務後出現較高的 CDCLatencyTarget,可能會因以下原因導致延遲:
- 由於目標缺少主要索引和次要索引,可能導致長時間執行的交易。
- 您的可用資源不足,無法處理目標上的工作負載。
- 您的 AWS DMS 複寫執行個體存在嚴重的資源爭用。
若要對高延遲問題進行疑難排解,請參閱對 AWS Database Migration Service 中的延遲問題進行疑難排解。
相關資訊
監控 AWS DMS 任務
變更處理調整設定