全部產品
Search
文件中心

ApsaraDB RDS:大事務複寫延遲最佳化

更新時間:Apr 02, 2026

MySQL使用的是邏輯複製,一個事務在主庫執行結束後,會發送事務產生的Binlog event到備庫應用,進而保證主備的一致性。在這種架構下,對於耗時間長度的大事務,會導致備庫有顯著的複寫延遲。為解決此問題,RDS MySQL推出了大事務即時應用功能。該功能可以在主庫執行大事務時通知備庫執行大事務,達到主備同時執行大事務的效果,從而基本消除大事務導致的複寫延遲,保障執行個體的高可用。

功能簡介

image

大事務複寫延遲(左圖):在MySQL中,大事務是在主庫提交後才被傳輸到從庫開始應用,因此大事務在從庫的執行時間基本相當於複寫延遲的時間。在此期間,主庫後續提交的其他事務都無法應用,從庫的時效性受到嚴重影響。

大事務即時應用最佳化(右圖):大事務複寫延遲的核心最佳化思路是:讓從庫和主庫同步執行大事務,當大事務在主庫提交時,從庫也跟著提交;當大事務在主庫復原時,從庫也跟著復原。

適用範圍

使用大事務即時應用最佳化功能時,需滿足以下條件:

使用方法

  1. 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。

  2. 在左側導覽列中單擊參數設定

  3. 可修改參數頁簽內搜尋以下參數並配置:

    1. 開啟大事務即時應用最佳化功能

      1. 設定loose_binlog_realtime_apply_long_trx_enabledON

      2. 設定loose_binlog_realtime_transmit_source_enabledON

      3. 設定loose_binlog_realtime_transmit_replica_enabledON

    2. 其他需要配置的參數:

      參數名

      參數說明

      推薦值

      loose_binlog_realtime_replica_long_transaction_limit_size

      定義觸發即時複製的事務大小閾值。當一個事務產生的Binlog超過該值,其即時複製功能便會自動啟用。

      64 MB

      loose_binlog_realtime_enable_log_messag

      是否將即時複製的作業記錄記錄到error log中,建議開啟。

      ON

      loose_binlog_realtime_apply_workers

      控制從庫用來即時複製的Brr Worker線程數。

      8

  4. 單擊確定,然後單擊提交參數,並在彈出的視窗中選擇生效的時間段。參數修改立即生效,無需重啟執行個體。

最佳化效果

在主庫執行一個500萬行的資料匯入事務,可以看到:

  • 最佳化前:事務先在主庫執行,提交後開始在從庫上應用,從庫上複寫延遲的期間和事務執行時間相等。

  • 最佳化後:事務同時在主庫和從庫執行,從庫上沒有出現複寫延遲。

image.png