為了將資料庫代理應用於讀寫分離、高並發讀等情境中,您可以為資料庫代理串連地址配置不同的存取原則,不同的業務使用具有對應存取原則的串連地址訪問RDS PostgreSQL執行個體,滿足您的業務需求。
前提條件
已開通資料庫代理服務,具體請參見開通資料庫代理。
注意事項
請確保已建立唯讀執行個體。沒有隻讀時,可以開啟資料庫代理功能,但無法配置代理串連地址存取原則。建立方法,請參見建立PostgreSQL唯讀執行個體。
操作步驟
- 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列單擊資料庫代理。
在串連資訊地區,找到目標代理串連地址(終端)ID,單擊目標代理串連地址右側操作列的修改配置。
在彈出的對話方塊內,根據業務需要修改代理串連地址的相關配置。
參數
說明
串連描述
自訂代理串連地址的描述,最多支援30個字元。
讀寫屬性
設定當前代理串連地址的讀寫屬性。
讀寫(讀寫分離)(預設):同時串連主執行個體和唯讀執行個體,可以接收寫請求。
唯讀(不串連主執行個體,無法接收寫請求):僅串連唯讀執行個體,不接收寫請求。
說明修改讀寫屬性後,只對建立串連生效,已有的串連依舊保持原來的模式,更多資訊,請參見什麼是讀寫分離、設定讀寫屬性和讀權重。
您需要已經建立PostgreSQL唯讀執行個體,才可以設定讀寫屬性,使用讀寫分離功能。
延遲閾值
設定唯讀執行個體同步主執行個體資料時允許的最長延遲時間,取值範圍為0秒到3600秒。
受限於SQL的執行情況,唯讀執行個體有一定的幾率會出現延遲,建議該值不小於30秒。
說明僅在讀寫屬性為讀寫(讀寫分離)時可選。
若一個唯讀執行個體的延遲時間超過該閾值,則不論該唯讀執行個體的權重是多少,讀請求都不會轉寄至該唯讀執行個體。
事務拆分
事務拆分功能,固定為開啟。事務拆分能夠將事務內寫操作之前的讀請求轉寄到唯讀執行個體,降低主執行個體負載。
說明該功能暫不支援關閉。更多資訊,請參見事務拆分。
讀權重分配
設定資料庫各個執行個體的讀請求權重:
系統分配:系統根據執行個體規格自動分配各個執行個體的讀權重。後續該主執行個體下新增的唯讀執行個體也會自動按照系統分配的權重加入到讀寫分離鏈路中,無需手動設定。更多資訊,請參見系統預設讀權重分配規則。
自訂:手動設定各個執行個體的讀權重,範圍為0~10000。後續該主執行個體下新增唯讀執行個體的讀權重預設為0,需要您手動修改。
說明執行個體的讀權重越高,處理的讀請求越多。例如,假設主執行個體有3個唯讀執行個體,主執行個體讀權重為0,唯讀執行個體讀權重分別為100、200和200,則表示主執行個體不處理讀請求(寫請求仍然自動發往主執行個體),3個唯讀執行個體按照
1:2:2
的比例處理讀請求。修改本參數即時生效,不會造成業務閃斷。修改完成後,已存在的串連不會斷開重連且讀權重不變,只有新串連才會根據新權重進行分配。
唯讀執行個體釋放後將自動移除權重。
執行個體宕機或者延遲逾時將自動移除權重,執行個體恢複後權重也將自動回復。
您可以在讀請求的SQL中加入
/*FORCE_MASTER*/
,指定該請求被轉寄到主執行個體。如果需要轉寄到唯讀執行個體,則使用/*FORCE_SLAVE*/
。樣本:
/*FORCE_MASTER*/ SELECT * FROM table_name;
單擊確定。
相關文檔
相關API
API | 描述 |
查詢資料庫代理詳情。 | |
查詢資料庫代理的串連地址資訊。 | |
修改資料庫代理的串連地址存取原則。 |