הקטנת נפח האחסון של מופע

בדף הזה מוסבר איך לנהל את קיבולת האחסון של מכונה ב-Cloud SQL באמצעות יכולות כיווץ האחסון.

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

  1. בודקים את מגבלות התכונה.

  2. אם אתם משתמשים ב-CLI של gcloud, ודאו שאתם משתמשים בגרסה העדכנית של Google Cloud SDK ושל ה-CLI של gcloud.

  3. מקבלים את הרשאות ה-IAM הבאות:

    • cloudsql.instances.getDiskShrinkConfig
    • cloudsql.instances.performDiskShrink

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

    • אדמין ב-Cloud SQL‏ (roles/cloudsql.admin)
    • עריכה ב-Cloud SQL‏ (roles/cloudsql.editor)

    מידע נוסף זמין במקורות המידע הבאים:

הכנת המכונה

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

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

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

  1. מאתרים את מזהה הפרויקט שמכיל את המכונה שרוצים לנהל.

  2. בודקים את המצב הנוכחי של המכונה כדי לוודא שהיא פועלת. אחת הדרכים לבדוק היא להשתמש בפקודה describe:

      gcloud sql instances describe
    

    הפונקציה מחזירה את הסטטוס הבא:

      RUNNABLE
    

    אם לא, מפעילים את המכונה.

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

  4. משביתים את כל התוספים או התכונות שמאפשרים חיבורים יוצאים (או שדורשים העברת נתונים יוצאים).

הקטנת נפח האחסון של מכונה

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

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

    gcloud

    מריצים את הפקודה gcloud sql instances get-storage-shrink-config:

    gcloud sql instances get-storage-shrink-config INSTANCE_NAME
    

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

    • ‫INSTANCE_NAME: השם של המכונה הראשית.

    התשובה כוללת ערך של minimalTargetSizeGb. אפשר להשתמש בערך הזה כדי לקבוע את הערך שרוצים להשתמש בו בפרמטר --storage-size כשמפעילים פעולת כיווץ של האחסון.

    התגובה גם מחזירה הודעה עם זמן הפעולה המשוער, בדומה לזה:

    ...
    "The estimated operation time is 20 minutes".
    

    REST v1

    משתמשים בשיטה GET כדי לראות את קיבולת האחסון המינימלית של המכונה.

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

    • ‫PROJECT_ID: שם הפרויקט שבו נמצא המכונה הראשית.
    • ‫INSTANCE_ID: מזהה המכונה של המכונה הראשית.

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/getDiskShrinkConfig

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    התשובה כוללת ערך של min_target_size_gb. אפשר להשתמש בערך הזה כדי לקבוע את הערך שרוצים להשתמש בו בפרמטר --storage-size כשמפעילים פעולת כיווץ של האחסון.

    התגובה גם מחזירה הודעה עם זמן הפעולה המשוער, בדומה לזה:

    ...
    "The estimated operation time is 20 minutes".
    

    REST v1beta4

    משתמשים בשיטה GET כדי לראות את קיבולת האחסון המינימלית של המכונה.

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

    • ‫PROJECT_ID: שם הפרויקט שבו נמצא המכונה הראשית.
    • ‫INSTANCE_ID: מזהה המכונה של המכונה הראשית.

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/getDiskShrinkConfig

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    התשובה כוללת ערך של min_target_size_gb. אפשר להשתמש בערך הזה כדי לקבוע את הערך שרוצים להשתמש בו בפרמטר --storage-size כשמפעילים פעולת כיווץ של האחסון.

    התגובה גם מחזירה הודעה עם זמן הפעולה המשוער, בדומה לזה:

    ...
    "The estimated operation time is 20 minutes".
    
  2. להקטין את נפח האחסון של המכונה.

    gcloud

    מריצים את הפקודה הבאה כדי לצמצם את נפח האחסון במכונה:

    gcloud sql instances perform-storage-shrink INSTANCE_NAME \
      --storage-size=TARGET_STORAGE_SIZE
    

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

    • ‫INSTANCE_NAME: שם המכונה.
    • ‫TARGET_STORAGE_SIZE: נפח האחסון הרצוי ב-GB. לדוגמה, 100GB.

    REST v1

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

    • ‫PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
    • ‫INSTANCE_ID: מזהה המכונה.
    • ‫TARGET_STORAGE_SIZE: נפח האחסון הרצוי ב-GB.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/performDiskShrink

    תוכן בקשת JSON:

    {
      "targetSizeGb": TARGET_STORAGE_SIZE
    }
    

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    REST v1beta4

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

    • ‫PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
    • ‫INSTANCE_ID: מזהה המכונה.
    • ‫TARGET_STORAGE_SIZE: נפח האחסון הרצוי של המכונה.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/performDiskShrink

    תוכן בקשת JSON:

    {
      "targetSizeGb": TARGET_STORAGE_SIZE
    }
    

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

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

ביטול הפעולה של כיווץ האחסון

  1. מאתרים את מזהה הפעולה של כיווץ האחסון.

    כדי לאחזר את מזהה הפעולה, מריצים את הפקודה list הבאה:

    gcloud sql operations list
    
  2. שולחים בקשת ביטול.

    gcloud

    מריצים את הפקודה הבאה כדי לבטל את הבקשה:

    gcloud sql operations cancel OPERATION_ID
    

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

    ‫OPERATION_ID: המזהה של פעולת צמצום האחסון שרוצים לבטל.

    REST v1

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

    • ‫PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
    • ‫OPERATION_ID: המזהה של פעולת צמצום האחסון שרוצים לבטל.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID/cancel

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.

    REST v1beta4

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

    • ‫PROJECT_ID: מזהה הפרויקט שבו נמצא המכונה.
    • ‫OPERATION_ID: המזהה של פעולת צמצום האחסון שרוצים לבטל.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID/cancel

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.

בדיקת הסטטוס של בקשת ביטול או פעולה אחרת

כדי לבדוק את הסטטוס של בקשה, מריצים את הפקודות הבאות:

gcloud

  1. מאתרים את מזהה הפעולה של בקשת הביטול:

    gcloud sql operations list
    
  2. בודקים את סטטוס הפעולה:

    gcloud sql operations describe OPERATION_ID
    

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

    ‫OPERATION_ID: המזהה של הפעולה שרוצים לבדוק.

REST v1

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

  • ‫PROJECT_ID: שם הפרויקט שבו נמצא המכונה.
  • ‫OPERATION_ID: המזהה של פעולת צמצום האחסון.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

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

  • ‫PROJECT_ID: שם הפרויקט שבו נמצא המכונה.
  • ‫OPERATION_ID: המזהה של פעולת צמצום האחסון.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

פתרון בעיות

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

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