הגדרת זמינות גבוהה

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

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

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

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

המעבר לגיבוי בעת כשל כולל את התהליך הבא, לפי הסדר:

  1. ‫GDC מעביר את המכונה הראשית למצב אופליין.

  2. ‫GDC הופך את הרפליקה במצב המתנה לאשכול מסד הנתונים הפעיל החדש.

  3. ‫GDC מוחק את אשכול מסד הנתונים הפעיל הקודם.

  4. ‫GDC יוצר רפליקה חדשה במצב המתנה.

עדכון של אשכול קיים

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

המסוף

  1. בתפריט הניווט, בוחרים באפשרות Database Service.

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

  3. בקטע זמינות גבוהה, לוחצים על edit Edit.

    עריכת ההגדרות של זמינות גבוהה באשכול של מסד נתונים.

  4. בוחרים באפשרות Enable same zone standby כדי להפעיל או להשבית את הזמינות של מכונה במצב המתנה באותו אזור של אשכול מסד הנתונים הראשי.

  5. לוחצים על Save.

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

gdcloud

  1. מעדכנים את הגדרת הזמינות הגבוהה של אשכול מסד הנתונים:

    gdcloud database clusters update CLUSTER_NAME \
        --availability-type HA_TYPE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CLUSTER_NAME: השם של אשכול מסד הנתונים.
    • ‫HA_TYPE: רמת הזמינות הגבוהה של אשכול מסד הנתונים. אפשר להגדיר את zonal או את zonal_ha. הערך zonal מוגדר כברירת מחדל.
  2. מוודאים שאשכול מסד הנתונים משקף את העדכון של הזמינות הגבוהה:

    gdcloud database clusters list
    

API

  1. מעדכנים את הגדרת הזמינות הגבוהה של אשכול מסד הנתונים:

      kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME \
        -n USER_PROJECT \
        -p '{"spec": {"availability": {"enableHighAvailability": HA_ENABLED}}}' \
        --type=merge
    

    מחליפים את המשתנים הבאים:

    • ‫DBCLUSTER_NAME: השם של אשכול מסד הנתונים.
    • ‫USER_PROJECT: השם של פרויקט המשתמש שבו נוצר אשכול מסד הנתונים.
    • ‫HA_ENABLED: רמת הזמינות הגבוהה של אשכול מסד הנתונים. אפשר להגדיר את true או את false. הערך false מוגדר כברירת מחדל.
  2. מוודאים שאשכול מסד הנתונים משקף את העדכון של הזמינות הגבוהה:

    kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \
      -n USER_PROJECT \
      -o yaml
    

מעבר להטמעה העדכנית ביותר של זמינות גבוהה

כדי לוודא שאשכול מסד הנתונים בזמינות גבוהה משתמש בהטמעה העדכנית, בודקים אם ההערה dbcluster.dbadmin.goog/raasEnabled קיימת ב-CR של אשכול מסד הנתונים בזמינות גבוהה. ההערה הזו תופיע רק באשכולות שמשתמשים בהטמעה החדשה. אם אין לכם את ההערה הזו, אתם יכולים להפעיל אותה ולהעביר את האשכול באמצעות השלבים הבאים:

  1. צריך לבדוק מול מפעיל התשתית שסביבת GDC משודרגת לגרסה 1.15.1 ואילך.
  2. משביתים את הזמינות הגבוהה באשכול מסד הנתונים. מחכים שהמצב HAReady ייעלם, ואז מפעילים מחדש את הזמינות הגבוהה.
  3. אחרי שמופיע HAReady in progress או HAReady setup complete, בודקים את ה-CR של אשכול מסד הנתונים כדי לראות אם מופיעה ההערה dbcluster.dbadmin.goog/raasEnabled. אם הוא מופיע, סימן שאשכול מסד הנתונים הועבר בהצלחה.

הפעלת יתירות כשל

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

המסוף

  1. בתפריט הניווט, בוחרים באפשרות Database Service.

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

  3. לוחצים על Failover.

  4. מקלידים את מזהה האשכול בתור ביטוי האישור ולוחצים על Failover כדי להפעיל את תהליך יתירות הכשל.

gdcloud

מפעילים את יתירות הכשל של אשכול מסד הנתונים:

gdcloud database clusters failover CLUSTER_NAME

מחליפים את CLUSTER_NAME בשם של אשכול מסד הנתונים.

API

  apiVersion: fleet.dbadmin.gdc.goog/v1
  kind: Failover
  metadata:
    name: FAILOVER_NAME
    namespace: USER_PROJECT
  spec:
    dbclusterRef: DBCLUSTER_NAME

מחליפים את המשתנים הבאים:

  • ‫DBCLUSTER_NAME, השם של אשכול מסד הנתונים.
  • ‫USER_PROJECT: השם של פרויקט המשתמש שבו נוצר אשכול מסד הנתונים.
  • ‫FAILOVER_NAME, השם הייחודי של יתירות הכשל, לדוגמה failover-sample.

השבתת יתירות כשל אוטומטית

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

כדי להשבית את יתירות הכשל האוטומטית, מגדירים את enableAutoFailover ל-false במניפסט של אשכול מסד הנתונים:

spec:
  availability:
    enableAutoFailover: false

כדי לעדכן את הגדרת יתירות הכשל האוטומטית של אשכול קיים של מסדי נתונים באמצעות ה-API, מריצים את הפקודה הבאה:

kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME \
  -n USER_PROJECT \
  -p '{"spec": {"availability": {"enableAutoFailover": AUTO_FAILOVER_ENABLED}}}' \
  --type=merge

מחליפים את המשתנים הבאים:

  • ‫DBCLUSTER_NAME: השם של אשכול מסד הנתונים.
  • ‫USER_PROJECT: השם של פרויקט המשתמש שבו נוצר אשכול מסד הנתונים.
  • ‫AUTO_FAILOVER_ENABLED: הגדרת יתירות הכשל האוטומטית של אשכול מסד הנתונים. אפשר להגדיר את true או את false. הערך true מוגדר כברירת מחדל.