בעיות בעדכון נפח האחסון

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

הקטנת נפח האחסון נכשלת בסוגי מכונות C4A ו-N4

יכול להיות שתקבלו את השגיאה הבאה כשאתם מנסים להחיל פעולת הקטנה של נפח האחסון על סוג מכונה C4A או N4:

  ERROR: (gcloud.sql.instances.perform-storage-shrink) HTTPError 400: Invalid
  request: Requested provisioned IOPS is too high for the machine type and/or data disk size.

סוגי המכונות C4A ו-N4 משתמשים ב-Google Cloud Hyperdisk, שמאפשר למשתמשים לשנות את ערכי התפוקה וה-IOPS של הדיסק. אם תנסו להקטין את גודל הדיסק לנקודה שבה ערכי התפוקה וה-IOPS שהוגדרו יהפכו ללא תקפים, פעולת הקטנת הדיסק תיכשל ותחזיר שגיאה.

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

כדי לפתור את הבעיה, צריך לחשב מחדש את גודל האחסון הרצוי לשימוש בהתאם למגבלות של Google Cloud Hyperdisk במכונה, ולהפעיל מחדש את פעולת הכיווץ של האחסון.

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

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

  {
    "kind": "sql#operation",
    "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/example_instance",
    "status": "RUNNING",
    "user": "user@example.com",
    "insertTime": "2023-12-18T22:54:11.663Z",
    "startTime": "2023-12-18T22:54:12.047Z",
    "error": {
      "kind": "sql#operationErrors",
      "errors": [
        {
          "kind": "sql#operationError",
          "code": "CANCEL_ERROR",
          "message": "The UPDATE operation 490cdbe6-8b75-415c-99c1-ccc80000004f can not be cancelled."
        }
      ]
    },
    "operationType": "UPDATE",
    "name": "OPERATION_ID",
    "targetId": "example_instance",
    "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
    "targetProject": "PROJECT_ID"
  }

כדי לפתור את הבעיה, בצע את הצעדים הבאים:

  1. הודעת השגיאה הזו עשויה להצביע על כך שבקשת הביטול כמעט הושלמה. כדאי לנסות לבדוק שוב את סטטוס הפעולה בעוד כמה דקות.
  2. אם אותה הודעת שגיאה עדיין מופיעה, אפשר לפנות אל התמיכה של Cloud SQL לקבלת עזרה.
  3. אם הפעולה בוצעה בהצלחה, תוצג הודעה שדומה לזו:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/example_instance",
      "status": "DONE",
      "user": "user@example.com",
      "insertTime": "2023-12-18T22:54:11.663Z",
      "startTime": "2023-12-18T22:54:12.047Z",
      "error": {
        "kind": "sql#operationErrors",
        "errors": [
          {
            "kind": "sql#operationError",
            "code": "CANCEL_SUCCESSFUL",
            "message": "The UPDATE operation is canceled."
          }
        ]
      },
      "operationType": "UPDATE",
      "name": "OPERATION_ID",
      "targetId": "example_instance",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

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

יכול להיות שתקבלו את השגיאה הבאה כשאתם מנסים להפעיל פעולה של הקטנת נפח האחסון:

  There is a pending blocking operation for instance: INSTANCE_NAME

הודעת השגיאה הזו עשויה להצביע על כך שפעולה אחרת עדיין פועלת, כמו:

  • פעולת גיבוי
  • פעולת ייבוא
  • פעולה קודמת של הקטנת נפח האחסון במופע
  • פעולת צמצום אחסון שעדיין פועלת במופע ראשי שמשויך לרפליקה לקריאה שרוצים לשנות

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

אם פעולה קודמת של IMPORT נתקעת, צריך לפנות לתמיכה של Cloud SQL כדי לבקש עזרה בביטול הפעולה.

מידע נוסף מופיע בקטע מגבלות.

גודל אחסון לא תקין למופע ראשי

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

דוגמה 1

  Invalid target storage size SIZE. Target storage
  size should be at least 10GB, which is the minimum storage size for a
  Cloud SQL instance.
  • גודל היעד המבוקש צריך להיות גדול או שווה לגודל האחסון המינימלי המותר למופע.

    כדי לפתור את הבעיה, צריך לציין גודל אחסון גדול יותר ולבצע שוב את הפעולה.

    מידע נוסף מופיע בקטע מגבלות.

