我的 AWS Database Migration Service (AWS DMS) 遷移任務很慢。我想提高具有大型二進位物件 (LOB) 資料的 AWS DMS 任務速度。
解決方法
完整 LOB 模式
當您使用完整 LOB 模式時,AWS DMS 會遷移 LOB,無論其大小為何。由於未定義最大 LOB 大小,AWS DMS 一次會遷移一個 LOB。這可能會拖慢您任務的速度。儘管遷移速度較慢,但 AWS DMS 不會截斷資料。
若要提高使用完整 LOB 模式處理多個資料表任務的效能,請確定資料庫中最大 LOB 的大小。然後,當最大 LOB 大小為幾 MB 或更小時,請使用有限 LOB 模式。
如果您的 LOB 大於幾 MB,請使用完整 LOB 模式建立單獨的 AWS DMS 任務。最佳實務是在新的複寫執行個體上建立單獨的任務來遷移資料表。
有限 LOB 模式
當您使用有限 LOB 模式時,您可以指定 LOB 欄資料的最大大小。這可讓 AWS DMS 分配記憶體,然後大量套用 LOB。如果 LOB 欄的大小超過您在任務中指定的大小,則 AWS DMS 會截斷資料。AWS DMS 接著會將警告傳送到 AWS DMS 日誌檔案。
有限 LOB 模式可改善效能,但在執行任務之前,您必須識別來源資料的最大 LOB 大小。然後,在使用有限 LOB 模式時指定最大 LOB 大小參數。若要管理任務,最佳實務是為複寫執行個體分配足夠的記憶體。
內嵌 LOB 模式
當您使用內嵌 LOB 模式時,您可以同時複寫小型和大型 LOB。這可讓您遷移 LOB,而不會截斷資料或降低任務效能。
首先,指定 InlineLobMaxSize 參數的值,該值僅在完整 LOB 模式設定為 true 時可用。AWS DMS 任務會以內嵌方式傳輸小型 LOB,且任務效率更高。然後,AWS DMS 會從來源資料表執行查詢,以在完整 LOB 模式下遷移大於指定大小的 LOB。不過,內嵌 LOB 模式只能在完整載入階段運作。
**重要:**當您指定任務設定時,必須設定 InlineLobMaxSize 參數。
範例任務設定 JSON 檔案:
{ "TargetMetadata": {
"TargetSchema": "abc",
"SupportLobs": true,
"FullLobMode": true,
"LobChunkSize": 64,
"LimitedSizeLobMode": false,
"LobMaxSize": 0,
"InlineLobMaxSize": 32,
"LoadMaxFileSize": 0,
"ParallelLoadThreads": 0,
"ParallelLoadBufferSize": 0,
"BatchApplyEnabled": false,
"TaskRecoveryTableEnabled": false,
"ParallelLoadQueuesPerThread": 0,
"ParallelApplyThreads": 0,
"ParallelApplyBufferSize": 0,
"ParallelApplyQueuesPerThread": 0
}
相關資訊
遷移大型二進位物件 (LOB)
目標中繼資料任務設定
AWS Database Migration Service 的最佳實務