המטרה של הגדרת זמינות גבוהה היא לצמצם את זמן ההשבתה כשמכונה של אשכול מסדי נתונים לא זמינה. זה יכול לקרות כשנגמר הזיכרון במכונה. בזמינות גבוהה, הנתונים ממשיכים להיות זמינים לאפליקציות הלקוח.
בתוך אתר, ההגדרה מורכבת ממכונה ראשית ומרפליקה במצב המתנה. כל פעולות הכתיבה שבוצעו במכונה הראשית משוכפלות לרפליקה במצב המתנה לפני שדווח על טרנזקציה כטרנזקציה שבוצעה. אם המכונה הראשית לא זמינה, GDC מקדם באופן אוטומטי את הרפליקה במצב המתנה כדי שתפעל כמכונה הראשית החדשה. לאחר מכן, תעבורת הנתונים של האפליקציה מנותבת מחדש למכונה הראשית החדשה. התהליך הזה נקרא יתירות כשל.
מעבר אוטומטי לגיבוי בעת כשל מתחיל אחרי 3 כשלים רצופים בבדיקת התקינות של המכונה הראשית, במרווחים של 30 שניות בין כשל לכשל.
ב-GDC יש תמיכה ביתירות כשל אוטומטית וידנית. מעבר אוטומטי לגיבוי במקרה של כשל מופעל כברירת מחדל, ואפשר להשבית אותו במקרה הצורך. אתם יכולים גם להפעיל ידנית יתירות כשל בכל שלב, כדי להתאושש מכשל בלתי צפוי ולצמצם את זמן ההשבתה.
המעבר לגיבוי בעת כשל כולל את התהליך הבא, לפי הסדר:
GDC מעביר את המכונה הראשית למצב אופליין.
GDC הופך את הרפליקה במצב המתנה לאשכול מסד הנתונים הפעיל החדש.
GDC מוחק את אשכול מסד הנתונים הפעיל הקודם.
GDC יוצר רפליקה חדשה במצב המתנה.
עדכון של אשכול קיים
אתם יכולים לעדכן את הגדרות הזמינות הגבוהה של אשכול מסדי נתונים קיים:
המסוף
בתפריט הניווט, בוחרים באפשרות Database Service.
ברשימת אשכולות מסדי הנתונים, לוחצים על אשכול מסד הנתונים שרוצים לעדכן.
בקטע זמינות גבוהה, לוחצים על edit Edit.

בוחרים באפשרות Enable same zone standby כדי להפעיל או להשבית את הזמינות של מכונה במצב המתנה באותו אזור של אשכול מסד הנתונים הראשי.
לוחצים על Save.
כדי לוודא שאשכול מסד הנתונים משקף את העדכון של הזמינות הגבוהה, בודקים את הסטטוס שלו בעמודה High availability ברשימת אשכולות מסדי הנתונים.
gdcloud
מעדכנים את הגדרת הזמינות הגבוהה של אשכול מסד הנתונים:
gdcloud database clusters update CLUSTER_NAME \ --availability-type HA_TYPEמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של אשכול מסד הנתונים. -
HA_TYPE: רמת הזמינות הגבוהה של אשכול מסד הנתונים. אפשר להגדיר אתzonalאו אתzonal_ha. הערךzonalמוגדר כברירת מחדל.
-
מוודאים שאשכול מסד הנתונים משקף את העדכון של הזמינות הגבוהה:
gdcloud database clusters list
API
מעדכנים את הגדרת הזמינות הגבוהה של אשכול מסד הנתונים:
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מוגדר כברירת מחדל.
-
מוודאים שאשכול מסד הנתונים משקף את העדכון של הזמינות הגבוהה:
kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \ -n USER_PROJECT \ -o yaml
מעבר להטמעה העדכנית ביותר של זמינות גבוהה
כדי לוודא שאשכול מסד הנתונים בזמינות גבוהה משתמש בהטמעה העדכנית, בודקים אם ההערה dbcluster.dbadmin.goog/raasEnabled קיימת ב-CR של אשכול מסד הנתונים בזמינות גבוהה. ההערה הזו תופיע רק באשכולות שמשתמשים בהטמעה החדשה. אם אין לכם את ההערה הזו, אתם יכולים להפעיל אותה ולהעביר את האשכול באמצעות השלבים הבאים:
- צריך לבדוק מול מפעיל התשתית שסביבת GDC משודרגת לגרסה 1.15.1 ואילך.
- משביתים את הזמינות הגבוהה באשכול מסד הנתונים. מחכים שהמצב
HAReadyייעלם, ואז מפעילים מחדש את הזמינות הגבוהה. - אחרי שמופיע
HAReady in progressאוHAReady setup complete, בודקים את ה-CR של אשכול מסד הנתונים כדי לראות אם מופיעה ההערהdbcluster.dbadmin.goog/raasEnabled. אם הוא מופיע, סימן שאשכול מסד הנתונים הועבר בהצלחה.
הפעלת יתירות כשל
אם הגדרתם זמינות גבוהה לאשכול מסד הנתונים, אתם יכולים להפעיל יתירות כשל. כדי להפעיל יתירות כשל:
המסוף
בתפריט הניווט, בוחרים באפשרות Database Service.
ברשימת אשכולות מסדי הנתונים, לוחצים על אשכול מסד הנתונים שרוצים להפעיל בו יתירות כשל. כדי שתוכלו להשתמש ביתירות כשל, צריך להפעיל זמינות גבוהה באשכול מסד הנתונים.
לוחצים על Failover.
מקלידים את מזהה האשכול בתור ביטוי האישור ולוחצים על 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מוגדר כברירת מחדל.