當您面臨數據庫讀取壓力大幅增加時,云數據庫RDS PostgreSQL支持創建只讀實例來擴展讀取能力,提高應用的整體吞吐量。只讀實例使用物理復制技術,能夠實時同步主實例數據,確保數據的一致性。
關于只讀實例的更多介紹,請參見PostgreSQL只讀實例簡介。
前提條件
您已創建PostgreSQL主實例,主實例滿足以下條件:
實例版本:目標實例版本仍在售賣中,已停售版本不支持創建只讀實例,詳情請參見已停售版本。
實例系列:高可用系列。
實例規格:
云盤:無特殊要求。
本地盤:規格為獨享套餐(8核32 GB以上)。
計費方式:包年包月或按量付費,Serverless計費方式的實例暫不支持創建只讀實例。
創建PostgreSQL只讀實例前,請在基本信息頁面確認實例系列及規格信息。如果不滿足要求,且需要創建只讀實例時,請單擊變更配置,將基礎系列變更為高可用系列后再創建只讀實例,具體操作,請參見變更配置。
注意事項
創建只讀實例時,必須選擇與主實例相同的VPC,否則將會創建失敗并且退款。
只能在主實例內創建只讀實例,不能將已有實例切換為只讀實例。
由于創建只讀實例時是從備實例復制數據,因此不會影響主實例。
只讀實例的參數不繼承主實例上的參數設置,會生成默認的參數值,可以在只讀實例的控制臺上進行修改。
重要新通用型只讀實例的參數會繼承主實例上的參數設置。新通用型只讀實例的更多信息,請參見RDS PostgreSQL只讀實例規格列表。
創建的只讀實例存儲類型與主實例一致。
本地盤只讀實例的規格和存儲空間不能低于主實例。
云盤版只讀實例的規格建議與主實例保持一致,或大于等于主實例規格的1/2,避免只讀實例性能與主實例相差過大而導致的復制延遲、OOM等情況。
云盤版只讀實例存儲空間不能低于主實例,且如果主實例內存大于只讀實例內存,主實例變配時會重啟只讀實例。
創建的只讀實例內存需滿足如下要求:
主實例內存范圍
只讀實例內存要求
(0 GB~64 GB]
至少為主實例內存的1/4
(64 GB~256 GB]
至少為主實例內存的1/6
(256 GB~9999 GB]
至少為主實例內存的1/8
本地盤主實例最多創建5個只讀實例,云盤主實例最多創建32個只讀實例。
本地盤實例的只讀實例為高可用架構,云盤實例的只讀實例為單節點架構(沒有備節點)。
說明單節點架構沒有備節點,因此無法保障可用性,建議您購買多個只讀實例,使用libpq或JDBC實現自動故障轉移,詳情請參見自動故障轉移和讀寫分離,您也可以通過數據庫代理實現讀寫自動分離,更多信息,請參見什么是數據庫代理。
創建只讀實例會產生費用,支持包年包月和按量付費兩種方式計費。包年包月費用請以實際購買頁為準,按量付費具體費用請參見只讀實例規格列表。
創建只讀實例
訪問RDS實例列表,在上方選擇地域,然后單擊目標實例ID。
在實例分布區域找到只讀實例,單擊添加。
說明舊版控制臺請在右側單擊添加只讀實例。
設置只讀實例的參數。
參數
說明
計費方式
包年包月:長期使用RDS只讀實例推薦使用包年包月(一次性付費),在頁面左下角選擇購買時長
按量付費:短期使用RDS只讀實例,請選擇按量付費(按小時付費)。您可以先創建按量付費的只讀實例,確認實例符合要求后再轉包年包月。
產品類型
僅當主實例存儲類型為ESSD云盤或通用云盤時,才支持選擇倚天版。
標準版和倚天版的更多信息,請參見產品類型。
可用區
可用區是地域中的一個獨立物理區域,不同可用區之間沒有實質性區別。相比單可用區,多可用區能提供可用區級別的容災。
實例規格
通用規格:通用型的實例規格,獨享被分配的內存和I/O資源,與同一服務器上的其他通用型實例共享CPU和存儲資源。
獨享規格:獨享或獨占型的實例規格。獨享型指獨享被分配的CPU、內存、存儲和I/O資源。獨占型是獨享型的頂配,獨占整臺服務器的CPU、內存、存儲和I/O資源。
說明每種規格都有對應的CPU核數、內存、最大連接數和最大IOPS。本地盤主實例的只讀實例規格不能低于主實例。規格詳情請參見RDS PostgreSQL只讀實例規格列表。
存儲空間
存儲空間包括數據空間、系統文件空間、wal文件空間和事務文件空間。調整存儲空間時最小單位為5GB。
說明各規格的存儲空間大小,請參見RDS PostgreSQL只讀實例規格列表。
云盤主實例的只讀實例存儲空間不能低于主實例,且如果主實例內存大于只讀實例內存,主實例變配時會重啟只讀實例。
本地盤主實例的只讀實例存儲空間不能低于主實例。
單擊下一步:實例配置,設置如下參數。
參數
說明
網絡類型
默認與主實例網絡類型、VPC和主節點交換機保持一致。
實例釋放保護
如果計費方式為按量付費,則可以為按量付費實例開啟實例釋放保護,防止按量付費實例被意外釋放。更多信息,請參見開啟和關閉實例釋放保護。
資源組
默認與主實例資源組相同,不支持修改。
時區
默認與主實例時區保持一致。
SLR 授權
無需配置,購買主實例時已授權。SLR授權的相關信息,請參見【產品/功能變更】2022年10月10日起創建RDS PostgreSQL實例需SLR授權。
實例描述
設置實例名稱,方便管理。
標簽
支持創建實例時為實例綁定標簽,實例創建后,可根據標簽進行篩選。更多信息,請參見根據標簽篩選實例。
單擊下一步:確認訂單。
勾選服務協議,單擊去支付,根據提示完成支付。
只讀實例創建時間與主實例存儲類型及磁盤大小相關,請參考以下預估時間,耐心等待只讀實例創建。
主實例存儲類型為SSD云盤,創建時間約為一次全量備份時間+20分鐘。
主實例存儲類型為ESSD云盤,創建時間約為20分鐘。
創建只讀實例期間對主實例無影響,創建成功后會在主實例中產生一個WAL Sender的進程,用于發送WAL日志到只讀實例。
RDS PostgreSQL通過快照的方式搭建只讀實例,與數據量大小無關。
查看只讀實例
查看只讀實例的延遲時間
只讀實例同步主實例的數據時,可能會有一定的延遲。您可以在只讀實例的基本信息頁面查看延遲時間。
相關API
API | 描述 |
創建RDS只讀實例 |
常見問題
Q:只讀實例的計費方式可以轉化嗎?
Q:變更只讀實例的配置、釋放只讀實例、轉化只讀實例計費方式會影響主實例嗎?
A:不會。
Q:主實例上創建的賬號在只讀實例上可以用嗎?
A:主實例創建的賬號會同步到只讀實例,只讀實例無法管理賬號。賬號在只讀實例上只能進行讀操作,不能進行寫操作。
Q:只讀實例可以轉變為常規實例嗎?比如作為容災實例?
A:暫不支持。
Q:能否對只讀實例的數據進行備份?實例的自動備份能否在只讀實例上進行?
A:無需對只讀實例進行備份,備份在主實例上進行,由于RDS PostgreSQL的備份使用快照備份,對主實例沒有性能開銷。
Q:只讀實例是否支持并行復制?
A:RDS PostgreSQL采用的是物理流復制,基于WAL日志文件同步加回放來實現數據復制能力,效率高,無需使用并行復制。
Q:事務日志的清除機制是怎樣的?
A:RDS PostgreSQL的WAL日志備份完成后,由內核在Checkpoint操作中自動清理。
Q:如何通過只讀實例延遲時間判斷復制是否正常?
A:通常情況下只讀實例延遲時間在1秒以內,如果超過1秒,說明數據同步延遲,極端場景下也可能出現斷開的場景。
Q:復制延遲通常是什么原因引起的?