在適用於 PostgreSQL 的 Azure 資料庫彈性伺服器中縮放資源
適用範圍:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器
適用於 PostgreSQL 的 Azure 資料庫彈性伺服器同時支援垂直和水平縮放選項。
垂直縮放:您可以透過將更多資源新增至適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體,例如增加執行個體指派的 CPU 和記憶體數目,以進行垂直縮放。 執行個體的網路輸送量取決於您為 CPU 和記憶體選擇的值。
建立適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體之後,您可以獨立變更:
- CPU (虛擬核心)。
- 儲存體數量。
- 備份保留期限。
虛擬核心的數目可以相應增加或減少,但儲存體大小只能增加。 備份保留期限可在 7 到 35 天的範圍內相應增加或減少。 例如,您可以使用多個工具來調整資源,例如, Azure 入口網站 或 Azure CLI。
注意
增加儲存體大小之後,就無法回到較小的儲存體大小。
水平縮放:您可以建立讀取複本以進行水平縮放。 讀取複本可讓您將讀取工作負載調整為個別的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。 它們不會影響主要執行個體的效能和可用性。
當您變更虛擬核心數目或計算層時,會重新啟動執行個體,讓新的伺服器類型生效。 在此期間,系統會切換至新的伺服器類型。 無法建立任何新的連線,且所有未認可的交易皆會復原。
重新啟動伺服器所需的時間取決於重新啟動時的當機復原流程和資料庫活動。 重新啟動通常需要一分鐘或更少時間,但可能需要幾分鐘的時間。 時間取決於起始重新啟動時的交易活動。
如果您的應用程式對計算縮放期間可能發生的即時交易遺失很敏感,建議您實作交易重試模式。
在大部分情況下,調整記憶體不需要重新啟動伺服器,如需詳細資訊,請參閱 適用於 PostgreSQL 的 Azure 資料庫 中的記憶體選項 - 彈性伺服器同樣地,備份保留期間變更是在線作業。 若要改善重新啟動時間,建議您在離峰時間執行調整作業。 這種方法可縮短重新啟動資料庫伺服器所需的時間。
近乎零的停機時間調整
近乎零的停機時間縮放是一項功能,其設計目的是在修改儲存體和計算層時,將停機時間降到最低。 如果您修改虛擬核心數目或變更計算層,伺服器就會重新啟動以套用新的組態。 在此轉換至新伺服器期間,無法建立任何新的連線。
一般而言,進行常規縮放的流程可能需要 2 到 10 分鐘。 有了新的近零停機時間縮放功能,此持續時間會縮減為少於 30 秒。 這會在縮放資源期間減少停機時間,可改善資料庫執行個體的整體可用性。
運作方式
當您在縮放案例中更新適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體時,我們會使用更新的設定來建立新的伺服器 (VM) 複本。 我們會將其與您目前的復本同步處理,並切換至新的複本,中間有 30 秒的中斷。 然後,我們會淘汰舊的伺服器。 此流程完全不需額外費用。
此流程讓更新更順暢,同時將停機時間降到最低,並確保成本效益。 當對儲存體和計算層進行變更時,就會觸發此縮放流程。 不需要客戶採取任何動作 便能使用這項功能。
針對已設定讀取複本的伺服器,縮放作業必須遵循特定順序,以確保資料一致性並將停機時間降到最低。 如需該順序的詳細資料,請參閱 使用讀取複本進行縮放。
注意
近乎零的停機時間縮放流程為預設作業。 遇到下列限制時,系統會切換為一般縮放,相較於接近零的停機時間縮放,這牽涉到更多的停機時間。
精確的停機時間預期
- 停機持續時間:在大部分情況下,停機時間從 10 到 30 秒不等。
- 其他考量:縮放事件之後,會有大約 30 秒的固有 DNS
Time-To-Live
(TTL) 期間。 這個期間不會由縮放流程直接控制。 這是 DNS 行為的標準部分。 從客戶的觀點來看,縮放期間發生的總停機時間可能介於 40 到 60 秒之間。
考量與限制
- 若要讓接近零的停機時間縮放運作,當您使用虛擬網路整合式網路時,啟用委派子網路中 IP 之間的所有輸入/輸出連線。 如果未啟用這些連線,接近零的停機時間縮放流程將無法運作,而且會透過標準縮放工作流程進行縮放。
- 如果客戶訂用帳戶有區域容量限制或配額限制,則近乎零的停機時間縮放會無法運作。
- 近乎零的停機時間縮放不適用於複本伺服器,因為它只在主伺服器上受到支援。 對於複本伺服器,它會自動經過一般縮放流程。
- 如果具有委派子網路的虛擬網路插入伺服器 沒有足夠的可用 IP 位址,則接近零的停機時間縮放會無法運作。 如果您有獨立的伺服器,則需要一個額外的 IP 位址。 針對已啟用 HA 的伺服器,需要兩個額外的 IP 位址。
- 邏輯複寫位置不會在接近零的停機時間容錯移轉事件期間保留。 若要維護邏輯複寫位置,並確保調整作業後的資料一致性,請使用 pg_failover_slot 延伸模組。 如需詳細資訊,請參閱 在彈性伺服器中啟用延伸模組。
- 近乎零的停機時間調整不適用於未記錄的資料表 (英文)。 針對其任何資料使用未記錄資料表的客戶,會在接近零的停機時間調整後遺失這些資料表中的所有資料。