日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

如何解決增量遷移延遲或同步延遲

本文介紹導致DTS增量遷移延遲或同步延遲過大的常見原因,以及相應的解決方法。您可以逐一排查這些原因,并根據解決方法恢復任務。

問題描述

DTS在進行增量任務時,遷移任務或同步任務出現延遲超過1000毫秒的情況。

可能原因

  • 原因1:任務規格受限,且任務數據量過大。DTS的增量遷移或同步鏈路的各個規格有對應的RPS限制,當源庫的數據寫入量過大時(例如有大事務),達到了規格限流,就會導致任務延遲。

    您可以在控制臺上查看任務流量或者執行一鍵診斷功能,檢查當前鏈路是否到達相應規格的限制。查看方式,請參見監控任務性能、同步鏈路規格遷移鏈路規格。

  • 原因2:目標實例規格受限:目標庫實例的寫入性能已達到瓶頸。

    以目標實例為RDS MySQL為例,您可以在RDS控制臺的監控與報警頁面查看實例的CPU、內存、I/O等資源負載情況,并對照相應的實例規格,確認是否達到實例規格的限制。查看方式,請參見查看監控信息RDS MySQL標準版(原X86)主實例規格列表

  • 原因3:可能存在熱點更新,影響性能。無主鍵表可能會導致熱點行更新;源庫對單一表或者單一行的高頻度更新也會導致熱點更新。

    以源實例為RDS MySQL為例,您可以通過SQL洞察和審計頁面查看源實例執行的事務情況,判斷是否存在熱點更新,比如事務集中在某幾張特定的表上。查看方式,請參見SQL洞察和審計。

  • 原因4:源庫實例的讀取性能達到瓶頸或網絡帶寬被打滿。

    以源實例為RDS MySQL為例,您可以在RDS控制臺的監控與報警頁面查看實例的IOPS等指標,并對照相應的實例規格,確認是否達到實例規格的限制。查看方式,請參見查看監控信息RDS MySQL標準版(原X86)主實例規格列表。

  • 原因5:當DTS無法連接數據庫或由于其他報錯導致DTS寫入數據至目標庫發生異常時,DTS會進行多次重試,從而表現出同步延遲。此時您可以在控制臺上查看任務是否處于重試中狀態,并單擊查看原因并修復,查看重試原因并進行相應修復。

    比如,當目標庫實例為云原生數據倉庫 AnalyticDB MySQL 版(AnalyticDB for MySQL)時,如源庫執行變更字段類型的DDL操作,會導致DTS同步任務出現延遲,處于重試中狀態。這是因為目標實例云原生數據倉庫 AnalyticDB MySQL 版(AnalyticDB for MySQL)不支持字段類型變更,而DTS會在云原生數據倉庫 AnalyticDB MySQL 版(AnalyticDB for MySQL)中多次重試DDL操作且執行失敗,從而表現出同步延遲。

  • 原因6:目標庫帶有觸發器(trigger),會產生較大延遲。

    以MySQL數據庫為例,可以使用如下命令查看是否有觸發器。

    select * from information_schema.triggers where trigger_schema='<數據庫名>';
  • 原因7:在目標庫被同步的表存在既有主鍵又有唯一鍵等表結構復雜的情況下,當目標庫存在除DTS外其他業務寫入時可能會導致目標庫存在鎖表和慢SQL。

  • 原因8:源庫存在大量DDL操作。

    以源實例為RDS MySQL為例,您可以通過SQL洞察和審計頁面查看源實例中DDL的執行情況,判斷是否存在大量DDL操作。查看方式,請參見SQL洞察和審計

  • 原因9:遠距離傳輸導致的網絡延遲。

    您可以在任務列表頁面查看源庫和目標庫實例所屬地域。

  • 原因10:源庫和目標庫中的表結構不一致。

  • 原因11:控制臺顯示可能有延遲。

解決方法

  • 解法1:升級DTS增量遷移或同步的鏈路規格,提高遷移性能。更多信息,請參見升級任務的鏈路規格。

  • 解法2:升級目標庫的實例規格,提高目標庫實例寫入性能。

    以目標庫實例為RDS MySQL為例,參考變更配置,升級實例配置。

  • 解法3:在存在熱點行更新的情況時,等待熱點更新完畢。或者從業務上考慮盡量避免熱點更新。

  • 解法4:提升源庫實例性能或升級網絡帶寬。

    以目標庫實例為RDS MySQL為例,參考變更配置,升級實例配置。

  • 解法5:在控制臺上查看具體的報錯內容,并進行相應修復。

    本案例中,DTS在目標實例云原生數據倉庫 AnalyticDB MySQL 版(AnalyticDB for MySQL)中多次執行DDL操作且失敗,導致DTS同步延遲,并進入重試狀態。如需恢復同步任務,建議您先將執行過DDL的表移出同步對象,待延時降0毫秒后,再刪除目標庫對應表,最后將該表重新加入同步對象。操作方式,請參見DTS同步數據常見問題修改同步對象

  • 解法6:建議刪除或禁用目標庫的觸發器(trigger)。

    以MySQL數據庫為例,可以使用命令DROP TRIGGER [ IF EXISTS ] [數據庫名] <觸發器名>;刪除觸發器。

    說明

    如源庫存在觸發器,您可參考源庫存在觸發器時如何配置同步作業,來配置DTS任務。

  • 解法7:檢查目標庫實例的鎖狀態、慢SQL以及表結構,然后調整目標庫寫入或者目標庫表結構來解決目標庫寫入鎖以及慢SQL問題。

    本案例以MySQL數據庫為例,介紹鎖狀態和慢SQL、庫表結構的查詢方式,以及對應解決方式。

    • 鎖狀態和慢SQL:使用命令SHOW PROCESSLIST;查詢鎖表或者慢SQL進程,然后執行命令KILL [CONNECTION | QUERY]thread_id刪除該進程。

    • 庫表結構:使用命令show create table <數據庫名>.<表名>;查看表結構。以存在唯一鍵為例,請從業務上評估是否需要該唯一鍵,如不需要,則可以在目標庫執行命令alter table <數據庫名>.<表名> drop index <唯一鍵名>;進行刪除。

  • 解法8:如DTS任務已經成功運行,則源庫應避免執行批量DDL。如必須執行DDL,請盡量在業務低峰期執行。

    說明

    建議您在配置任務階段不勾選無需同步的DDL。

  • 解法9:遠距離傳輸導致的網絡延遲無法避免,您可以通過專線接入源庫和目標庫實例減少延遲。

  • 解法10:根據實際情況調整表結構,確保源庫和目標庫的表結構保持一致。

  • 解法11:請再觀察幾分鐘,并刷新控制臺。

更多信息

全量任務慢的解決方案,請參見如何解決全量遷移慢或遷移卡住

說明

若本文無法解決您的問題,您可以通過釘釘(釘釘通訊客戶端下載地址)進入到DTS客戶交流釘釘群(群號:68325004196或68640008972),進行咨詢。