Azure Database for PostgreSQL 靈活伺服器實例支援垂直與水平縮放選項。
垂直調整
你可以透過在 Azure Database for PostgreSQL 靈活伺服器實例中增加更多資源,來垂直擴展你的實例。 您可以增加或減少指派至它的 CPU 和記憶體數量。
你的實例網路吞吐量取決於你選擇的 CPU 和記憶體值。
當你為 PostgreSQL 靈活伺服器實例建立 Azure 資料庫後,你可以獨立擴展:
- 計算層和 SKU。
- 儲存層和大小。
- 備份保留期限。
您可以在高載、一般用途和記憶體最佳化之間擴大或縮小計算層,以根據您的工作負載需求進行調整。 在這些層級中,你可以從不同世代的多種預設硬體中選擇,CPU數量和安裝記憶體數量各異。 您可以選擇既能滿足資源需求,又能降低並調整營運成本的選項。
你可以擴展或縮減 vCore 數量和已安裝記憶體。 你也可以調整儲存層的上下配置,以符合工作負載所需的吞吐量和 IOPS 需求。 你只能增加儲存空間。 根據您的需求,您可以將備用保留期在7天到35天之間增加或縮短。
你可以透過多個介面來擴展這些資源。 例如,你可以使用 Azure 入口網站 或 Azure CLI。
附註
當您增加指派至執行個體的儲存體大小之後,就無法將其壓縮為較小的大小。
水平調整
Azure Database for PostgreSQL 彈性叢集允許您橫向擴展資料庫,以支援超出單一資料庫實例能力的資料負載。 彈性叢集也使得叢集內所有節點能同時執行平行運算,顯著提升吞吐量並解鎖超低延遲。 彈性叢集提供兩種資料表分片模型:基於列的分片與基於結構的分片。
讀取複本調整
另一種橫向擴展實例的方法是建立 讀取副本。 讀取複本可讓您將讀取工作負載調整為個別的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。 它們不會影響主要執行個體的效能和可用性。
在水平調整的設定中,您也可以垂直調整主要執行個體和讀取複本。
當你更改 vCore 數量或計算層級時,實例會重新啟動,讓新分配的硬體開始執行你的伺服器工作負載。 在此期間,系統會切換至新的伺服器類型。 無法建立任何新的連線,且所有未認可的交易皆會復原。
重新啟動伺服器所需的時間取決於重新啟動時的當機復原流程和資料庫活動。 重新啟動通常需要一分鐘或更少時間,但可能需要幾分鐘的時間。 時間取決於起始重新啟動時的交易活動。
如果您的應用程式對計算調整期間可能發生的即時交易遺失很敏感,請實作交易重試模式。
在大部分情況下,擴充儲存體不需要重新啟動伺服器。 如需詳細資訊,請參閱 適用於 PostgreSQL 的 Azure 資料庫中的儲存體選項。
備份保留期間變更是一項線上作業。
為了縮短重啟時間,建議在非尖峰時段進行規模作業。 這種方法可縮短重新啟動資料庫伺服器所需的時間。
近乎零的停機時間縮放
近乎零的停機時間縮放是一項功能,其設計目的是在修改儲存體和計算層時,將停機時間降到最低。 如果你修改 vCore 數量或更改運算層級,伺服器會重新啟動並套用新的設定。 在此轉換至新伺服器期間,無法建立任何新的連線。
一般而言,進行常規縮放的流程可能需要 2 到 10 分鐘。 有了近乎零的停機時間縮放功能,此持續時間會縮減為少於 30 秒。 這會在縮放資源期間減少停機時間,可改善資料庫執行個體的整體可用性。
運作方式
當您在縮放案例中更新適用於 PostgreSQL 的 Azure 資料庫彈性伺服器時,服務會以更新的設定為您的伺服器建立新的虛擬機器。 接著它會與目前執行你實例的虛擬機同步,接著會短暫中斷切換到新的虛擬機。 然後背景程序會排除舊的虛擬機器。
此流程能確保更新無縫且停機時間最小,且在更換儲存或運算層級時自動觸發。 你不需要採取任何行動來使用這項功能。 此功能受到 Azure Database for PostgreSQL 高可用性 (HA) 和非高可用性彈性伺服器執行個體的支援。
對於採用水平縮放的設定 (由一個主伺服器及一個或多個讀取複本),縮放作業必須依特定順序執行,以確保資料一致性並將停機時間降至最低。 如需該順序的詳細資料,請參閱使用讀取複本進行縮放 (部分內容可能是機器或 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 個虛擬核心調整伺服器的計算大小,則無法達到近乎零的停機時間。