管理 AlloyDB for PostgreSQL 叢集維護時段

設定維護期間和拒絕時段,即可控管 AlloyDB for PostgreSQL 叢集的自動更新時間,避免在流量高峰時段發生中斷。在主要和次要叢集中,您都可以設定、查看或清除維護時間範圍、監控即將進行的排定維護事件,以及設定或移除拒絕時間範圍。您也可以選擇接收排定維護事件的電子郵件通知。

如要大致瞭解維護作業的運作方式,請參閱「維護作業總覽」。您也可以瞭解如何使用暫存叢集管理 AlloyDB 維護更新。

事前準備

為確保維護和更新作業可以建立臨時複製運算單元,以進行狀態同步,請確認複製運算單元的總數至少比 max_wal_senders 限制少一個。如要進一步瞭解如何設定這個標記,請參閱「設定來源執行個體」。

設定叢集的維護期間

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 按一下「Resource Name」(資源名稱) 欄中的叢集。

  3. 在「總覽」頁面的「維護」部分,按一下「編輯」。

  4. 在「維護期間」中,選取這個維護期間的星期。

    預設選項為「任何視窗」。建立叢集時,系統會為叢集指派這個預設維護期間。

  5. 選取這個維護期間的小時。

  6. 按一下「更新」儲存變更。

gcloud

如要使用 gcloud CLI,可以安裝並初始化 Google Cloud CLI,也可以使用 Cloud Shell。

如要在叢集上設定維護期間,請執行 gcloud alloydb clusters update

指令,並加上 --maintenance-window-day 和 --maintenance-window-hour 旗標:

gcloud alloydb clusters update CLUSTER_ID \
  --region LOCATION_ID \
  --maintenance-window-day DAY_OF_WEEK \
  --maintenance-window-hour HOUR_OF_DAY

更改下列內容:

  • CLUSTER_ID:要設定維護期間的叢集。

  • LOCATION_ID:這個叢集所在的 Google Cloud 區域,例如 us-central1。

  • DAY_OF_WEEK:這個維護期間的星期幾,以世界標準時間 (UTC) 時區為準。有效值為 MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY 和 SUNDAY。

    預設值為「任何視窗」。建立叢集時,系統會為叢集指派這個預設維護期間。

  • HOUR_OF_DAY:介於 0 和 23 之間的整數,代表這個維護期間在世界標準時間時區的小時數。

如果叢集正在進行維護或已排定維護時間,您對維護期間設定所做的變更,要等到目前或排定的維護作業完成後才會生效。

清除維護期間

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 按一下「Resource Name」(資源名稱) 欄中的叢集。

  3. 在「總覽」頁面的「維護」部分,按一下「編輯」。

  4. 在「維護期間」中,選取「任何期間」。

  5. 按一下「更新」儲存變更。

gcloud

如要使用 gcloud CLI,可以安裝並初始化 Google Cloud CLI,也可以使用 Cloud Shell。

如要清除叢集的維護期間,請執行 gcloud clusters update 指令,並加上 --maintenance-window-any 旗標:

gcloud alloydb clusters update CLUSTER_ID \
  --region LOCATION_ID \
  --maintenance-window-any

更改下列內容:

  • CLUSTER_ID:要設定維護期間的叢集。

  • LOCATION_ID:這個叢集所在的 Google Cloud 區域,例如 us-central1。

查看叢集的維護期間

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 按一下「Resource Name」(資源名稱) 欄中的叢集。

  3. 在「總覽」頁面的「維護作業」部分,查看叢集的維護時段詳細資料。

gcloud

如要使用 gcloud CLI,可以安裝並初始化 Google Cloud CLI,也可以使用 Cloud Shell。

如要查看叢集目前的維護時段,請執行 gcloud alloydb clusters describe 指令:

gcloud alloydb clusters describe CLUSTER_ID \
  --region LOCATION_ID

更改下列內容:

  • CLUSTER_ID:要設定維護期間的叢集。

  • LOCATION_ID:這個叢集所在的 Google Cloud 區域,例如 us-central1。

如果叢集已設定維護期間,指令輸出內容會包含類似下列內容的行:

maintenanceUpdatePolicy:
  maintenanceWindows:
  - day: TUESDAY
    startTime:
      hours: 23

如果輸出內容不含 maintenanceUpdatePolicy 區段,表示叢集未設定維護期間。

查看叢集即將執行的維護作業

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 找出叢集,然後查看「維護」欄,瞭解即將進行的維護期間。

gcloud

如要使用 gcloud CLI,可以安裝並初始化 Google Cloud CLI,也可以使用 Cloud Shell。

如要查看已設定維護時間範圍的叢集,預計執行的維護作業,請執行 gcloud clusters describe 指令:

gcloud alloydb clusters describe CLUSTER_ID \
  --region LOCATION_ID

更改下列內容:

  • CLUSTER_ID:要設定維護期間的叢集。

  • LOCATION_ID:這個叢集所在的 Google Cloud 區域,例如 us-central1。

如果叢集未來有預定維護事件,指令輸出內容會包含類似下列的行:

maintenanceSchedule:
  startTime: 2024-07-03T09:46:40Z

以世界標準時間格式表示的時間戳記,指定 AlloyDB 預計開始更新這個叢集中所有節點系統軟體的時間。

選擇接收維護作業通知

維護作業通知預設為停用。選擇接收有關預定 AlloyDB 維護事件的電子郵件通知時,請注意下列事項:

  • 系統排定活動後,您會立即收到自動通知。維護事件會在至少一週前排定。
  • 在 Google Cloud 專案層級啟用維護通知。您無法選擇只接收專案中部分叢集的通知。
  • 你只能為自己啟用通知。每位使用者都必須個別選擇接收維護通知。

詳情請參閱「維護總覽」。

