適用於 PostgreSQL 的 Azure 資料庫 靈活伺服器支援垂直與水平縮放選項。
垂直調整
透過在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器上增加更多資源,垂直擴展你的伺服器。 您可以增加或減少指派至它的 CPU 和記憶體數量。
伺服器的網路吞吐量取決於你選擇的 CPU 和記憶體值。
當你建立一個 適用於 PostgreSQL 的 Azure 資料庫 靈活伺服器後,你可以獨立擴展:
- 計算層和 SKU。
- 儲存層和大小。
- 備份保留期限。
在「可突發擴充」、「一般用途」和「記憶體最佳化」之間向上或向下調整計算層,以因應你的工作負載需求。 在這些層級中,可從不同世代的預先配置硬體中選擇,擁有不同數量的 CPU 與安裝記憶體。 選擇能支持您資源需求的選項,同時降低營運成本並依需求調整。
向上或向下調整 vCore 數量和已安裝記憶體容量。 你也可以調整儲存層的上下配置,以符合工作負載所需的吞吐量和 IOPS 需求。 你只能增加儲存空間。 根據您的需求,您可以將備用保留期在7天到35天之間增加或縮短。
透過多種介面來擴展這些資源。 例如,你可以使用 Azure 入口網站或 Azure CLI。
備註
當你增加伺服器分配的儲存空間後,就無法再縮小到更小的容量。
水平調整
適用於 PostgreSQL 的 Azure 資料庫 彈性叢集讓你能橫向擴展資料庫,支援超出單一資料庫伺服器能力的資料負載。 彈性叢集也具備在叢集內所有節點同時執行平行運算的潛力,這大幅提升吞吐量並解鎖超低延遲。 彈性叢集提供兩種資料表分片模型:基於列的分片與基於結構的分片。
讀取複本調整
你可以透過建立 讀取副本來橫向擴展伺服器。 讀取複本可讓您將讀取工作負載擴展至獨立的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器。 它們不會影響主伺服器的效能和可用性。
在水平擴展的架構中,您也可以垂直擴展主要伺服器和讀取複本。
當你更改 vCore 數量或計算層級時,伺服器會重新啟動,讓新分配的硬體開始執行你的伺服器工作負載。 在此期間,系統會切換至新的伺服器類型。 您無法建立新的連線,所有未提交的交易都會被復原。
重新啟動伺服器所需的時間取決於重新啟動時的當機復原流程和資料庫活動。 重新啟動通常需要一分鐘或更少時間,但可能需要幾分鐘的時間。 時間取決於起始重新啟動時的交易活動。
如果您的應用程式對計算調整期間可能發生的即時交易遺失很敏感,請實作交易重試模式。
在大部分情況下,擴充儲存體不需要重新啟動伺服器。 如需詳細資訊,請參閱 適用於 PostgreSQL 的 Azure 資料庫中的儲存體選項。
備份保留期間變更是一項線上作業。
為了縮短重啟時間,建議在非尖峰時段進行規模作業。 這種方法可縮短重新啟動資料庫伺服器所需的時間。
近乎零的停機時間調整
近乎零的停機時間縮放是一項功能,其設計目的是在修改儲存體和計算層時,將停機時間降到最低。 如果你修改 vCore 數量或更改運算層級,伺服器會重新啟動並套用新的設定。 在轉換到新伺服器期間,你無法建立新的連線。
通常,在正常擴展情況下,此過程大約需要 2 到 10 分鐘。 透過幾乎零的停機時間縮放功能,將持續時間縮短至不到30秒。 這會在縮放資源期間減少停機時間,可改善資料庫執行個體的整體可用性。
運作方式
當您在擴展情境下更新適用於 PostgreSQL 的 Azure 資料庫彈性伺服器時,服務會使用更新組態為伺服器建立一個新的虛擬機器。 接著它會與目前運行你伺服器的虛擬機同步,接著會短暫中斷切換到新的虛擬機。 背景程序會消除舊的虛擬機。
此流程能確保更新無縫且停機時間最小,且在更換儲存或運算層級時自動觸發。 你不需要採取任何行動來使用這項功能。 此功能支援 HA 及非 HA 的 適用於 PostgreSQL 的 Azure 資料庫 靈活伺服器。
對於採用水平縮放的設定 (由一個主伺服器及一個或多個讀取複本),縮放作業必須依特定順序執行,以確保資料一致性並將停機時間降至最低。 如需該順序的詳細資料,請參閱使用讀取複本進行縮放 (部分內容可能是機器或 AI 翻譯)。
備註
近乎零的停機時間縮放是預設的作業類型。 遇到下列限制 (部分內容可能是機器或 AI 翻譯) 時,系統會切換為一般縮放,相較於接近零的停機時間縮放,這牽涉到更多的停機時間。
精確的停機時間預期
- 停機持續時間:在大部分情況下,停機時間從 10 到 30 秒不等。
-
其他考量:縮放事件之後,會有大約 30 秒的固有 DNS
Time-To-Live(TTL) 期間。 縮放程序不會直接控制此期間。 這是 DNS 行為的標準部分。 從客戶的觀點來看,縮放期間發生的總停機時間可能介於 40 到 60 秒之間。
考慮事項與限制條件
- 若要讓接近零的停機時間縮放運作,當您使用虛擬網路整合式網路時,允許委派子網路中 IP 位址之間的所有輸入/輸出連線 (簡體中文)。 如果你不允許這些連線,幾乎無停機時間的縮放流程就無法運作,縮放會透過標準縮放工作流程進行。
- 如果您的訂用帳戶有區域容量限制或配額限制,則近乎零的停機時間縮放會無法運作。
- 近乎零的停機時間縮放不適用於複本伺服器,因為它只在主伺服器上受到支援。 針對複本伺服器,縮放作業會自動經過一般程序。
- 如果虛擬網路插入的伺服器 (簡體中文) 在委派的子網路中沒有足夠的可用 IP 位址,近乎零的停機時間縮放就無法運作。 如果您有獨立的伺服器,則需要一個額外的 IP 位址。 啟用高可用性的伺服器則需要兩個額外的 IP 位址。
- 邏輯複寫位置不會在接近零的停機時間容錯移轉事件期間保留。 若要維護邏輯複寫位置,並確保調整作業後的資料一致性,請使用 pg_failover_slot 延伸模組。 如需詳細資訊,請參閱在彈性伺服器的執行個體中啟用 pg_failover_slots 擴充 (部分內容可能是機器或 AI 翻譯)。
- 近乎零的停機時間調整不適用於未記錄的資料表 (英文)。 如果你使用無日誌的資料表來存放任何資料,那麼在經過幾乎零停機時間的縮放後,這些資料表中的所有資料都會消失。
- 如果您要從可高載層級的 1 或 2 個虛擬核心調整伺服器的計算大小,則無法達到近乎零的停機時間。