如要採用新的 PostgreSQL 功能、提升效能及強化安全性,而不必遷移資料或變更應用程式連線字串,可以對 AlloyDB for PostgreSQL 叢集執行就地主要版本升級。
PostgreSQL 社群會定期發布新的主要版本,提供新功能、提升效能並強化安全性。PostgreSQL 發布新的主要版本後,AlloyDB 會新增對相容版本的支援。如要讓資料庫保持在最新狀態,您可以將 AlloyDB 叢集升級至更高的主要版本。您可以使用這項就地升級功能,或將資料遷移至新的 AlloyDB 叢集,藉此升級叢集。
詳情請參閱「資料庫版本政策」。
就地升級主要版本是升級叢集主要版本的有效方法,原因如下:
- 升級後,AlloyDB 會保留叢集和執行個體詳細資料,以及資料庫設定,例如執行個體名稱、IP 位址和資料庫旗標。
- 您不需要變更應用程式連線字串。
- 所有叢集執行個體 (主要和讀取集區) 都會在同一項作業中升級。
此外,如果角色成員資格的授予者不存在 (孤立成員資格),系統不會保留該成員資格。如果任何叢集在 pg_auth_members 目錄中含有孤立成員資格,這些角色成員資格會在升級後遺失。詳情請參閱「為叢集做好主要版本升級準備」。
就地升級主要版本工作流程
當您開始升級叢集時,AlloyDB 會執行下列動作:
- 執行升級前檢查,找出可能影響升級作業的不相容問題。
- 準備升級主要版本,包括建立叢集的內部複製。
- 主要執行個體無法使用。休息時間開始。但仍可透過讀取集區執行讀取作業。
- 啟動升級前備份。
- 升級主要執行個體。
- 讀取集區執行個體無法使用。
- 讓主要執行個體可供使用。休息時間結束。
- 啟動升級後備份。
- 升級讀取集區執行個體。
通過升級前檢查後,叢集會複製到同一專案中的內部叢集。複製叢集所需的備份和還原作業,每 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_PRECHECKPG_UPGRADE_CHECKPREPARE_FOR_UPGRADEPRIMARY_INSTANCE_UPGRADEREAD_POOL_INSTANCES_UPGRADEROLLBACK(僅適用於讀取集區升級前發生故障的情況)CLEANUP
這些階段可能出現的狀態包括:
NOT_STARTEDIN_PROGRESSSUCCESSFAILEDCANCEL_IN_PROGRESSCANCELLED
取消升級
在主要執行個體升級期間,您可以在特定時間點前取消升級作業。超過這個時間點後,就無法取消升級。
在 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),必須有可用的版本備份。升級後的叢集必須等到升級後備份完成,或主要執行個體升級後啟動的其他備份完成,才能進行復原。