開通了讀寫分離功能后,您可以根據需求修改讀寫分離的延遲閾值和讀權重分配。

更多詳情請參見讀寫分離參數說明

本文僅適用于開通共享代理模式的實例。非共享代理模式的用戶請參見什么是數據庫代理

操作步驟

  1. 登錄RDS管理控制臺
  2. 在頁面左上角,選擇實例所在地域。選擇地域
  3. 找到目標實例,單擊實例ID。
  4. 在左側導航欄中單擊數據庫連接數據庫代理
  5. 選擇讀寫分離標簽頁。
  6. 單擊設置讀寫分離,修改設置信息。
    表 1. 讀寫分離參數說明
    參數 說明
    延遲閾值 只讀實例同步主實例數據時允許的最長延遲時間。為避免只讀實例讀取的數據長時間和主實例不一致,當一個只讀實例的延遲時間超過設置的延遲閾值,則不論該只讀實例的讀權重是多少,讀請求都不會轉發至該只讀實例。

    取值范圍為0秒到7200秒。受限于SQL的執行情況,只讀實例有一定的幾率會出現延遲,建議該值不小于30秒。

    讀權重分配 實例的讀權重越高,處理的讀請求越多。例如,1個主實例和3個只讀實例的讀權重分別為0、100、200、0,則表示主實例不處理讀請求(寫請求仍然自動發往主實例),前兩個只讀實例按照1:2的比例處理讀請求,第三個只讀實例不會收到任何讀寫請求。
    • 系統分配:系統根據實例規格自動分配各個實例的讀權重。后續該主實例下新增的只讀實例也會自動按照系統分配的權重加入到讀寫分離鏈路中,無需手動設置。更多信息請參見系統權重分配規則
    • 自定義:手動設置各個實例的讀權重,范圍為0至10000。后續該主實例下新增只讀實例的讀權重默認為0,需要您手動修改。
    說明
    • 若只讀實例被刪除,則該實例的權重會被自動移除,其他實例權重不變。
    • 不支持為已經設置只讀實例延時復制時間的實例設置權重。
  7. 單擊確定

下一步(可選)

常見問題

  • 只讀實例的讀權重設置為0后,還可以訪問它嗎?

    通過讀寫分離地址無法訪問讀權重為0的只讀實例,只能使用只讀實例的內網/外網地址進行訪問。通常這種需求是為了將某個只讀實例僅提供給某個業務使用。

  • 為什么修改后的權重沒有生效 ?

    修改權重后,新建的連接才會根據新權重進行分配,已存在的連接不會斷開重連。

  • 為什么各節點的負載不符合配置的讀權重?

    若各節點的負載與配置的讀權重不同,主要檢查如下兩個方面:

    • 請求語句是否包含了事務。包含了事務的所有請求只會路由到主庫(包括事務讀)。
    • 是否只用了讀寫分離地址連接數據庫。如果使用了主實例地址或者只讀實例地址,這些地址收到的請求不會按權重分配。
  • 為什么主庫讀權重為0時還有大量讀請求路由到主庫?

    若讀請求路由到主庫,主要由如下兩個原因造成:

    • 包含了事務的所有請求只會路由到主庫(包括事務讀)。
    • 所有被分配讀權重的只讀實例處于不可用狀態或其延遲時間超過了您所設置的延遲閾值,系統將其判定為不可用狀態。

相關文檔

讀寫分離常見問題

相關API

API 描述
修改讀權重和延遲閾值 修改RDS實例延遲閾值和讀權重。