共用方式為


適用於 PostgreSQL 的 Azure 資料庫 中的主要版本升級 - 彈性伺服器

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

適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器支援PostgreSQL 16、15、14、13、12和11版。 Postgres 社群會發行新的主要版本,其中包含大約一年一次的新功能。 此外,每個主要版本都會以次要版本的形式收到定期的錯誤修正。 次要版本升級包括與現有應用程式回溯相容的變更。 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器會在客戶的維護期間定期更新次要版本。

主要版本升級比次要版本升級更為複雜。 它們可以包含內部變更,以及可能無法與現有應用程式回溯相容的新功能。

適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器具有一項功能,只要按下即可執行伺服器就地主要版本升級。 這項功能可將存取伺服器的使用者和應用程式中斷降至最低,藉此簡化升級程式。

就地升級會在升級主要版本之後保留伺服器名稱和目前伺服器的其他設定。 它們不需要資料遷移或變更應用程式 連接字串。 就地升級的速度比資料移轉更快,而且停機時間更短。

處理

以下是就地主要版本升級的一些重要考慮:

  • 在就地主要版本升級的過程中,適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器會執行預先檢查程式,以識別可能導致升級失敗的任何潛在問題。

    如果預先檢查找到任何不相容狀況,它會建立記錄事件,顯示升級前置檢查失敗,並顯示錯誤訊息。

    如果預先檢查成功,適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器會停止服務,並在開始升級之前先進行隱含備份。 如果發生升級錯誤,服務可以使用此備份,將資料庫實例還原至其舊版。

  • 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器會使用 pg_upgrade 工具來執行就地主要版本升級。 此服務提供彈性來略過版本,並直接升級至更新版本。

  • 在啟用高可用性的伺服器就地主要版本升級期間,服務會停用HA、在主伺服器上執行升級,然後在升級完成後重新啟用HA。

  • 大部分擴充功能會在就地主要版本升級期間自動升級至更新版本,但 有些例外狀況

  • 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器就地主要版本升級的程式會自動部署最新支援的次要版本。

  • 就地主要版本升級是導致短暫停機的離線作業。 停機時間通常少於15分鐘。 持續時間可能會根據所涉及的系統數據表數目而有所不同。

  • 升級前長時間執行的交易或高工作負載可能會增加關閉資料庫所需的時間,並增加升級時間。

  • 在就地主要版本升級成功之後,沒有自動方式可還原為舊版。 不過,您可以在升級之前執行時間點復原 (PITR),以還原舊版資料庫實例。

升級/移轉後

完成主要版本升級之後,建議您在每個資料庫中執行 ANALYZE 命令來重新整理 pg_statistic 數據表。 否則,您可能會遇到效能問題。

postgres=> analyze;
ANALYZE

主要版本升級記錄

主要版本升級記錄 (PG_Upgrade_Logs) 提供詳細 伺服器記錄的直接存取權。 整合到 PG_Upgrade_Logs 升級程式有助於確保更順暢且更透明的轉換至新的PostgreSQL版本。

您可以使用下列伺服器參數,以與伺服器記錄相同的方式設定主要版本升級記錄:

  • 若要開啟此功能,請將 設定 logfiles.download_enableON
  • 若要定義記錄檔的保留天數,請使用 logfiles.retention_days

安裝升級記錄

若要開始使用 PG_Upgrade_Logs,您可以透過 Azure 入口網站 或 Azure CLI 來設定記錄。 選擇最適合您工作流程的方法。

您可以透過 UI 存取伺服器記錄的升級記錄。 您可以在該處即時監視 PostgreSQL 主要版本升級的進度和詳細數據。 此 UI 提供集中式位置來檢視記錄,讓您更輕鬆地追蹤和疑難解答升級程式。

使用升級記錄的優點

  • 深入解析診斷PG_Upgrade_Logs 提供升級程式的寶貴見解。 它會擷取所執行作業的詳細資訊,並反白顯示任何發生的錯誤或警告。 此層級的詳細數據有助於診斷和解決升級期間可能發生的問題,以便更順暢地轉換。
  • 簡化的疑難解答:透過直接存取這些記錄,您可以快速識別並解決潛在的升級障礙,減少停機時間,並將對作業的影響降到最低。 記錄可藉由啟用更有效率且有效的問題解決,作為重要的疑難解答工具。

限制

如果就地主要版本升級的預先檢查作業失敗,升級會失敗,並出現下列所有限制的詳細錯誤訊息:

  • 就地主要版本升級目前不支援讀取複本。 如果您有做為讀取複本的伺服器,則必須先刪除複本,才能在主伺服器上執行升級。 升級之後,您可以重新建立複本。

  • 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器需要在部署彈性伺服器之虛擬網路內傳送和接收目的地埠 5432 和 6432 的流量,以及 Azure 儲存體 進行記錄封存。

    如果您設定網路安全組 (NSG) 來限制其已部署子網內彈性伺服器的流量,請務必允許流量流向子網內的目的地埠 5432 和 6432。 允許流量使用服務標籤 Azure 儲存體 作為目的地來 Azure 儲存體。

    如果未正確設定網路規則,在主要版本升級之後,不會自動啟用HA,而且您應該手動啟用HA。 修改 NSG 規則以允許目的地埠和記憶體的流量,並在伺服器上啟用 HA 功能。

  • 就地主要版本升級不支援特定擴充功能,而且升級某些擴充功能有一些限制。 所有 PostgreSQL 版本不支援下列延伸模組:Timescaledb、、pgauditdblinkorafce、、、pg_partmanpostgres_fdw

  • 當您升級已安裝 PostGIS 延伸模組的伺服器時,請將伺服器參數設定 search_path 為明確包含:

    • PostGIS 延伸模組的架構。
    • 相依於 PostGIS 的延伸模組。
    • 做為下列延伸模組相依性的延伸模組:、、、、postgis_tiger_geocoder、、、address_standardizer_data_usfuzzystrmatchpostgispostgis_rasterpostgis_sfcgalpostgis_tiger_geocoderaddress_standardizerpostgis_topology
  • 不支援使用邏輯複寫位置設定的伺服器。

下一步