資料庫就地升級主要版本總覽

如要採用新的 PostgreSQL 功能、提升效能及強化安全性,而不必遷移資料或變更應用程式連線字串,可以對 AlloyDB for PostgreSQL 叢集執行就地主要版本升級。

PostgreSQL 社群會定期發布新的主要版本,提供新功能、提升效能並強化安全性。PostgreSQL 發布新的主要版本後,AlloyDB 會新增對相容版本的支援。如要讓資料庫保持在最新狀態,您可以將 AlloyDB 叢集升級至更高的主要版本。您可以使用這項就地升級功能,或將資料遷移至新的 AlloyDB 叢集,藉此升級叢集。

詳情請參閱「資料庫版本政策」。

就地升級主要版本是升級叢集主要版本的有效方法,原因如下:

  • 升級後,AlloyDB 會保留叢集和執行個體詳細資料,以及資料庫設定,例如執行個體名稱、IP 位址和資料庫旗標。
  • 您不需要變更應用程式連線字串。
  • 所有叢集執行個體 (主要和讀取集區) 都會在同一項作業中升級。

此外,如果角色成員資格的授予者不存在 (孤立成員資格),系統不會保留該成員資格。如果任何叢集在 pg_auth_members 目錄中含有孤立成員資格,這些角色成員資格會在升級後遺失。詳情請參閱「為叢集做好主要版本升級準備」。

就地升級主要版本工作流程

當您開始升級叢集時,AlloyDB 會執行下列動作:

  1. 執行升級前檢查,找出可能影響升級作業的不相容問題。
  2. 準備升級主要版本,包括建立叢集的內部複製。
  3. 主要執行個體無法使用。休息時間開始。但仍可透過讀取集區執行讀取作業。
  4. 啟動升級前備份。
  5. 升級主要執行個體。
  6. 讀取集區執行個體無法使用。
  7. 讓主要執行個體可供使用。休息時間結束。
  8. 啟動升級後備份。
  9. 升級讀取集區執行個體。

通過升級前檢查後,叢集會複製到同一專案中的內部叢集。複製叢集所需的備份和還原作業,每 TB 資料約需 10 分鐘。

在複製作業期間,您可以繼續使用原始叢集。複製作業完成後,升級程序就會開始。在主要執行個體升級之前,無法對其執行讀取和寫入作業。預期停機時間通常為 20 分鐘到一小時,主要取決於資料庫結構定義和物件數量。

主要執行個體升級後,讀取集區執行個體會無法使用。系統會同時嘗試升級所有讀取集區執行個體。停機時間預計約為 20 分鐘。

如果在主要執行個體升級前,主要版本升級作業在任何步驟失敗,AlloyDB 會自動復原所有變更。

主要執行個體升級後,叢集版本會升級至目標版本,此後發生任何失敗都不會觸發復原。舉例來說,如果一或多個讀取集區執行個體升級失敗,AlloyDB 不會復原叢集。在這種情況下,請聯絡 Google Cloud 支援團隊。

下表列出不同資料庫大小的叢集完成升級所需的大致時間:

資料庫大小 升級前 (無需停機) 主要停機時間 讀取集區停機時間 總持續時間
100 GB 約 15 分鐘 約 20 分鐘 約 20 分鐘 約 1 小時
1 TB 約 30 分鐘 約 20 分鐘 約 20 分鐘 約 1 小時 15 分鐘
4 TB 約 1 小時 約 20 分鐘 約 20 分鐘 約 1 小時 45 分鐘
16 TB 約 3 小時 約 20 分鐘 約 20 分鐘 約 3 小時 45 分鐘
32 TB 約 5 小時 30 分鐘 約 20 分鐘 約 20 分鐘 約 6 小時 15 分鐘
64 TB 約 11 小時 約 20 分鐘 約 20 分鐘 約 12 小時
128 TB 約 21 小時 30 分鐘 約 20 分鐘 約 20 分鐘 約 22 小時 15 分鐘

詳情請參閱「就地升級資料庫主要版本」。

升級狀態

您可以監控就地升級資料庫主要版本的狀態。

升級程序包含下列階段:

  • ALLOYDB_PRECHECK
  • PG_UPGRADE_CHECK
  • PREPARE_FOR_UPGRADE
  • PRIMARY_INSTANCE_UPGRADE
  • READ_POOL_INSTANCES_UPGRADE
  • ROLLBACK(僅適用於讀取集區升級前發生故障的情況)
  • CLEANUP

這些階段可能出現的狀態包括:

  • NOT_STARTED
  • IN_PROGRESS
  • SUCCESS
  • FAILED
  • CANCEL_IN_PROGRESS
  • CANCELLED

取消升級

在主要執行個體升級期間,您可以在特定時間點前取消升級作業。超過這個時間點後,就無法取消升級。

在 Google Cloud 控制台中,如果「Cancel upgrade」(取消升級) 按鈕顯示為灰色,表示無法取消作業。您可以使用 Google Cloud CLI 或 REST API,查看升級狀態中的 upgradeClusterStatus,判斷是否可以取消升級:

  • 如果 cancellable 為 true,則可取消升級。
  • 如果 cancellable 為 false 或狀態中缺少該值,則無法取消升級。

升級前後自動備份

執行主要版本升級時,AlloyDB 會自動建立下列連續備份,其中 XX 是來源主要版本,YY 是目標主要版本。

  • 升級前備份會在升級開始前立即建立。這個備份會使用 pre-upgrade-bkp-pgXX-pgYY-<uuid> 格式命名。您可以使用這個備份還原至升級前的狀態。請注意,還原作業並非就地執行,而是會建立新的叢集。
  • 主要執行個體升級後,系統會建立升級後備份。這個備份會使用 post-upgrade-bkp-pgXX-pgYY-<uuid> 格式命名。

持續備份是累加制,也就是說,備份只會儲存與上次持續備份相比有異動的資料。這種做法可縮減備份的大小和成本 (資源),並加快備份建立程序。詳情請參閱「資料備份與復原總覽」。

查看備份清單時,升級備份會列為 CONTINUOUS 類型。詳情請參閱「查看備份清單」。

如要執行時間點復原 (PITR),必須有可用的版本備份。升級後的叢集必須等到升級後備份完成,或主要執行個體升級後啟動的其他備份完成,才能進行復原。

後續步驟