使用 AWS Database Migration Services (AWS DMS) 時,我收到錯誤 "Last Error Replication task out of memory.Stop Reason FATAL_ERROR Error Level FATAL"。
簡短說明
在使用 AWS DMS 時收到下列錯誤: "Last Error Replication task out of memory.Stop Reason FATAL_ERROR Error Level FATAL"。若要找出錯誤的根本原因,請檢閱 AWS DMS 任務日誌。對於上述錯誤,日誌會提供下列資訊: “Task process for 'XXXXXXX' failed because it ran out of memory”。
若要解決此錯誤,請完成下列一或多個步驟:
- 變更任務設定或記憶體相關參數。
- 根據複寫執行個體的 Amazon CloudWatch 指標波動擴展複寫執行個體類別,例如 FreeMemory 和 SwapUsage。
- 根據移轉的資料大小和任務所需的記憶體量,將單一任務分割成多個任務。
解決方法
**注意:**您必須先停止工作,然後再進行修改。完成修改後,您必須繼續工作。如果任務在全負載階段中停止,則會從頭重新載入傳輸中的表格。
變更任務設定或記憶體相關參數
檢查您是否可以擴展需要更高記憶體容量的任務設定或記憶體相關參數。以下是一些最常見的工作設定和要檢查的參數:
- LOB 設定
- 驗證參數,例如 ThreadCount 和 PartitionSize
- 平行執行緒參數,例如 ParallelLoadThreads、ParallelLoadBufferSize、ParallelLoadQueuesPerThread、ParallelApplyThreads、ParallelApplyBufferSize 和 ParallelApplyQueuesPerThread。
- 批次套用參數,例如 BatchApplyTimeoutMin、BatchApplyTimeoutMax、BatchApplyMemoryLimit 和 BatchSplitSize。
- 其他與記憶體相關的任務設定,例如 MinTransactionSize、MemoryLimitTotal、MemoryKeepTime 和 StatementCacheSize。
如需上述任務設定和參數的詳細資訊,請參閱 AWS DMS 如何使用記憶體進行移轉?
根據 Amazon CloudWatch 指標的波動向上擴展複寫執行個體類別
檢查複寫執行個體的 FreeMemory 和 SwapUsage 指標。如果 FreeMemory 減少或者 SwapUsage 增加或波動,則考量移至更大的複寫執行個體。
此外,請考量使用記憶體最佳化的執行個體。記憶體最佳化的執行個體適用於記憶體密集型工作負載,例如持續移轉和複寫高輸送量交易。如需關於複寫執行個體大小和類型的詳細資訊,請參閱為移轉選擇合適的 AWS DMS 複寫執行個體。
根據移轉的資料大小和任務所需的記憶體量,將單一任務分割成多個任務
如果複寫執行個體有多項任務,則可以使用 DMS MemoryUsage 指標來觀察任務所消耗的記憶體量。為確定任務在 CDC 階段中保留記憶體的原因,請比較 CDCChangesMemorySource 與 CDCChangesMemoryTarget,然後對相應的端點進行疑難排解。
在複寫執行個體上執行多項任務時,請執行下列一個或多個動作:
- 減少複寫執行個體上執行的任務數目和類型。
- 將失敗的任務移至不同的複寫執行個體,然後再試一次。
- 增加執行個體容量。
對於平行載入多個表格或者許多表格和架構要移轉的任務,請執行下列一個或多個動作:
- 減少平行載入的表格數目。
- 減少移轉的表格和架構總數。
- 在不同的複寫執行個體上使用不同的任務,以卸載某些表格和架構的移轉。
- 增加執行個體容量。
相關資訊
目標中繼資料任務設定
變更程序調整設定
AWS Database Migration Service 指標