דוגמה 2

  Instance INSTANCE_NAME cannot shrink storage further
  because the storage size is 10GB and the minimum storage size for a Cloud SQL
  instance is 10GB.
  • גודל היעד המבוקש קטן מדי. אם גודל היעד המבוקש של --storage-size כבר מוגדר לגודל המינימלי של 10 GB, אי אפשר להקטין אותו יותר.

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

    מידע נוסף מופיע בקטע מגבלות.

דוגמה 3

  ERROR: (gcloud.sql.instances.perform-storage-shrink) argument --storage-size: VALUE
  must be greater than or equal to 10GB; received: SIZE
  • אם גודל היעד המבוקש של --storage-size קטן מדי, מריצים את הפקודה הבאה במופע הראשי כדי לקבל את קיבולת האחסון המינימלית המותרת:

    gcloud sql instances get-storage-shrink-config PRIMARY_INSTANCE_NAME
    

    התשובה כוללת ערך של minimalTargetSizeGb. אפשר להשתמש בערך הזה בפרמטר --storage-size ולהריץ שוב את הפעולה.

דוגמה 4

  Invalid target storage size SIZE. Target storage
  size should be smaller than present storage size CURRENT_SIZE.
  • אם גודל היעד המבוקש של --storage-size גדול מדי, זה מצביע על כך שהערך גדול יותר מגודל האחסון הנוכחי של המופע הראשי, וצריך להשתמש בערך קטן יותר.

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

דוגמה 5

  Requested storage size is too close to current storage usage, request storage
  size should be minimum SIZEGB.
  • אם גודל היעד המבוקש קרוב מדי לגודל האחסון הקיים, צריך לשנות את הערך ולהפעיל שוב את הפעולה. אפשרויות השינוי כוללות:

    • להגדיל את ערך היעד.
    • מגדירים את ערך היעד כך שיהיה זהה לערך של minimalTargetSizeGb.

    מידע נוסף מופיע בקטע מגבלות.

גודל אחסון לא תקין של עותק משוכפל

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

דוגמה 1

  Cannot shrink storage further for replica INSTANCE_NAME
  because the minimum storage size for a Cloud SQL replica is 10GB.

אם גודל היעד המבוקש של --storage-size כבר הגיע לגודל המינימלי של 10GB, אי אפשר להקטין אותו יותר.

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

מידע נוסף מופיע בקטע מגבלות.

דוגמה 2

  Cannot shrink storage further for replica REPLICA_INSTANCE_NAME
  because current replica storage size isn't greater than primary instance
  PRIMARY_INSTANCE_ID storage size. If you want to shrink
  both primary and replica instance, please shrink primary instance first.

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

מידע נוסף מופיע בקטע מגבלות.

אין מספיק נפח אחסון

השגיאה הבאה עשויה להופיע כשמנסים להגדיר את גודל הכיווץ של האחסון:

  {
    "error": {
      "code": 400,
      "message": "Invalid target storage size TARGET_SIZE. ...",
      "errors": ...
  }

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

כדי לפתור את הבעיה, בצע את הצעדים הבאים:

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

הקטנת נפח האחסון נכשלת אחרי 10 ימים

אם פעולת הצמצום נמשכת יותר מ-10 ימים, היא תסתיים בטיימאאוט.

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

הקטנת נפח האחסון נכשלת עם שגיאה פנימית

אם פעולות צמצום האחסון לא יצליחו, יכול להיות שתופיע הודעה על שגיאה פנימית.

כדי לפתור את הבעיה, אפשר לפנות לתמיכה של Cloud SQL לקבלת עזרה.

הפקודה Storage shrink gcloud נכשלת אחרי 10 דקות

יכול להיות שתופיע השגיאה הבאה כשמנסים להקטין את נפח האחסון של מופע באמצעות הפקודה gcloud sql instances:

  Performing a storage size decrease on a Cloud SQL instance....failed.

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

כדי לפתור את הבעיה, מוסיפים את האפשרות --async לסוף הפקודה כדי להמתין לפעולה באופן אסינכרוני.

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