為了將資料從來源引擎遷移至目標引擎,我使用 AWS Database Migration Service (AWS DMS)。但是,任務在沒有任何錯誤的情況下失敗。
簡短描述
當 AWS DMS 任務失敗時,系統會在任務日誌中產生一個項目。任務日誌會透過錯誤訊息 (]E:) 或警告訊息 (]W:) 提供失敗原因的相關資訊。在某些情況下,AWS DMS 任務可能會在沒有任何錯誤或警告的情況下失敗,因此很難進行疑難排解。
通常,AWS DMS 任務會因下列其中一項原因而失敗:
複寫執行個體資源競用
CPU 及記憶體是遷移任務所需的兩項最重要的資源:
- CPU 必須先將來源資料類型轉換為 AWS DMS 類型的資料類型,然後將其轉換為目標資料類型。
- 因為 AWS DMS 會建立來源和目標的串流,所以需要記憶體。AWS DMS 將資訊儲存在複寫執行個體記憶體的串流緩衝區中。
內部監控系統也會使用 CPU 和記憶體來監控複寫執行個體。CPU 或記憶體的任何競用都可能會導致遷移任務以無訊息方式失敗。
複寫執行個體儲存體已滿狀態
如果複寫執行個體儲存體已滿,則遷移任務可能會在沒有任何錯誤的情況下以無訊息方式失敗。
發生內部錯誤
如果存在內部錯誤,AWS DMS 任務也可能會以無訊息方式失敗。依預設,記錄的任務日誌中不會顯示內部錯誤。
解決方案
**注意事項:**如果您的任務使用非關聯式資料庫管理系統,則您可能想要在沒有平行設定的情況下執行任務。如需詳細資訊,請參閱目標中繼資料任務設定。
檢閱您的 DMS、來源和目標日誌以取得詳細資訊。在任務以無訊息方式失敗之後,檢查任務日誌最後一個項目的時間。然後,在記錄失敗的同一時間內,檢閱複寫執行個體的 CPU、記憶體及磁碟使用率。
如果您看到低 FreeableMemory 及高 SwapUsage 的組合,則複寫執行個體可能會存在記憶體競用。如需詳細資訊,請參閱 AWS Data Migration Service 指標。
若要檢視 CloudWatch 指標,請完成下列步驟:
- 開啟 AWS DMS 主控台。
- 在導覽窗格中,選擇資料庫遷移任務。
- 選擇失敗的任務名稱。
- 從概觀詳細資訊區段中,記下複寫執行個體的名稱。
- 從導覽窗格中,選擇複寫執行個體。
- 選擇您記下的複寫執行個體名稱。
- 在遷移任務指標區段中,檢閱 CPUUtilization、SwapUsage、FreeableMemory 和 FreeStorageSpace 指標。
- 若要檢視更多詳細資訊,請將游標移至指標,然後選擇更多選項圖示。
- 選擇在指標中檢視。這會開啟 CloudWatch 主控台。
在 CloudWatch 主控台中,檢視任務失敗時指標的使用率。
如果您看到持續存在的 CPU 或記憶體競用,請減少複寫執行個體執行的任務數。若要減少任務數,您可以啟動新的複寫執行個體,並在多個複寫執行個體之間分配任務。或者,將複寫執行個體向上擴展為執行個體類型。
**注意事項:**T2 執行個體可在 CPU 額度耗盡後提供基準效能。例如,T2.micro 執行個體會提供 10% 的基準效能。驗證 CPU 使用率時,請考慮執行個體類型。如需詳細資訊,請參閱爆量效能執行個體的主要概念和定義。
在識別無訊息失敗的來源之後,重新啟動任務。如果 CPU、記憶體或磁碟空間沒有競用,任務可能會因內部錯誤而失敗。若要對內部錯誤進行疑難排解,請開啟詳細偵錯。檢閱在錯誤之前發生的日誌,然後開啟相關日誌的詳細偵錯。例如,如果最後日誌來自 TARGET_APPLY,請開啟 SORTER, TARGET_APPLY 的詳細偵錯。開啟詳細偵錯之後,重新啟動任務,然後檢閱任務日誌,以識別任務失敗的原因。
**注意事項:**此問題可能是肇因於驗證問題而非您的資料。若要測試驗證元件是否為導致問題的原因,請執行僅驗證任務以查看問題是否發生。
相關資訊
對 AWS Database Migration Service 中的遷移任務進行疑難排解
如何取得 AWS 的技術支援?
為什麼我的 AWS DMS 複寫資料庫執行個體處於儲存體已滿狀態?