本文說明如何就地升級 AlloyDB for PostgreSQL 資料庫的主要版本,讓您將資料庫升級至較高版本,不必遷移資料或取代現有執行個體。
PostgreSQL 社群會定期發布新主要版本,其中包含新功能、效能改善項目和安全性強化措施。PostgreSQL 發布新的主要版本後,AlloyDB 會新增相容版本的支援。 如要讓資料庫保持在最新狀態,您可以升級至較高的主要版本,藉此升級 AlloyDB 叢集。您可以透過這項就地升級功能升級叢集,也可以遷移資料至新的 AlloyDB 叢集。
詳情請參閱「資料庫版本政策」。
就地升級主要版本是升級叢集主要版本的有效方式,原因如下:
- 升級後,AlloyDB 會保留叢集和執行個體詳細資料,以及執行個體名稱、IP 位址和資料庫標記等資料庫設定。
- 您不需要變更應用程式連線字串。
- 所有叢集執行個體 (主要和讀取集區) 都會透過同一項作業升級。
就地升級主要版本的工作流程
在叢集上啟動升級時,AlloyDB 會執行下列動作:
- 執行升級前檢查,找出可能影響升級的不相容項目。
- 準備升級主要版本,包括建立叢集的內部副本。
- 導致主要執行個體無法使用。休息時間開始。您仍可透過讀取集區執行讀取作業。
- 啟動升級前備份。
- 升級主要執行個體。
- 導致讀取集區執行個體無法使用。
- 讓主要執行個體可供使用。停機時間結束。
- 啟動升級後備份。
- 升級讀取集區執行個體。
通過升級前檢查後,系統會將叢集複製到同一專案的內部叢集。複製叢集所需的備份和還原作業,每 TB 資料約需 10 分鐘。
在複製作業期間,您可以繼續使用原始叢集。 複製作業完成後,升級程序就會開始。主要執行個體升級完成前,您無法讀取或寫入主要執行個體。預計停機時間通常為 20 分鐘到 1 小時,主要取決於資料庫結構定義和物件數量。
主要執行個體升級後,讀取集區執行個體會無法使用。系統會嘗試同時升級所有讀取集區執行個體。預計停機時間約為 20 分鐘。
如果在升級主要執行個體前的任何步驟失敗,AlloyDB 會自動還原所有變更。
主要執行個體升級後,叢集版本會升級至目標版本,且之後發生任何失敗都不會觸發回溯。舉例來說,如果一或多個讀取集區執行個體升級失敗,AlloyDB 不會回溯叢集。在這些情況下,請與 Google Cloud CLI 支援團隊聯絡。
下表列出不同資料庫大小的叢集完成升級所需時間的約略估計值:
資料庫大小 | 升級前 (無停機時間) | 主要停機時間 | 讀取集區停機時間 | 總持續時間 |
---|---|---|---|---|
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 控制台中的「取消升級」按鈕顯示為灰色,就表示無法取消作業。使用 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) 時,必須有版本備份檔。升級後備份或在主要執行個體升級後啟動的其他備份完成前,升級後的叢集無法進行復原作業。