בדף הזה מוסבר איך לבדוק את סטטוס התקינות של קוורום בשני אזורים ב-Spanner, ואיך לשנות את הקוורום באופן ידני במקרה של שיבושים בשירות.
מידע נוסף על צמדים של שני אזורים זמין במאמר הגדרות של מופעים עם צמדים של שני אזורים ב-Spanner.
בדיקת סטטוס הקוורום בשני אזורים
אפשר לבדוק את הסטטוס של הקוורום בשני אזורים בדרכים הבאות:
- בדף סקירה כללית של מסד הנתונים
- איך משתמשים במרכז הבקרה System insights
- שימוש ב-API בארכיטקטורת REST של Cloud Monitoring או ב-Google Cloud CLI
בדף הסקירה הכללית של מסד הנתונים
נכנסים לדף Spanner Instances במסוף Google Cloud .
לוחצים על השם של המכונה שמוגדרת בשני אזורים.
לוחצים על השם של מסד הנתונים.
בקטע 'סקירה כללית', מחפשים את השורה Quorum שבה מוצג סטטוס הקוורום של המופע בשני אזורים:
אם הקוורום מתקיים בשני האזורים, הסטטוס יהיה שני אזורים.
אם בוצע מעבר ידני או מעבר שמנוהל על ידי Google לגיבוי במקרה של כשל, יוצג שם האזור שבו מתבצעת ההצגה (לדוגמה,
asia-south1).
שימוש במרכז הבקרה System insights
אחרי שיוצרים הגדרה של שני אזורים, אפשר לראות את המדד ציר הזמן של תקינות הקוורום בשני אזורים בלוח הבקרה 'תובנות מערכת ברמת המכונה'.
מידע נוסף זמין במאמר בנושא צפייה בלוח הבקרה של תובנות המערכת.
שימוש ב-API בארכיטקטורת REST של Monitoring או ב-CLI של gcloud
אפשר להשתמש ב-Monitoring API בארכיטקטורת REST או ב-CLI של gcloud כדי לבדוק את תקינות הקוורום בשני אזורים.
Monitoring REST API
אפשר להשתמש ב-Monitoring projects.timeSeries.list API כדי לשלוח שאילתה לציר הזמן של תקינות הקוורום בשני אזורים ולבדוק אם אזור מסוים תקין בזמן נתון.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט.
- DUAL_REGION_LOCATION: המיקום של האזור בשני אזורים שרוצים לבדוק.
- START_TIME: שעת ההתחלה של השאילתה. מומלץ להשתמש בערך של 5 דקות לפני השעה הנוכחית.
- END_TIME: שעת הסיום של השאילתה. מומלץ להשתמש בשעה הנוכחית.
ה-method של ה-HTTP וכתובת ה-URL:
GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries
תוכן בקשת JSON:
{
"name": "PROJECT_ID",
"aggregation.alignmentPeriod": "60s",
"aggregation.crossSeriesReducer": "REDUCE_FRACTION_TRUE",
"aggregation.groupByFields": "resource.labels.location",
"aggregation.perSeriesAligner": "ALIGN_NEXT_OLDER",
"filter": "metric.labels.quorum_availability = "Healthy" AND metric.type = "spanner.googleapis.com/instance/dual_region_quorum_availability" AND resource.labels.location = "DUAL_REGION_LOCATION"",
"interval.startTime": "START_TIME",
"interval.endTime": "END_TIME"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"timeSeries": [
{
"metric": {
"type": "spanner.googleapis.com/instance/dual_region_quorum_availability"
},
"resource": {
"type": "spanner_instance",
"labels": {
"project_id": "spanner-project",
"location": "australia-southeast1"
}
},
"metricKind": "GAUGE",
"valueType": "DOUBLE",
"points": [
{
"interval": {
"startTime": "2024-07-11T05:41:23Z",
"endTime": "2024-07-11T05:41:23Z"
},
"value": {
"doubleValue": 1
}
}
]
}
],
"unit": "10^2.%"
}
אם לא קיבלתם תשובה דומה, יכול להיות שהאזור לא תקין ותצטרכו לשנות את הקוורום של שני האזורים מאזור כפול לאזור יחיד.
CLI של gcloud
מורידים את הקובץ
dual-region-quorum-health-check-script.sh.סקריפט ה-Bash הזה בודק את תקינות האזור שלכם. אם האזור תקין, הסקריפט מריץ את הפקודה
gcloud spanner databases change-quorumכדי לבצע מעבר ידני ליתירות כשל של קוורום בשני אזורים, מאזור כפול לאזור יחיד.מחליפים את המשתנים הבאים בסקריפט:
PROJECT: מזהה הפרויקט.-
INSTANCE: מזהה המופע. -
DATABASE: מזהה מסד הנתונים. -
SERVING_LOCATION: המיקום של האזור בשני אזורים שרוצים לבדוק.
מריצים את הסקריפט בסביבת הפיתוח הרצויה. מידע נוסף זמין במאמר התקנת ה-CLI של gcloud והגדרת Spanner API.
לבצע מעבר חזרה באופן ידני אם האזור לא היה תקין והיה מעבר לגיבוי.
שינוי הקוורום של שני אזורים מאזור כפול לאזור יחיד (מעבר לגיבוי בענן)
כדי לבצע יתירות כשל ידנית אם יש הפסקה זמנית בשירות אזורית או בעיה בחלוקה למחיצות (partitioning) של הרשת:
מסוף Google Cloud
נכנסים לדף Spanner Instances במסוף Google Cloud .
לוחצים על השם של המכונה שמוגדרת בשני אזורים.
בתפריט הניווט, לוחצים על תובנות לגבי המערכת.
מאתרים את המדד Dual-region quorum health timeline.
אם בציר הזמן של תקינות הקוורום בשני אזורים מוצג שיבוש באזור מסוים, לוחצים על שינוי קוורום באזור.
Cloud Shell ייפתח.
כדי לשנות את הקוורום בשני אזורים מאזור כפול לאזור יחיד, מזינים את הפקודה הבאה שמופיעה בכרטיסייה של ה-CLI של gcloud:
gcloud spanner databases change-quorum. הוראות מפורטות מופיעות בכרטיסייהgcloud.
CLI של gcloud
כדי לשנות את הקוורום של שני אזורים מאזור כפול לאזור יחיד, משתמשים בפקודה gcloud spanner databases change-quorum.
gcloud spanner databases change-quorum
DATABASE_ID --instance=INSTANCE_ID
--single-region --serving-location=SERVING_LOCATION
[--etag=ETAG]
מחליפים את מה שכתוב בשדות הבאים:
DATABASE_ID: המזהה הקבוע של מסד הנתונים.
INSTANCE_ID: המזהה הקבוע של המופע.
SERVING_LOCATION: התצורה של המכונה האזורית שאליה רוצים לבצע מעבר לגיבוי. לדוגמה, אם האזורasia-south1(מומבאי) לא תקין ואתם רוצים לבצע יתירות כשל לאזורasia-south2(דלהי), צריך להזיןasia-south2. חשוב לוודא שSERVING_LOCATIONהוא האזור התקין. בחירה של אזור שגוי למעבר לגיבוי בשעת כשל תוביל לחוסר זמינות של מסד הנתונים, ולא ניתן יהיה לשחזר אותו עד שהאזור יחזור להיות אונליין.
דגלים אופציונליים:
-
--etag=ETAG: אפשר להשתמש בארגומנטETAGכדי להגן מפני הפעלה חוזרת.
כדי לבדוק את הסטטוס של פעולת השינוי של הקוורום, מריצים את הפקודה gcloud spanner databases describe. השדה quorumInfo מספק מידע על הפעולה.
gcloud spanner databases describe DATABASE_ID
--instance=INSTANCE_ID
שינוי הקוורום של שני אזורים מאזור יחיד לשני אזורים (חזרה למצב תקין)
כדי לבצע מעבר חזרה ידני אחרי שהאזור שהופרע תקין או אחרי שבעיית חלוקת הרשת נפתרה:
מסוף Google Cloud
נכנסים לדף Spanner Instances במסוף Google Cloud .
לוחצים על השם של המכונה שמוגדרת בשני אזורים.
בתפריט הניווט, לוחצים על תובנות לגבי המערכת.
מאתרים את המדד Dual-region quorum health timeline.
בציר הזמן של תקינות הקוורום באזור הכפול, לוחצים על שינוי קוורום באזור.
ייפתח Cloud Shell.
כדי לשנות את הקוורום בשני אזורים מאזור יחיד לשני אזורים, מזינים את הפקודה הבאה שמופיעה בכרטיסייה ה-CLI של gcloud:
gcloud spanner databases change-quorum. הוראות מפורטות מופיעות בכרטיסייהgcloud.
CLI של gcloud
משתמשים בפקודה gcloud spanner databases change-quorum כדי לשנות את הקוורום של שני האזורים מאזור יחיד לשני אזורים.
gcloud spanner databases change-quorum
DATABASE_ID --instance=INSTANCE_ID
--dual-region
[--etag=ETAG]
מחליפים את מה שכתוב בשדות הבאים:
DATABASE_ID: המזהה הקבוע של מסד הנתונים.
INSTANCE_ID: המזהה הקבוע של המופע.
דגלים אופציונליים:
-
--etag=ETAG: אפשר להשתמש בארגומנטETAGלבקרת בו-זמניות אופטימית.
כדי לבדוק את הסטטוס של פעולת השינוי של הקוורום, מריצים את הפקודה gcloud spanner databases describe. השדה quorumInfo מספק מידע על הפעולה.
gcloud spanner databases describe DATABASE_ID
--instance=INSTANCE_ID