共用方式為


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

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

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

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

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

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

處理

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

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

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

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

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

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

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

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

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

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

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

  • 適用於 PostgreSQL 的 Azure 資料庫彈性伺服器會在升級期間擷取資料庫的快照集。 升級開始之前會建立快照集。 如果升級失敗,系統會自動將資料庫從快照集還原至其狀態。

  • PostgreSQL 16 引進角色型安全性 措施。 在「適用於 PostgreSQL 的 Azure 資料庫」彈性伺服器的主要版本升級之後,在獲授與 ADMIN 選項—之伺服器上—建立的第一位使用者,現在對於基本維護作業的其他角色會有系統管理權限。

升級/移轉後

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

postgres=> analyze;
ANALYZE

主要版本升級記錄

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

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

  • 若要開啟此功能,請將 logfiles.download_enable 設定為 ON
  • 若要定義記錄檔的保留天數,請使用 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 儲存體。

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

  • 就地主要版本升級不支援某些擴充功能,而且升級某些擴充功能有一些限制。 所有 PostgreSQL 版本都不支援下列擴充功能:Timescaledbpgauditdblinkorafcepg_partmanpostgres_fdw

  • 打算升級已安裝 PostGIS 擴充功能的伺服器時,請將 search_path 伺服器參數設定為明確包含:

    • PostGIS 擴充功能的結構描述。
    • 相依於 PostGIS 的擴充功能。
    • 做為下列擴充功能相依性的擴充功能:postgispostgis_rasterpostgis_sfcgalpostgis_tiger_geocoderpostgis_topologyaddress_standardizeraddress_standardizer_data_usfuzzystrmatch (postgis_tiger_geocoder 需要)。
  • 不支援使用邏輯複寫位置設定的伺服器。

  • 使用 SSDv2 記憶體的伺服器不支援主要版本升級。

下一步