ניהול חלונות תחזוקה של אשכולות AlloyDB ל-PostgreSQL

הגדרת חלונות זמן לתחזוקה ותקופות דחייה מאפשרת לכם לקבוע מתי יתבצעו עדכונים אוטומטיים באשכולות של AlloyDB ל-PostgreSQL, כדי למנוע שיבושים בשעות השיא של התנועה. בשני סוגי האשכולות, הראשי והמשני, אפשר להגדיר, להציג או לנקות חלונות זמן לתחזוקה, לעקוב אחרי אירועי תחזוקה מתוזמנים ולהגדיר או להסיר תקופות דחייה. אתם יכולים גם להירשם לקבלת התראות באימייל על אירועי תחזוקה מתוזמנים.

סקירה כללית על תחזוקה איך מנהלים את עדכוני התחזוקה של AlloyDB באמצעות אשכול Staging

לפני שמתחילים

כדי לוודא שפעולות תחזוקה ועדכונים יוכלו ליצור משבצות רפליקציה זמניות לסנכרון מצבים, ודאו שהמספר הכולל של משבצות הרפליקציה קטן לפחות באחת מהמגבלה של max_wal_senders. מידע נוסף על הגדרת הדגל הזה זמין במאמר הגדרת מכונות המקור.

הגדרת חלון זמן לתחזוקה באשכול

המסוף

  1. נכנסים לדף Clusters.

    כניסה לדף Clusters

  2. לוחצים על אשכול בעמודה Resource Name.

  3. בדף Overview, בקטע Maintenance לוחצים על Edit.

  4. ב-Maintenance window, בוחרים את היום בשבוע שבו יתבצע חלון הזמן לתחזוקה.

    אפשרות ברירת המחדל היא כל חלון. כשיוצרים אשכול, מוקצה לו חלון זמן לתחזוקה כברירת מחדל.

  5. בוחרים את השעה ביום לחלון הזמן לתחזוקה.

  6. לוחצים על עדכון כדי לשמור את השינויים.

gcloud

כדי להשתמש ב-CLI של gcloud, אתם יכולים להתקין ולהפעיל את 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 שמייצג את השעה ביום, באזור הזמן UTC, של חלון הזמן לתחזוקה.

אם תשנו את ההגדרה של חלון הזמן לתחזוקה בזמן שהאשכול כבר עובר תחזוקה או מתוזמן לתחזוקה, השינויים ייכנסו לתוקף רק אחרי שהתחזוקה הנוכחית או המתוזמנת תסתיים.

איך מוחקים חלון זמן לתחזוקה

המסוף

  1. נכנסים לדף Clusters.

    כניסה לדף Clusters

  2. לוחצים על אשכול בעמודה Resource Name.

  3. בדף Overview, בקטע Maintenance לוחצים על Edit.

  4. ב-חלון זמן לתחזוקה, בוחרים באפשרות Any window.

  5. לוחצים על עדכון כדי לשמור את השינויים.

gcloud

כדי להשתמש ב-CLI של gcloud, אתם יכולים להתקין ולהפעיל את Google Cloud CLI או להשתמש ב-Cloud Shell.

כדי להסיר את חלון הזמן לתחזוקה מאשכול, מריצים את הפקודה gcloud alloydb 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. בדף Overview, בקטע Maintenance, אפשר לראות את פרטי חלון הזמן לתחזוקה של האשכול.

gcloud

כדי להשתמש ב-CLI של gcloud, אתם יכולים להתקין ולהפעיל את 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. מאתרים את האשכול ובודקים את העמודה Maintenance כדי לקבל מידע על חלון הזמן הקרוב לתחזוקה.

gcloud

כדי להשתמש ב-CLI של gcloud, אתם יכולים להתקין ולהפעיל את 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.

אם לאשכול יש אירוע תחזוקה מתוכנן בעתיד, הפלט של הפקודה כולל שורות שדומות לאלה:

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

חותמת הזמן בפורמט UTC מציינת את הרגע שבו AlloyDB מתכננת להתחיל לעדכן את תוכנת המערכת של כל הצמתים באשכול הזה.

הסכמה לקבלת התראות לגבי פעולות תחזוקה

ההתראות לגבי פעולות תחזוקה מושבתות כברירת מחדל. אם אתם בוחרים לקבל התראות באימייל על אירועי תחזוקה קרובים ב-AlloyDB, חשוב לזכור את הדברים הבאים:

  • אתם מקבלים התראה אוטומטית על האירוע ברגע שהוא נקבע. אירועי תחזוקה מתוזמנים לפחות שבוע מראש.
  • ההתראות לגבי פעולות תחזוקה מופעלות ברמת הפרויקט ב- Google Cloud . אי אפשר לבחור לקבל התראות על קבוצת משנה של אשכולות בפרויקט.
  • אתם יכולים להפעיל התראות רק לעצמכם. כל משתמש צריך להביע הסכמה בנפרד כדי לקבל התראות על תחזוקה.

מידע נוסף זמין במאמר סקירה כללית על תחזוקה.

כדי לקבל התראה אוטומטית באימייל בכל פעם שאירוע תחזוקה מתוזמן או מבוטל באשכול שמוגדר לו חלון זמן לתחזוקה, מבצעים את השלבים הבאים באמצעות מסוף Google Cloud :

  1. נכנסים לדף Clusters.

    כניסה לדף Clusters

  2. לוחצים על אשכול בעמודה Resource Name.

  3. בדף Overview, בקטע Maintenance, לוחצים על Edit בשורה של Notifications:.

  4. לוחצים על תקשורת.

  5. בשורה של AlloyDB, חלון זמן לתחזוקה, לוחצים על המתג בעמודה Email.

הגדרת פרק זמן לדחיית עדכונים ותחזוקה

