בדף הזה מוסבר על תחזוקה בשירות עצמי, שמאפשרת לכם לאשר עדכון תחזוקה במופע מחוץ לתהליך הרגיל של תחזוקה מתוזמנת.
סקירה כללית
אנחנו מפרסמים באופן קבוע שיפורים בתוכנה של Cloud SQL, כמו תיקונים לנקודות חולשה ידועות, באמצעות גרסאות תחזוקה חדשות. מערכת Cloud SQL מתזמנת עדכוני תחזוקה אחת לכמה חודשים כדי לוודא שיש לכם את גרסת התחזוקה העדכנית ביותר, אבל יכול להיות שתרצו להשתמש בתחזוקה בשירות עצמי אם:
- אתם צריכים עדכון לפני אירוע התחזוקה המתוזמן הבא.
- רוצים להתעדכן לגרסת התחזוקה האחרונה אחרי שדילגתם על אירוע התחזוקה המתוזמן האחרון.
לא צריך לעדכן ידנית לגרסה האחרונה. אתם יכולים לאפשר ל-Cloud SQL לעדכן אוטומטית את גרסת התחזוקה במהלך אירוע התחזוקה המתוזמן הבא.
ניהול תחזוקה בכל העותקים לקריאה של מופע ראשי
כשמבצעים תחזוקה בניהול עצמי במכונה ראשית שיש לה רפליקות לקריאה, Cloud SQL מחיל באופן אוטומטי את עדכון התחזוקה על כל הרפליקות לקריאה. אם יש לכם יותר משלושה מופעים של העתקי קריאה, המופעים יחולקו לקבוצות ויתעדכנו במקביל. בשלב האחרון, עדכון התחזוקה מוחל על המופע הראשי.
במקרה הצורך, עדיין אפשר לבצע תחזוקה בשירות עצמי בשכפול קריאה יחיד. עם זאת, כדי לוודא שכל המכונות של הרפליקות לקריאה והמכונה הראשית פועלות באותו גרסת תחזוקה, מומלץ לבצע תחזוקה בשירות עצמי בכל הרפליקות לקריאה של מכונה ראשית בו-זמנית.
כדי לעדכן מכונה אחת של רפליקה לקריאה, צריך לציין את המכונה הזו כשמבצעים תחזוקה בשירות עצמי.
לפני שמתחילים
לפני שמבצעים תחזוקה בשירות עצמי, צריך קודם לבדוק את גרסת התחזוקה הנוכחית. אחר כך תוכלו לקבוע את גרסת התחזוקה של היעד שרוצים לעדכן אליה ולעדכן את המופע לגרסה הזו. אם אתם משתמשים ברפליקות לקריאה, צריך לעדכן את כל הרפליקות לקריאה של המכונה הראשית לגרסה הזו.
כדי לראות את גרסת התחזוקה הנוכחית של מופע, מבצעים את הפעולות הבאות:
gcloud
לפני שמריצים את הפקודה gcloud הבאה, צריך להחליף את המשתנים הבאים בערכים:
- INSTANCE_ID: המכונה שעליה רוצים להריץ שאילתה
gcloud sql instances describe INSTANCE_ID
גרסת התחזוקה שמותקנת במופע מצוינת ליד המאפיין maintenanceVersion.
REST v1
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של Cloud de Confiance הפרויקט שמכיל את המופע
- INSTANCE_NAME: השם של המכונה שאתם מגדירים עבור זמינות גבוהה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#instance",
"state": "RUNNABLE",
"databaseVersion": "POSTGRES_13"
}
מחפשים את הפריט maintenanceVersion בקטע DatabaseInstance בתגובה.
REST v1beta4
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של Cloud de Confiance הפרויקט שמכיל את המופע
- INSTANCE_NAME: השם של המכונה שאתם מגדירים עבור זמינות גבוהה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#instance",
"state": "RUNNABLE",
"databaseVersion": "POSTGRES_13"
}
מחפשים את הפריט maintenanceVersion בקטע DatabaseInstance בתגובה.
קביעת גרסת התחזוקה הרצויה
כדי לראות את גרסאות התחזוקה שאפשר לבחור כיעד, משתמשים בשיטה הבאה. אי אפשר לעדכן לגרסה קודמת מזו הנוכחית.
gcloud
לפני שמריצים את הפקודה gcloud הבאה, צריך להחליף את המשתנים הבאים בערכים:
- INSTANCE_ID: המכונה שעליה רוצים להריץ שאילתה
gcloud sql instances describe INSTANCE_ID
גרסת התחזוקה הזמינה מצוינת ליד המאפיין availableMaintenanceVersions.
REST v1
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של Cloud de Confiance הפרויקט שמכיל את המופע
- INSTANCE_NAME: השם של המכונה שאתם מגדירים עבור זמינות גבוהה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#instance",
"state": "RUNNABLE",
"databaseVersion": "POSTGRES_13"
}
מחפשים את הפריט availableMaintenanceVersions בקטע DatabaseInstance בתגובה.
REST v1beta4
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של Cloud de Confiance הפרויקט שמכיל את המופע
- INSTANCE_NAME: השם של המכונה שאתם מגדירים עבור זמינות גבוהה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#instance",
"state": "RUNNABLE",
"databaseVersion": "POSTGRES_13"
}
מחפשים את הפריט availableMaintenanceVersions בקטע DatabaseInstance בתגובה.
עדכון כל העותקים לקריאה של מופע ראשי לגרסת התחזוקה של היעד
כדי לבצע עדכון תחזוקה בכל הרפליקות לקריאה של מכונה ראשית, צריך לפעול לפי השלבים הבאים.
gcloud
לפני שמשתמשים בפקודה gcloud הבאה, צריך להחליף את המשתנים הבאים בערכים:
- PRIMARY_INSTANCE_ID: המזהה של המכונה הראשית
- MAINTENANCE_VERSION: גרסת התחזוקה של Cloud SQL להחלה
gcloud sql instances patch PRIMARY_INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
בהנחיה לאישור, מקלידים Y כדי להמשיך, או
מקלידים N כדי לבטל.
אם בוחרים באפשרות Y, תהליך העדכון יחיל את גרסת התחזוקה שצוינה על כל הרפליקות לקריאה לפני העדכון של המכונה הראשית. מכונות רפליקה לקריאה שכבר עודכנו לגרסת התחזוקה הרצויה לא יעודכנו שוב.
אם בוחרים באפשרות N, לא מתבצע עדכון של אף מופע.
אחרי שהעדכון של הרפליקות לקריאה והמופע הראשי מסתיים, מופיעה הודעה דומה להודעה הבאה:
Patching Cloud SQL instance....done. Patching Cloud SQL instance....done. Patching Cloud SQL instance....done. Updated [https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_ID]
Terraform
כדי ליצור מופע, משתמשים במשאב של Terraform.
החלה של השינויים
כדי להחיל את ההגדרות של Terraform בפרויקט ב- Cloud de Confiance , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Cloud de Confiance
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את Cloud de Confiance הפרויקט כדי לראות את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
מחיקת השינויים
כדי למחוק את השינויים:
- כדי להשבית את ההגנה מפני מחיקה, בקובץ התצורה של Terraform מגדירים את הארגומנט
deletion_protectionלערךfalse.deletion_protection = "false"
- מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform המעודכנות:terraform apply
-
כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה:terraform destroy
REST v1
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט
- PROJECT_ID: מזהה המכונה הראשית
- MAINTENANCE_VERSION: גרסת תחזוקת התוכנה של Cloud SQL שרוצים להחיל
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"maintenanceVersion": "MAINTENANCE_VERSION"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "08:00",
"endTime": "08:01",
"operationType": UPDATE,
"name": "OPERATION_ID",
"targetId": "PRIMARY_INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט
- INSTANCE_ID: מזהה המכונה הראשית
- MAINTENANCE_VERSION: גרסת תחזוקת התוכנה של Cloud SQL שרוצים להחיל
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"maintenanceVersion": "MAINTENANCE_VERSION"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "08:00",
"endTime": "08:01",
"operationType": UPDATE,
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
עדכון של מופע יחיד לגרסת התחזוקה של היעד
כדי לבצע עדכון תחזוקה במכונה אחת, פועלים לפי השלבים הבאים. במקרה הצורך, אפשר להשתמש בהליך הזה כדי לעדכן מופע יחיד של העתק לקריאה.
gcloud
לפני שמשתמשים בפקודה gcloud הבאה, צריך להחליף את המשתנים הבאים בערכים:
- INSTANCE_ID: המזהה של המכונה. המופע הזה יכול להיות מופע של העתק לקריאה.
- MAINTENANCE_VERSION: גרסת התחזוקה של Cloud SQL להחלה
gcloud sql instances patch INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
אם מציינים רפליקה לקריאה, תוצג בקשה לאישור. מקלידים Y כדי להמשיך או N כדי לבטל.
- אם בוחרים באפשרות
Y, תהליך העדכון יחיל את גרסת התחזוקה שצוינה רק על העותק לקריאה שצוין. - אם בוחרים באפשרות
N, לא מתבצע עדכון של אף מופע.
אחרי שהעדכון של המופע מסתיים, מופיעה הודעה שדומה להודעה הבאה:
Patching Cloud SQL instance....done. Updated [https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID]
Terraform
כדי ליצור מופע, משתמשים במשאב של Terraform.
החלה של השינויים
כדי להחיל את ההגדרות של Terraform בפרויקט ב- Cloud de Confiance , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Cloud de Confiance
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את Cloud de Confiance הפרויקט כדי לראות את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
מחיקת השינויים
כדי למחוק את השינויים:
- כדי להשבית את ההגנה מפני מחיקה, בקובץ התצורה של Terraform מגדירים את הארגומנט
deletion_protectionלערךfalse.deletion_protection = "false"
- מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform המעודכנות:terraform apply
-
כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה:terraform destroy
REST v1
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט
- PROJECT_ID: מזהה המכונה, שיכול להיות מכונת רפליקה לקריאה
- MAINTENANCE_VERSION: גרסת תחזוקת התוכנה של Cloud SQL שרוצים להחיל
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"maintenanceVersion": "MAINTENANCE_VERSION"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "08:00",
"endTime": "08:01",
"operationType": UPDATE,
"name": "OPERATION_ID",
"targetId": "PRIMARY_INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט
- INSTANCE_ID: מזהה המכונה, שיכול להיות מכונת העתק לקריאה
- MAINTENANCE_VERSION: גרסת תחזוקת התוכנה של Cloud SQL שרוצים להחיל
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"maintenanceVersion": "MAINTENANCE_VERSION"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "08:00",
"endTime": "08:01",
"operationType": UPDATE,
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
פתרון בעיות
| שגיאה | פתרון בעיות |
|---|---|
| אי אפשר להחיל עדכון תחזוקה על מופע שהופסק. | כדי לפתור את הבעיה, צריך להפעיל את המופע לפני שמבצעים את עדכון התחזוקה בשירות עצמי. |
| עדכון התחזוקה נכשל בגלל הבדל בגרסה הראשית של מסד הנתונים. | אי אפשר להשתמש בתחזוקה בשירות עצמי כדי לשדרג את הגרסה הראשית של מסד הנתונים של מופע. כדי לשדרג את הגרסה הראשית של מופע, משתמשים באחת מהפרוצדורות הבאות: |
המאמרים הבאים
- צפייה ביומני הפעולות של המכונה.
- כדאי לקרוא את השאלות הנפוצות בנושא תחזוקה.
- מידע נוסף על רפליקציה ב-Cloud SQL