AWS Database Migration Service (AWS DMS) 正在產生交換檔案,並佔用我資料庫執行個體的儲存空間。我想知道什麼是交換檔案,以及如何減少交換檔案的產生。
簡短說明
當 SOURCE_CAPTURE 程序的產生速度比 TARGET_APPLY 元件更快時,SORTER 元件會將積壓事件快取到磁碟或交換檔案中。或者,當長交易超過最大記憶體分配 (MemoryLimitTotal) 和時間 (MemoryKeepTime) 時,記憶體中的交易或交換檔案將移至複寫執行個體磁碟。
**注意:**交換檔案不同於作業系統 (OS) 在伺服器記憶體不足時建立的交換檔案。因此,該資料不包含在 Amazon CloudWatch 中的 SwapUsage 指標中。
解決方法
您可能會在任務日誌中看到類似以下內容的訊息:
「[SORTER ]I: 已暫停從來源讀取。交換檔案使用的總儲存空間超過了限制 1048576000 位元組 (sorter_transaction.c:110) 00000849: 2021-04-28T07:19:20:987696 [SORTER ]: 已恢復從來源讀取 (sorter_transaction.c:116)]」
AWS DMS 版本 3.4.2 及更新版本包含可防止儲存空間已滿的功能。此功能可設定複寫執行個體的儲存磁碟區上,可以擁有的最大交換檔案數量。當 SORTER 元件使用的交換檔案達到最大大小 1 GB 時,您就會收到上述訊息。
當達到配額時,SORTER 元件會暫停來源擷取。然後,AWS DMS 會將交換檔案中的變更套用到目標資料庫。在 DMS 套用交換的變更或交換檔案小於 1 GB 後,AWS DMS 將恢復來源擷取。
注意:當 AWS DMS 套用變更時,任務會繼續執行。SORTER 元件只會暫停來源擷取。
減少交換檔案的產生
為了減少或避免在 AWS DMS 執行個體上產生交換檔案,請檢查 AWS DMS 任務中導致目標延遲高的原因。
若要改善 TARGET_APPLY,請根據您的引擎類型使用批次套用模式和 ParallelApplyThreads。
如果您在來源處遇到長時間執行的交易,請在來源資料庫中使用頻繁提交。
當複寫執行個體具有可用記憶體時,請增加 MemoryLimitTotal 和 MemoryKeepTime,這樣變更可以在記憶體中停留更長的時間,直到變更交換到磁碟上。確保增加兩個參數,以便 SORTER 元件不會達到配額。
相關資訊
變更程序調整設定