如要設定自動電子郵件通知,在排定或取消叢集的維護事件時收到通知 (叢集已設定維護期間),請使用 Google Cloud 控制台按照下列步驟操作:

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 按一下「Resource Name」(資源名稱) 欄中的叢集。

  3. 在「總覽」頁面的「維護」部分,按一下 Notifications: 列中的「編輯」。

  4. 按一下「通訊」。

  5. 在「AlloyDB」的「維護期間」列中,選取「電子郵件」欄中的切換按鈕。

設定拒絕維護期

如要避免在特定時間範圍內執行維護作業,可以設定拒絕維護期。您可以為執行最新版 AlloyDB 的叢集設定拒絕維護作業。拒絕維護期可為 1 至 30 天。

如果叢集中的執行個體使用舊版,可能無法設定拒絕期間。如果叢集未及時更新,但您需要設定拒絕期,可以自行維護叢集,以便更新。

現有的拒絕時段不會阻擋自助式維護。

設定拒絕維護期

如要設定拒絕維護期,請設定開始日期、結束日期,以及間隔的開始和結束時間。

開始和結束日期必須採用以下格式:

  • YYYY-MM-DD:表示特定日期

開始日期、結束日期和時間均以世界標準時間為準。

gcloud

如要使用 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 UTC。小時以 24 小時制表示,值介於 00:00 到 23:59 之間,例如 16:45。

REST v1

這個範例會將拒絕維護期新增至現有叢集。如需這項呼叫的完整參數清單,請參閱「方法:projects.locations.clusters.instances.patch」。

使用任何要求資料之前,請先修改下列項目的值:

  • CLUSTER_ID:要設定免維護期間的叢集。
  • PROJECT_ID:叢集所在的專案 ID。
  • LOCATION_ID:這個叢集所在的 Google Cloud 區域,例如 us-central1。
  • START_YEAR:免維護期開始的年份,格式為 YYYY。
  • START_MONTH:免維護期開始的月份,格式為 MM。單月月份的開頭零為選填,例如 2 和 02 都是二月的有效格式。
  • START_DAY:免維護期開始的日期,格式為 DD。單日數字開頭的零為選填,例如 1 和 01 都是有效值,代表當月第一天。
  • END_YEAR:免維護期結束的年份,格式為 YYYY。
  • END_MONTH:免維護期結束的月份,格式為 MM。
  • END_DAY:免維護期結束的日期,格式為 DD。
  • HOUR(S):免維護時段 (以 24 小時制表示),例如 16。單一位數的小時數可省略開頭的零,例如 2 和 02 都是有效值。
  • MINUTE(S):免維護期間的分鐘數,接受 0 到 59 的值,例如 45。如果分鐘數為個位數,可選擇是否加上前置零,例如 7 和 07 都是有效格式。

如要新增拒絕維護期,請使用下列 PATCH 要求:

PATCH https://alloydb.googleapis.com/v1/{cluster.name=projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID?update_mask=maintenance_update_policy.deny_maintenance_periods}

maintenance_update_policy.deny_maintenance_periods 查詢參數會告知 API 更新 maintenanceUpdatePolicy 區塊中的 denyMaintenancePeriods 欄位。

JSON 要求主體如下所示:

"maintenanceUpdatePolicy": {
 "denyMaintenancePeriods": [
   {
     "startDate": {
       "year": START_YEAR,
       "month": START_MONTH,
       "day": START_DAY
     },
     "endDate": {
       "year": END_YEAR,
       "month": END_MONTH,
       "day": END_DAY
     },
     "time": {
       "hours": TIME
       "minutes": TIME
     }
   }
 ]
},

拒絕即將執行的維護作業

拒絕維護期優先於排定維護作業。如果發生時間衝突,系統會優先採用拒絕維護期,而非預定維護時段。

如果拒絕時段與排定的維護活動衝突,系統不會立即取消維護作業並清除排程。AlloyDB 會將現有的排定維護作業顯示為「即將進行」,但會在排定時間開始時取消排定的維護期間。

為協助套用重要更新,系統通常不允許設定拒絕期,以略過多個維護事件,且在極少數情況下,可能會在設定的維護偏好設定以外套用緊急維護。

從叢集移除拒絕維護時段

你隨時可以移除拒絕維護期。

gcloud

如要使用 gcloud CLI,可以安裝並初始化 Google Cloud CLI,也可以使用 Cloud Shell。

如要從 AlloyDB 叢集移除拒絕維護期,請執行 gcloud alloydb clusters update 指令,並加上 remove-deny-maintenance-period 旗標:

gcloud alloydb clusters update CLUSTER_ID --region LOCATION_ID  --remove-deny-maintenance-period

更改下列內容:

  • CLUSTER_ID:要移除拒絕維護期間的叢集。
  • LOCATION_ID:這個叢集所在的 Google Cloud 區域,例如 us-central1。

REST v1

這個範例會從 AlloyDB 叢集移除拒絕維護期。如需這項呼叫的完整參數清單,請參閱「方法:projects.locations.clusters.patch」。

使用任何要求資料之前,請先修改下列項目的值:

  • CLUSTER_ID:要新增拒絕維護期間的叢集 ID。
  • PROJECT_ID:叢集所在的專案 ID。
  • LOCATION_ID:這個叢集所在的 Google Cloud 區域,例如 us-central1。

如要移除拒絕維護期,請使用下列 PATCH 要求:

PATCH https://alloydb.googleapis.com/v1/{cluster.name=projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID?update_mask=maintenance_update_policy.deny_maintenance_periods}

maintenance_update_policy.deny_maintenance_periods 查詢參數會告知 API 更新 maintenanceUpdatePolicy 區塊中的 denyMaintenancePeriods 欄位。

JSON 要求主體如下所示:

{}

後續步驟