在 適用於 PostgreSQL 的 Azure 資料庫 中升級讀取複本 - 彈性伺服器

適用範圍:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

升級是指命令複本結束其復本模式並轉換成完整讀寫作業的程式。

重要

升級作業不是自動的。 如果主伺服器失敗,系統將不會獨立切換到讀取複本。 升級作業一律需要用戶動作。

複本的升級可以透過兩種不同的方式完成:

升階至主伺服器

此動作會將復本提升為主伺服器的角色。 在此程式中,目前的主伺服器會降級為複本角色,並交換其角色。 若要成功升級,必須將 目前主要複本設定為寫入器端點的虛擬端點 ,以及要升級為讀取器端點的複本。 只有在讀取器端點設定中包含目標複本時,升級才會成功。

此圖說明升級前的伺服器組態,以及升級作業成功完成之後產生的狀態。

顯示升級至主伺服器作業的圖表。

升級至獨立伺服器並從複寫中移除

當您選擇此選項時,複本會升級為成為獨立伺服器,並從複寫程式中移除。 因此,主要伺服器和升級的伺服器都會作為兩部獨立的讀寫伺服器運作。 請注意,雖然可以設定虛擬端點,但不需要進行這項作業。 即使讀取器端點先前指向它,新升級的伺服器已不再是任何現有虛擬端點的一部分。 因此,如果應用程式應該連線到應用程式,就必須更新應用程式的 連接字串,以導向至新升級的複本。

此圖顯示伺服器在成功成為獨立伺服器之前如何設定伺服器,以及其設定。

此圖顯示升級至獨立伺服器並從復寫作業中移除。

重要

升級至獨立伺服器並從復寫動作中移除與先前的升級功能回溯相容。

重要

伺服器對稱:若要使用升級至主伺服器作業成功升級,主要和復本伺服器都必須有相同的層級和記憶體大小。 例如,如果主要複本有 2vCore 且複本有 4vCore,唯一可行的選項是使用「升階至獨立伺服器並從複寫中移除」動作。 此外,他們需要為配置共用記憶體的伺服器參數共用相同的值

對於這兩種升階方法,還有更多選項需要考慮:

  • 已規劃:此選項可確保數據在升級之前會同步處理。 它會套用所有擱置的記錄,以確保數據一致性,再接受客戶端連線。

  • 強制:此選項是針對區域中斷等案例中的快速復原所設計。 一旦伺服器處理達成最接近一致狀態所需的 WAL 檔案,伺服器就會開始運作,而不是等候同步處理主要數據的所有數據。 如果您使用此選項來升級複本,當您從主要複本取消連結時,延遲會指出遺失多少數據。

重要

強制升級選項專為解決區域性中斷而設計,在這種情況下,它會略過所有檢查,包括伺服器對稱需求,並繼續升級。 這是因為它會優先處理災害案例的立即伺服器可用性。 不過,如果檔中指定的讀取複本需求,特別是不符合伺服器對稱需求,則不允許在區域關閉案例之外使用強制選項,因為它可能會導致復寫中斷等問題。

瞭解如何將 復本升階為主要複本 ,並 升級至獨立伺服器,並從複寫中移除。

設定管理

讀取複本會被視為控制平面設定的個別伺服器。 此方法提供讀取調整案例的彈性。 不過,針對災害復原目的使用複本時,用戶必須確定設定是想要的。

升級作業不會延續特定的組態和參數。 以下是一些值得注意的:

  • PgBouncer升級程式期間不會復寫內建的 PgBouncer 連線共用器設定和狀態。 如果在主要複本上啟用 PgBouncer,但在複本上卻未啟用,在升級后,複本上仍會停用。 如果您想要在新升級的伺服器上使用 PgBouncer,您必須在升級動作之前或之後加以啟用。
  • 異地備援備份記憶體:不會傳輸異地備份設定。 由於複本無法啟用異地備份,因此升級的主要複本(先前稱為複本)在升級之後就沒有它。 此功能只能在標準伺服器的建立時間啟用(而非複本)。
  • 伺服器參數:如果它們的值在主要複本和讀取複本上不同,在升級期間將不會變更。 請務必注意影響共用記憶體大小的參數在主要和複本上必須具有相同的值。 此需求詳述於 [伺服器參數 ] 區段中。
  • Microsoft Entra 驗證:如果主要複本已設定 Microsoft Entra 驗證,但複本已設定為 PostgreSQL 驗證,則在升級之後,複本不會自動切換至 Microsoft Entra 驗證。 它會保留 PostgreSQL 驗證。 用戶必須在升級程式之前或之後,在升級的複本上手動設定 Microsoft Entra 驗證。
  • 高可用性 (HA):如果您在升級后需要 HA,則必須在剛升級的主伺服器上設定它 ,才能在角色逆轉之後進行設定。

考量

升級期間的伺服器狀態

在「已規劃」和「強制升級」案例中,伺服器(主要和複本)都必須處於「可用」狀態。 如果伺服器的狀態是「可用」以外的任何專案(例如「更新」或「重新啟動」),則升級通常無法在沒有問題的情況下繼續。 不過,發生區域性中斷時,就會發生例外狀況。

在這類區域中斷期間,不論主伺服器目前的狀態為何,都可以實作強制升級方法。 這種方法可讓您快速採取行動,以回應潛在的區域災害,略過伺服器可用性的正常檢查。

請注意,如果前主伺服器在升級複本期間無法復原,唯一的選項就是刪除先前的主伺服器並重新建立複本伺服器。

在未修改的區域升級期間,多個複本可見度

處理多個復本時,如果主要區域缺少 配對區域,則必須考慮特殊考慮。 如果區域性中斷影響主要複本,新升級的複本將不會自動辨識任何其他複本。 雖然應用程式仍可導向至升級的複本以進行持續作業,但無法辨識的複本在中斷期間仍會中斷連線。 這些額外的復本只會在還原原始的主要區域之後重新關聯並繼續其角色。

常見問題集

  • 如果我的主伺服器已啟用高可用性(HA),我可以升級複本嗎?

    是,無論您的主伺服器是否啟用HA,您都可以升級其讀取複本。 將讀取複本升級至主伺服器的能力與主要伺服器的HA組態無關。

  • 如果我已啟用 HA 的主要和讀取複本,而且我升級複本,然後切換回原始主要複本,伺服器是否仍在 HA 中?

    否,我們在初始升級期間停用HA,因為我們不支援啟用HA的讀取複本。 將讀取複本升級為主要複本表示原始主要複本正在將其角色變更為複本。 如果您要切換回,您必須在原始主伺服器上啟用HA。