為盡量降低 AlloyDB for PostgreSQL 正式環境工作負載的風險,您可以使用暫存叢集測試新功能、效能和功能,再將更新套用至正式環境系統。測試叢集是生產環境叢集的副本,可為維護更新程序新增一層控制機制。使用預先發布叢集測試維護更新,有助於在非正式環境中找出並解決潛在問題。這種做法可降低實際執行系統發生停機和效能降低的風險。
AlloyDB 的維護更新作業會定期進行,通常每月一次。 更新內容包括新功能、錯誤修正、資料庫相容性升級,以及安全性相關修正。雖然 AlloyDB 版本可向前相容,但建議您在暫存環境中測試新版本,確保正式叢集上重要應用程式的資料庫穩定性與可預測性。
如要使用暫存叢集,請按照下列高階步驟操作:
- 設定測試叢集。
- 在正式環境叢集上設定維護期間。
- 管理測試叢集更新。
- 管理正式版叢集更新。
這種 AlloyDB 維護作業的暫存驗證方法,可確保生產環境保持穩定、高效能和安全,同時享有最新的 AlloyDB 功能和修補程式。
下圖顯示預先發布叢集和正式版叢集之間的關係,以及更新程序的運作流程:
如要進一步瞭解維護更新如何與 AlloyDB 叢集搭配運作,請參閱維護作業總覽。如要進一步瞭解如何管理維護期間,請參閱「管理 PostgreSQL 適用的 AlloyDB 叢集維護期間」。
事前準備
您使用的 Google Cloud 專案必須啟用 AlloyDB 存取權。
如要設定測試叢集,您必須建立或已擁有現有的 AlloyDB 正式叢集。詳情請參閱「建立叢集及其主要執行個體」。
您必須在使用的專案中具備下列其中一個 IAM 角色: Google Cloud
roles/alloydb.admin
:AlloyDB 管理員預先定義的 IAM 角色roles/owner
:擁有者基本 IAM 角色roles/editor
:編輯者基本 IAM 角色
如果您不具備上述任一角色,請與機構管理員聯絡,並要求存取權。
設定測試叢集
如要成功採用「先進行預先發布」策略,請務必確保預先發布叢集與實際工作環境類似,且預先發布叢集會先於實際工作環境收到更新。如果您未在預先發布叢集上設定維護期間,系統就會採用預先發布優先策略。AlloyDB 會先更新沒有維護期間的叢集。
從正式環境備份建立測試叢集
部署與實際工作環境相符的預備叢集,並確保預備叢集與實際工作環境叢集使用相同的 AlloyDB 版本、設定和資料。
為確保測試叢集與實際工作環境完全相同,請使用 restore
指令將實際工作環境資料庫複製到測試叢集,並確認資料相似度和設定相符。此外,也建議您將測試和實際工作環境分別放在不同的專案中。
您可以使用下列兩種方法建立正式版備份:
- 完整還原現有正式版叢集的備份,建立新的暫存叢集。這個方法不涉及資料庫復原。不過,視備份時間表而定,資料最多可能會有 24 小時的延遲。如要使用這個方法,請參閱從儲存的備份還原叢集。
- 對現有正式版資料庫備份執行時間點復原 (PITR),包括復原至最新時間,藉此建立新的測試叢集。這個選項可提供最新資料,而且方法較為簡單。不過,視上次 PITR 備份時間而定,將資料還原或復原至指定時間可能需要較長時間。如要使用這個方法,請參閱「使用時間點復原 (PITR)」。
確認預先發布叢集未設定維護期間
請勿為測試叢集設定維護期間。根據預設,新建立的 AlloyDB 叢集 (包括從備份還原的叢集) 不會設定維護期間。這是您暫存環境的正確狀態。AlloyDB 會先更新未排定維護期間的叢集,再更新已排定維護期間的叢集。
如要確認未設定維護期間,請按照下列步驟操作:
控制台
前往「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下叢集。系統會開啟「總覽」頁面。
在「總覽」頁面的「維護」部分,查看叢集的維護時間範圍詳細資料。
選用:在「系統洞察」頁面中,您可以查看維護作業狀態詳細資料,例如「事件時間軸」。
如要查看 Unified Maintenance 管理畫面,請在搜尋列中輸入「Cloud Hub maintenance」,然後選取「Maintenance」。在這個頁面中,您可以查看維護作業摘要、Google 控管的維護作業,以及預定維護作業的詳細資料。
gcloud
如要使用 gcloud CLI,您可以安裝及初始化 Google Cloud CLI,也可以使用 Cloud Shell。
gcloud alloydb clusters describe STAGING_CLUSTER_ID \ --region=LOCATION_ID \ --project=PROJECT_ID
在輸出內容中尋找
maintenanceSchedule
欄位。如果未設定維護時段,這個欄位會空白或不存在。如果因任何原因設定了維護期間,請清除該設定。gcloud alloydb clusters update STAGING_CLUSTER_ID \ --region=LOCATION_ID \ --clear-maintenance-window \ --project=PROJECT_ID
在正式環境叢集上設定維護期間
對於正式版叢集,請務必排定維護期間。您可以控管更新時間,並配合業務的低流量時段進行更新。
在正式叢集上設定維護期間
為正式環境叢集排定維護期間。請選擇生產系統負載最低的日期和時間。單一維護事件所需的總時間可能有所不同。
AlloyDB 會在更新測試叢集後,至少延遲一週再更新正式叢集。如果在暫存叢集更新後發現問題,您可以拒絕生產環境維護更新最多 30 天,並與Google Cloud 支援團隊合作解決問題。
在正式環境叢集上設定維護期間,步驟如下:
控制台
前往「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下叢集。
在「總覽」頁面的「維護」部分中,按一下「編輯」。設定視窗隨即開啟。
在「偏好的維護期間」部分,選取這個維護期間的星期幾。預設選項為「任何視窗」。
建立叢集時,AlloyDB 會為叢集指派這個預設維護時段。
選取維護更新的日期,然後選取維護期間的小時。
按一下「更新」儲存變更。
gcloud
如要使用 gcloud CLI,您可以安裝及初始化 Google Cloud CLI,也可以使用 Cloud Shell。
如要擷取 AlloyDB 叢集的設定詳細資料,請使用 gcloud alloydb clusters update
指令執行下列操作。
gcloud alloydb clusters update PRODUCTION_CLUSTER_ID \
--region=LOCATION_ID \
--maintenance-window-day=DAY_OF_WEEK \
--maintenance-window-hour=HOUR_OF_DAY \
--project=PROJECT_ID
請將下列項目改為對應的值:
PRODUCTION_CLUSTER_ID
:生產環境叢集的 ID。LOCATION_ID
: Google Cloud 區域。DAY_OF_WEEK
:偏好的維護日期,例如SUNDAY
。HOUR_OF_DAY
:維護作業的偏好時間 (以 UTC 表示,範圍為 0 到 23)。以下範例說明如何將維護期間設為星期日 UTC 時間凌晨 2 點:
gcloud alloydb clusters update my-prod-cluster \ --region=us-central1 \ --maintenance-window-day=SUNDAY \ --maintenance-window-hour=2 \ --project=my-production-project
確認正式版叢集的維護期間
如要確認生產環境叢集已設定維護時段,請執行 gcloud alloydb clusters describe
指令:
gcloud alloydb clusters describe PRODUCTION_CLUSTER_ID \
--region=LOCATION_ID \
--project=PROJECT_ID
輸出內容會傳回 maintenanceSchedule
欄位,並顯示指定的維護日期和時間。
選擇接收維護通知
建議您啟用通知,接收正式環境叢集的排定維護事件通知。通知可協助您規劃測試開始時間。
如要選擇接收維護通知,請按照下列步驟操作:
前往「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下叢集。系統會開啟「總覽」頁面。
在「總覽」頁面的「維護」部分,按一下「顯示詳細資料」展開該部分。然後按一下「通知」列中的「編輯」。系統會開啟「通訊」頁面。
在「Communication」(通訊) 頁面中,選取「Product communications」(產品通訊) 分頁標籤。
在「AlloyDB」的資料列中,將「電子郵件」欄的通知按鈕切換為「開啟」。
為正式版叢集設定維護期間後,AlloyDB 會在測試版叢集更新至少七天後,更新正式版叢集。選擇接收通知後,您會收到電子郵件通知,得知實際工作環境叢集已排定維護更新。
更新預先發布叢集
使用測試環境驗證即將推出的正式版更新。
檢查更新前狀態
由於預先發布叢集沒有維護期間,因此是第一批收到更新的叢集。不過,如果叢集未設定維護期間,AlloyDB 就不會傳送通知。不過,您可以使用 Google Cloud 控制台中的記錄檔探索工具,監控維護更新的發生時間。
前往 Google Cloud 控制台的「Logs Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
選取「所有資源」,選擇預先發布叢集,然後按一下「套用」。
選取「All lognames」,然後選取「maintenance_events」,並按一下「Apply」。
在「時間軸」窗格中,選取測試版叢集接收更新的時間範圍。
執行更新後的功能驗證
AlloyDB 更新測試叢集後,請執行功能測試,確認更新安全無虞,且適合套用至生產環境。
執行更新後效能驗證
維護更新完成後,請驗證預先發布叢集。在暫存叢集更新後,評估對資料庫造成的任何效能影響。執行全面的功能和效能測試,確保應用程式運作正常,並符合效能服務水準協議。
為確保穩定性及最佳運作狀態,請採取下列行動:
- 比較更新前的基準與主要指標。
- 執行負載測試,找出迴歸。
- 分析查詢效能。
- 監控資源使用率。
根據驗證結果採取行動
查看驗證結果,並根據結果採取下列行動:
- 驗證成功:如果暫存叢集的功能和效能測試都成功,表示暫存環境沒有錯誤,您可以按照排定的時間,在排定的時間範圍內進行生產維護。準備更新生產環境,並通知相關利害關係人。
- 驗證失敗:如果在預先發布叢集上進行功能和效能測試時失敗,且在維護更新後,預先發布環境中發生功能錯誤、效能下降或異常行為,則必須拒絕正式環境維護。
拒絕排定的維護活動
如要拒絕為生產叢集排定的維護事件,您必須設定開始日期、結束日期,以及間隔的開始和結束時間。
開始和結束日期必須採用下列格式:YYYY-MM-DD
。開始日期、結束日期和時間均以世界標準時間為準。
如要使用 gcloud CLI,您可以安裝及初始化 Google Cloud CLI,也可以使用 Cloud Shell。
如要為 AlloyDB 叢集新增拒絕維護期,請完成下列步驟:
執行
gcloud alloydb clusters update
指令,並加上deny-maintenance-period-start-date
、deny-maintenance-period-end-date
和deny-maintenance-period-time
旗標:gcloud alloydb clusters update CLUSTER_ID \ --region LOCATION_ID \ --deny-maintenance-period-start-date START_DATE \ --deny-maintenance-period-end-date END_DATE \ --deny-maintenance-period-time TIME
更改下列內容:
CLUSTER_ID
:要設定免維護期間的叢集。LOCATION_ID
:這個叢集所在的 Google Cloud 區域,例如us-central1
。START_DATE
:免維護期開始日期,格式為世界標準時間YYYY-MM-DD
。END_DATE
:免維護期結束時間,格式為YYYY-MM-DD
世界標準時間。TIME
:免維護期間的時間,格式為HH:MM
世界標準時間。小時以 24 小時格式表示,值介於00:00
到23:59
之間,例如16:45
。
記錄所有問題,包括錯誤訊息、成效指標,以及重現問題的步驟。
建立高優先順序的支援案件,並提供所有記錄的問題。 Google Cloud 會與您合作分析及解決問題。 Google Cloud
正式叢集更新
如果暫存驗證成功,且您允許繼續進行正式環境維護,系統就會在排定的維護期間進行更新。
確認維護期間
如要監控正式版叢集即將執行的維護事件,請按照下列步驟操作:
控制台
前往「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下叢集。系統會開啟「總覽」頁面。
在「總覽」頁面的「維護」部分,查看叢集的維護時間範圍詳細資料。
選用:在「系統洞察」頁面中,您可以查看維護作業狀態詳細資料,例如「事件時間軸」。
如要查看 Unified Maintenance 管理畫面,請在搜尋列中輸入「Cloud Hub maintenance」,然後選取「Maintenance」。在這個頁面中,您可以查看維護作業摘要、Google 控管的維護作業,以及預定維護作業的詳細資料。
gcloud
如要使用 gcloud CLI,您可以安裝及初始化 Google Cloud CLI,也可以使用 Cloud Shell。
使用 gcloud alloydb clusters describe
執行下列指令:
gcloud alloydb clusters describe PRODUCTION_CLUSTER_ID \
--region=LOCATION_ID \
--project=PROJECT_ID
如果已排定維護作業,輸出內容會包含 maintenanceSchedule
和 startTime
。如果選擇接收通知,你也會收到電子郵件通知。
在維護期間監控正式環境
雖然 Google Cloud 會自動執行維護程序,但我們建議您在排定的維護期間,監控生產環境的下列項目:
- 應用程式健康狀態:監控應用程式記錄和健康狀態檢查,找出任何中斷跡象。
- 資料庫連線:確認應用程式在連線中斷後可以重新連線至資料庫。
- AlloyDB 指標:使用 Google Cloud Monitoring 觀察 AlloyDB 指標 (CPU、記憶體、連線和複製延遲),並確保這些指標在更新後回到預期水準。
維護更新後驗證
維護更新完成後,請驗證正式版環境的重要功能和效能指標。
- 主要應用程式功能:對最重要的應用程式功能執行冒煙測試。
- 基本效能檢查:查看資訊主頁,瞭解延遲時間或資源消耗量是否突然增加。