如果您在使用RDS PostgreSQL數據庫代理過程中存在疑問或遇到問題,可以參考本文查看解決方案。
關于RDS數據庫代理的使用問題和更多相關信息,歡迎加入用戶釘釘群(106730000316)進行咨詢、反饋和交流 。
什么是數據庫代理?
數據庫代理是位于數據庫服務端和應用服務端之間的網絡代理服務,用于轉發應用服務端訪問數據庫時的所有請求,提供讀寫分離、事務拆分等高級功能,具有高可用、高性能、可運維、簡單易用等特點。更多信息,請參見什么是數據庫代理。
通用型代理和獨享型代理有什么區別?
代理個數和代理規格是什么關系?
代理規格 = 單位代理規格 × 代理個數
單位代理規格固定為2核CPU。
例如,代理實例的代理個數為3 ,則對應的代理規格為2核 x 3 = 6核
。
代理個數用于計算最終數據庫代理的性能規格,不代表實際代理個數。開通的數量越多,數據庫代理可承擔的數據庫負載越高。
代理個數和代理連接地址個數有關系嗎?
沒有。
每個RDS PostgreSQL實例在開通數據庫代理后,都可以申請1~7個代理連接地址(原代理終端),每個代理連接地址都可以申請1個內網地址和1個外網地址,更多信息,請參見新建數據庫代理連接地址。
數據庫代理是否會占用主實例的QPS或者TPS?
不會
數據庫代理地址和常規地址是否是一個地址?
不是。
常規地址:正常的業務讀寫地址,通過該地址發送的所有請求只會路由到該實例。
數據庫代理地址:可根據用戶的SQL請求,自動判斷讀請求或寫請求,并分發到主實例或只讀實例,實現讀寫分離,減輕主實例的壓力。
開通數據庫代理后,實例原來的地址是否會被收回?
不會收回。
數據庫代理是什么架構,有故障切換機制嗎?
數據庫代理采用雙主節點的高可用架構,流量連接按照1:1比例分發到兩個節點當中,如果其中一個節點發生故障,將由另一個節點承擔全部流量,并會自動觸發故障節點重搭恢復任務,以確保數據庫服務的高可用性。
數據庫代理的性能會隨著代理連接地址個數(原代理終端)的增多而提升嗎?
不會。數據庫代理的性能與只讀實例個數、代理個數(代理規格)相關:
增加只讀實例,可以提升數據庫代理的讀請求處理能力。
根據只讀實例個數,增加代理個數(代理規格),可提升數據庫代理的性能。
說明推薦代理規格計算方式:
推薦代理規格 =
推薦代理個數*單位代理規格
。其中,單位代理規格固定為2核。通用型代理規格最高為16核,獨享型代理規格最高為32核。推薦代理個數計算方式如下:
代理類型
高可用系列實例
通用型推薦代理個數
(主實例CPU核數+該主實例下所有只讀實例CPU核數)/4
(向上取整)。獨享型推薦代理個數
(主實例CPU核數+該主實例下所有只讀實例CPU核數)/8
(向上取整)。
例如,RDS高可用系列實例:主實例為8核CPU,該實例下有1個4核CPU的只讀實例,則通用型代理推薦代理個數為
(8+4)/8=2個
,即推薦代理規格=2 *2 核=4核
。
數據庫代理地址的前綴可以修改嗎?
可以。
數據庫代理地址的前綴和端口都可以修改,具體操作,請參見設置數據庫代理連接地址。
數據庫代理對用戶的連接數有限制嗎?支持多少并發連接?
數據庫代理本身并沒有最大連接數的限制,連接數的限制是由數據庫中計算節點的規格決定。
當前數據庫代理支持的連接數為min{主實例最大連接數, 只讀實例最大連接數}
。
例如:主實例規格的最大連接數為1600,只讀實例規格的最大連接數為800,則數據庫代理支持的連接數為800。
RDS PostgreSQL數據庫代理暫不支持連接池。
主實例和只讀實例的最大連接數,請參見RDS PostgreSQL主實例規格列表和RDS PostgreSQL只讀實例規格列表。
如何使SQL讀請求轉發到主實例,不被數據庫代理轉發到只讀實例?
您可以在讀請求的SQL中加入/*FORCE_MASTER*/
,指定該請求被轉發到主實例。如果需要轉發到只讀實例,則使用/*FORCE_SLAVE*/
。
示例:
/*FORCE_MASTER*/ SELECT * FROM table_name;
為什么修改后的讀權重沒有生效?
修改讀權重后,新建的連接才會根據新權重進行分配,已存在的連接不會斷開重連。
當故障實例恢復后,數據庫代理需要多長時間可以正常提供服務?
數據庫代理會實時監控實例健康狀態,當實例故障時,將會在2秒內識別到故障實例,當實例恢復時,數據庫代理即可正常提供服務。
如何查看專有網絡類型的內網代理地址的vpc Id和vswitch Id?
在數據庫代理頁面,連接信息區域,找到目標內網地址,點擊圖標,即可查看。