כדי למנוע פעולות תחזוקה במהלך תקופה מסוימת, אפשר להגדיר פרק זמן לדחיית עדכונים ותחזוקה. אפשר להגדיר דחיית תחזוקה באשכול שפועלת בו הגרסה העדכנית של AlloyDB. פרק הזמן לדחיית עדכונים ותחזוקה יכול להיות בין יום אחד ל-30 ימים.

באשכולות עם מכונות בגרסאות קודמות לא תמיד אפשר להגדיר תקופות דחייה. אם אתם צריכים להגדיר חלון סירוב באשכול שלא מעודכן מספיק, אתם יכולים לבצע תחזוקה בשירות עצמי כדי לעדכן את האשכול.

תקופות דחייה קיימות לא חוסמות תחזוקה בשירות עצמי.

הגדרת פרקי זמן לדחיית עדכונים ותחזוקה

כדי להגדיר פרק זמן לדחיית עדכונים ותחזוקה, צריך להגדיר את תאריך ההתחלה, תאריך הסיום והשעה ביום שבה המרווח מתחיל ומסתיים.

תאריכי ההתחלה והסיום חייבים להיות בפורמט הבא:

  • ‫YYYY-MM-DD: מציין תאריך ספציפי

תאריך ההתחלה, תאריך הסיום והשעה הם לפי אזור הזמן UTC.

gcloud

כדי להשתמש ב-CLI של gcloud, אתם יכולים להתקין ולהפעיל את 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 UTC.
  • ‫END_DATE: הסוף של התקופה ללא תחזוקה, בפורמט YYYY-MM-DD UTC.
  • ‫TIME: הזמן של התקופה ללא תחזוקה בפורמט HH:MM UTC. השעות מיוצגות בפורמט של 24 שעות, והערכים נעים בין 00:00 ל-23:59, לדוגמה 16:45.

REST v1

בדוגמה הזו מוסיפים פרק זמן לדחיית עדכונים ותחזוקה לאשכול קיים. רשימה מלאה של הפרמטרים לקריאה הזו מופיעה במאמר Method: projects.locations.clusters.patch.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הערכים בשדות הבאים:

  • ‫CLUSTER_ID: האשכול שרוצים להגדיר לו תקופה ללא תחזוקה.
  • ‫PROJECT_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.
  • ‫HOURS: השעה של התקופה ללא תחזוקה בפורמט של 24 שעות, לדוגמה 16. אפשר להוסיף אפס בתחילת השעה אם היא מורכבת מספרה אחת, אבל לא חובה. לדוגמה, גם 2 וגם 02 הם ערכים תקינים.
  • ‫MINUTES: הדקה של התקופה ללא תחזוקה, בערכים מ-0 עד 59, לדוגמה 45. אפשר להוסיף אפס מוביל לדקות בנות ספרה אחת – 7 ו-07 הן אפשרויות תקינות.

כדי להוסיף פרק זמן לדחיית עדכונים ותחזוקה, משתמשים בבקשת PATCH הבאה:

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

הפרמטר של השאילתה maintenance_update_policy.deny_maintenance_periods מורה ל-API לעדכן את השדה denyMaintenancePeriods בתוך הבלוק maintenanceUpdatePolicy.

גוף בקשת ה-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": HOURS,
         "minutes": MINUTES
       }
     }
   ]
 }
}

דחיית עדכונים ותחזוקה

פרקי זמן לדחיית עדכונים ותחזוקה מקבלים עדיפות על פני תחזוקה מתוזמנת. אם יש התנגשות בין הזמנים, פרק הזמן לדחיית עדכונים ותחזוקה מבטל את חלון הזמן המתוזמן לתחזוקה.

אם מגדירים חלון סירוב שמתנגש עם אירוע תחזוקה מתוזמן, אירוע התחזוקה לא מתבטל מיד והלו"ז לא מתעדכן. ב-AlloyDB, עבודות התחזוקה המתוזמנות הקיימות מופיעות כעבודות קרובות, אבל חלון הזמן המתוזמן לתחזוקה מבוטל כשהזמן המתוזמן מתחיל.

כדי לאפשר החלה של עדכונים קריטיים, המערכת בדרך כלל לא מאפשרת להגדיר תקופת דחייה שתדלג על יותר מאירוע תחזוקה אחד. במקרים נדירים, המערכת עשויה להחיל תחזוקת חירום מחוץ להעדפות התחזוקה שהוגדרו.

הסרת פרק זמן לדחיית עדכונים ותחזוקה מאשכול

אתם יכולים להסיר את פרק הזמן לדחיית עדכונים ותחזוקה בכל שלב.

gcloud

כדי להשתמש ב-CLI של gcloud, אתם יכולים להתקין ולהפעיל את 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 את פרק הזמן לדחיית עדכונים ותחזוקה. רשימה מלאה של הפרמטרים לקריאה הזו מופיעה במאמר Method: projects.locations.clusters.patch.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הערכים בשדות הבאים:

  • ‫CLUSTER_ID: המזהה של האשכול שמוסיפים לו פרק זמן לדחיית עדכונים ותחזוקה.
  • ‫PROJECT_ID: מזהה הפרויקט שבו נמצא האשכול.
  • ‫LOCATION_ID: האזור ב- Google Cloud שבו נמצא האשכול. לדוגמה: us-central1.

כדי להסיר פרק זמן לדחיית עדכונים ותחזוקה, משתמשים בבקשת PATCH הבאה:

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

הפרמטר של השאילתה maintenance_update_policy.deny_maintenance_periods מורה ל-API לעדכן את השדה denyMaintenancePeriods בתוך הבלוק maintenanceUpdatePolicy.

גוף בקשת ה-JSON נראה כך:

{}

המאמרים הבאים