ניהול פעולות ממושכות ומעקב אחריהן

בדף הזה מוסבר איך לנהל את מחזור החיים של פעולה ממושכת ב-Spanner באמצעות פקודות gcloud spanner operations ו-API בארכיטקטורת REST של פעולות. אפשר לבצע חלק מהפעולות גם במסוף Google Cloud .

פעולות ממושכות הן קריאות ל-method שיכולות להימשך זמן רב. ‫Spanner יוצר פעולות ארוכות טווח עבור כמה פעולות שקשורות למופע, למסד נתונים ולגיבוי. לדוגמה, השיטה לשחזור מסד נתונים, projects.instances.databases.restore. כשמשחזרים מסד נתונים, שירות Spanner יוצר פעולה ממושכת כדי לעקוב אחרי התקדמות השחזור. אם הפעולה נמשכת יותר זמן מהצפוי, אפשר להשתמש ב-gcloud כדי לבדוק את התקדמות הפעולה. אם הפעולה לא מגיבה, אפשר להשתמש בפקודה gcloud כדי לבטל אותה.

‫Spanner מספק ממשקי API של פעולות שמאפשרים לבדוק את ההתקדמות של פעולות ממושכות. אפשר גם להציג ברשימה ולבטל פעולות ארוכות טווח, ולמחוק פעולות ארוכות טווח של מופעים.

אפשר לבדוק ולנהל פעולות ממושכות באמצעות:

פקודות של API בארכיטקטורת REST לניהול פעולות

אפשר לנהל את הפעולות הממושכות ב-Spanner באמצעות ה-methods הבאות של REST:

פעולה פעולות ממושכות במסד נתונים פעולות ממושכות של מופעים
ביטול פעולה ממושכת cancel cancel
מחיקת פעולה ממושכת לא נתמך delete
בדיקת ההתקדמות של פעולה ממושכת get get
הצגת רשימה של פעולות ממושכות list list

מידע על שימוש ב-REST עם Spanner זמין במאמר תחילת העבודה עם Spanner באמצעות REST.

פעולות במכונה

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

בדיקת ההתקדמות של פעולה ממושכת של מופע

כדי לבדוק את ההתקדמות של פעולת מופע ממושכת, משתמשים בפקודה projects.instances.operations.get.

לדוגמה, זו תשובה מ-projects.instances.create:

  {
    "name": "projects/test01/instances/test-instance/operations/_auto_1492721321097206",
    "metadata": {
      "@type": "type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceMetadata",
      "instance": {
        "name": "projects/<VAR>PROJECT-ID</VAR>/instances/test-instance",
        "config": "projects/<VAR>PROJECT-ID</VAR>/instanceConfigs/regional-us-central1",
        "displayName": "Test Instance",
        "nodeCount": 1,
        "state": "READY"
      },
      "startTime": "2017-04-24T22:45:41.130854Z"
    }
  }

הערך name בחלק העליון של התגובה מראה ששירות Spanner יצר פעולה ממושכת של מופע בשם projects/test01/instances/test-instance/operations/_auto_1492721321097206.

כדי לבדוק את התקדמות הפעולה הממושכת של המופע:

  1. ניווט אל projects.instances.operations.get.
  2. בשדה name, מזינים את השם של הפעולה הממושכת של המכונה, כפי שמופיע בתגובה ל-projects.instances.create או ל-projects.instances.patch. לדוגמה:

    projects/PROJECT-ID/instances/INSTANCE-NAME/operations/OPERATION-ID

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

    • PROJECT-ID: מזהה הפרויקט.
    • INSTANCE-NAME: שם המכונה.
    • OPERATION-ID: מזהה הפעולות.

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

  3. לוחצים על Execute. כשפעולה מסתיימת, השדה done מוגדר ל-true.

כדי לקבל עדכונים שוטפים, צריך להפעיל שוב ושוב את השיטה projects.instances.databases.operations.get עד שהפעולה מסתיימת. צריך להשתמש בהשהיה לפני ניסיון חוזר בין כל בקשה. לדוגמה, לשלוח בקשה כל 10 שניות.

הצגת רשימה של פעולות ממושכות של מופעים

משתמשים בפקודה projects.instances.operations.list כדי להציג רשימה של פעולות ממושכות במכונה.

  1. ניווט אל projects.instances.operations.list.
  2. בשדה name (שם), מזינים:

    projects/PROJECT-ID/instances/INSTANCE-NAME/operationsOPERATION-ID

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

    • PROJECT-ID: מזהה הפרויקט.
    • INSTANCE-NAME: שם המכונה.
    • OPERATION-ID: מזהה הפעולות.
  3. לוחצים על Execute. התשובה תכיל רשימה של פעולות ממושכות.

ביטול פעולה ממושכת של מופע

כדי לבטל פעולה ממושכת של מופע, משתמשים ב-projects.instances.operations.cancel

  1. ניווט אל projects.instances.operations.cancel.
  2. בשדה name, מזינים את שם הפעולה הממושכת של המכונה כפי שמופיע בתגובה של הפעולה הממושכת של המכונה.

    projects/PROJECT-ID/instances/INSTANCE-NAME/operations/OPERATION-ID

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

    • PROJECT-ID: מזהה הפרויקט.
    • INSTANCE-NAME: שם המכונה.
    • OPERATION-ID: מזהה הפעולות.

    אפשר גם לאחזר את שם הפעולה של המכונה על ידי רישום של פעולות ממושכות של מכונות.

  3. לוחצים על Execute.

מחיקה של פעולה ממושכת של מכונה

כדי למחוק פעולה ממושכת של מופע, משתמשים ב-projects.instances.operations.delete.

  1. לוחצים על projects.instances.operations.delete.
  2. בשדה name, מזינים את שם הפעולה הממושכת של המכונה כפי שמופיע בתגובה של הפעולה הממושכת של המכונה.

    projects/<VAR>PROJECT-ID</VAR>/instances/<VAR>INSTANCE-NAME</VAR>/operations/<VAR>OPERATION-ID</VAR>
    

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

    • PROJECT-ID: מזהה הפרויקט.
    • INSTANCE-NAME: שם המכונה.
    • OPERATION-ID: מזהה הפעולות.

    אפשר גם לאחזר את שם הפעולה של המכונה על ידי רישום של פעולות ממושכות של מכונות.

  3. עוברים אל Execute [הפעלה]. הפעולה נמחקת.

פעולות במסד נתונים

אלה פעולות ארוכות טווח במסד הנתונים.

בדיקת ההתקדמות של פעולה ממושכת במסד נתונים

כדי לבדוק את ההתקדמות של פעולה ממושכת במסד נתונים, משתמשים ב-projects.instances.databases.operations.get.

לדוגמה, זו תגובה מ-projects.instances.databases.create:

{
  "name": "projects/test01/instances/test-instance/databases/example-db/operations/_auto_1492721321097206",
  "metadata": {
    "@type": "type.googleapis.com/google.spanner.admin.database.v1.CreateDatabaseMetadata",
    "database": "projects/test01/instances/test-instance/databases/example-db"
  }
}

הערך name בחלק העליון של התגובה מראה ששירות Spanner יצר פעולה ממושכת במסד נתונים בשם projects/test01/instances/test-instance/databases/example-db/operations/_auto_1492721321097206.

כדי לבדוק את התקדמות פעולת מסד הנתונים הממושכת:

  1. ניווט אל projects.instances.databases.operations.get.

  2. בשדה name, מזינים את השם של פעולת מסד הנתונים הממושכת כפי שמופיע בתגובה ל-projects.instances.databases.create או ל-projects.instances.databases.updateDdl.

    projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/operations/OPERATION-ID

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

    • PROJECT-ID: מזהה הפרויקט.
    • INSTANCE-NAME: שם המכונה.
    • OPERATION-ID: מזהה הפעולות.

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

  3. לוחצים על Execute. כשפעולה מסתיימת, השדה done מוגדר ל-true.

כדי לקבל עדכונים שוטפים, צריך להפעיל שוב ושוב את השיטה projects.instances.databases.operations.get עד שהפעולה מסתיימת. צריך להשתמש בהשהיה לפני ניסיון חוזר בין כל בקשה. לדוגמה, לשלוח בקשה כל 10 שניות.

הצגת רשימה של פעולות ממושכות במסד נתונים

משתמשים בפקודה projects.instances.databases.operations.list כדי להציג רשימה של פעולות ממושכות במסד הנתונים.

  1. ניווט אל projects.instances.databases.operations.list.
  2. בשדה name (שם), מזינים:

    projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/OPERATION-ID

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

    • PROJECT-ID: מזהה הפרויקט.
    • INSTANCE-NAME: שם המכונה.
    • OPERATION-ID: מזהה הפעולות.
  3. לוחצים על Execute. התשובה תכיל רשימה של פעולות ממושכות.

ביטול פעולה ארוכה במסד נתונים

כדי לבטל פעולה ממושכת במסד נתונים, משתמשים ב-projects.instances.databases.operations.cancel.

  1. ניווט אל projects.instances.databases.operations.cancel.
  2. בשדה name, מזינים את השם של פעולת מסד הנתונים הממושכת כפי שמופיע בתגובה של פעולת מסד הנתונים הממושכת.

    projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/OPERATION-ID

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

    • PROJECT-ID: מזהה הפרויקט.
    • INSTANCE-NAME: שם המכונה.
    • OPERATION-ID: מזהה הפעולות.

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

  3. לוחצים על Execute.

פעולות של עדכון סכימה

אלה פעולות ממושכות של עדכון סכימה.

בדיקת ההתקדמות של פעולה ממושכת לעדכון סכימה

המסוף

  1. בתפריט הניווט של Spanner, בוחרים בכרטיסייה Operations (פעולות). בדף Operations מוצגת רשימה של פעולות שפועלות.

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

צילום מסך של אינדיקטור התקדמות שמראה 98%

gcloud

כדי לבדוק את התקדמות הפעולה, משתמשים ב-gcloud spanner operations describe.

  1. קבלת מזהה הפעולה:

    gcloud spanner operations list \
    --instance=INSTANCE-NAME \
    --database=DATABASE-NAME \
    --type=DATABASE_UPDATE_DDL

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

    • INSTANCE-NAME: שם מכונת Spanner.
    • DATABASE-NAME: שם המכונה.
    • DATABASE-NAME: שם מסד הנתונים.
  2. מריצים את gcloud spanner operations describe:

    gcloud spanner operations describe OPERATION-ID \
    --instance=INSTANCE-NAME \
    --database=DATABASE-NAME

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

    • OPERATION-ID: מזהה הפעולה שרוצים לבדוק.
    • INSTANCE-NAME: שם מכונת Spanner.
    • DATABASE-NAME: שם מסד הנתונים של Spanner.

    בקטע progress בפלט מוצג האחוז של הפעולה שהושלמה. הפלט אמור להיראות כך:

    done: true
    metadata:
    ...
      progress:
      - endTime: '2022-03-01T00:28:06.691403Z'
        progressPercent: 100
        startTime: '2022-03-01T00:28:04.221401Z'
      - endTime: '2022-03-01T00:28:17.624588Z'
        startTime: '2022-03-01T00:28:06.691403Z'
        progressPercent: 100
    ...
    

REST v1

קבלת מזהה הפעולה:

gcloud spanner operations list \
--instance=INSTANCE-NAME \
--database=DATABASE-NAME \
--type=DATABASE_UPDATE_DDL

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

  • INSTANCE-NAME: שם מכונת Spanner.
  • DATABASE-NAME: שם מסד הנתונים.

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

  • PROJECT-ID: מזהה הפרויקט.
  • INSTANCE-ID: מזהה המכונה.
  • DATABASE-ID: מזהה מסד הנתונים.
  • OPERATION-ID: מזהה הפעולה.

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

GET https://spanner.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID/databases/DATABASE-ID/operations/OPERATION-ID

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

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

{
...
    "progress": [
      {
        "progressPercent": 100,
        "startTime": "2023-05-27T00:52:27.366688Z",
        "endTime": "2023-05-27T00:52:30.184845Z"
      },
      {
        "progressPercent": 100,
        "startTime": "2023-05-27T00:52:30.184845Z",
        "endTime": "2023-05-27T00:52:40.750959Z"
      }
    ],
...
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

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

הצגת רשימה של פעולות ממושכות לעדכון סכימה

gcloud

gcloud spanner operations list \
 --instance=INSTANCE-NAME \
 --database=DATABASE-NAME \
 --type=DATABASE_UPDATE_DDL

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

  • INSTANCE-NAME: שם מכונת Spanner.
  • DATABASE-NAME: שם מסד הנתונים.

הפלט אמור להיראות כך:

OPERATION-ID     STATEMENTS                                                                                           DONE   @TYPE
_auto_op_123456  CREATE INDEX SingersByFirstLastName ON Singers(FirstName, LastName)                                  False  UpdateDatabaseDdlMetadata
_auto_op_234567  CREATE INDEX SongsBySingerAlbumSongName ON Songs(SingerId, AlbumId, SongName), INTERLEAVE IN Albums  True   CreateDatabaseMetadata

ביטול פעולת עדכון סכימה שפועלת במשך זמן רב

gcloud

  1. קבלת מזהה הפעולה:

    gcloud spanner operations list \
    --instance=INSTANCE-NAME \
    --database=DATABASE-NAME \
    --type=DATABASE_UPDATE_DDL

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

    • INSTANCE-NAME: שם מכונת Spanner.
    • DATABASE-NAME: שם מסד הנתונים.
  2. כדי לבטל פעולה ממושכת של עדכון סכימה, משתמשים ב-gcloud spanner operations cancel.

    gcloud spanner operations cancel OPERATION-ID \
     --instance=INSTANCE-NAME

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

    • OPERATION-ID: מזהה הפעולה שרוצים לבדוק.
    • INSTANCE-NAME: שם מכונת Spanner.

REST V1

כדי לבטל פעולה ממושכת של עדכון סכימה, משתמשים ב-projects.instances.databases.operations.cancel.

  1. קבלת מזהה הפעולה:

    gcloud spanner operations list \
    --instance=INSTANCE-NAME \
    --database=DATABASE-NAME \
    --type=DATABASE_UPDATE_DDL

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

    • INSTANCE-NAME: שם מכונת Spanner.
    • DATABASE-NAME: שם מסד הנתונים.
  2. ניווט אל projects.instances.databases.operations.cancel.

  3. בשדה name, מזינים את שם הפעולה הממושכת לעדכון הסכימה כפי שמופיע בתגובה של הפעולה הממושכת לעדכון הסכימה.

    projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/operations/OPERATION-ID

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

    • PROJECT-ID: מזהה הפרויקט.
    • INSTANCE-NAME: שם המכונה.
    • OPERATION-ID: מזהה הפעולות.

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

  4. לוחצים על Execute. הפעולה מפסיקה לפעול.

פעולות גיבוי ושחזור

אלה פעולות גיבוי ממושכות.

בדיקת ההתקדמות של פעולת גיבוי או שחזור ממושכת

המסוף

גיבוי

  1. בתפריט הניווט של Spanner, בוחרים בכרטיסייה Operations (פעולות). בדף פעולות מוצגת רשימה של פעולות שפועלות כרגע.

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

צילום מסך של אינדיקטור התקדמות שמראה 98%

שחזור

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

צילום מסך של מחוון התקדמות שמציג 56%

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

gcloud

כדי לבדוק את התקדמות הגיבוי או השחזור, משתמשים ב-gcloud spanner operations describe.

  1. קבלת מזהה הפעולה:

    gcloud spanner operations list \
    --instance=INSTANCE-NAME \
    --database=DATABASE-NAME \
    --type=TYPE

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

    • INSTANCE-NAME: שם מכונת Spanner.
    • DATABASE-NAME: שם מסד הנתונים.
    • TYPE: סוג הפעולה. הערכים האפשריים הם BACKUP ו-DATABASE_RESTORE.
  2. מריצים את gcloud spanner operations describe:

    gcloud spanner operations describe OPERATION-ID \
    --instance=INSTANCE-NAME \
    --database=DATABASE-NAME

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

    • OPERATION-ID: מזהה הפעולה שרוצים לבדוק.
    • INSTANCE-NAME: שם מכונת Spanner.
    • DATABASE-NAME: שם מסד הנתונים של Spanner.

    בקטע progress בפלט מוצג האחוז של הפעולה שהושלמה. הפלט אמור להיראות כך:

    done: true
    metadata:
    ...
      progress:
      - endTime: '2022-03-01T00:28:06.691403Z'
        progressPercent: 100
        startTime: '2022-03-01T00:28:04.221401Z'
      - endTime: '2022-03-01T00:28:17.624588Z'
        startTime: '2022-03-01T00:28:06.691403Z'
        progressPercent: 100
    ...
    

REST v1

קבלת מזהה הפעולה:

 gcloud spanner operations list 
--instance=INSTANCE-NAME
--database=DATABASE-NAME
--type=DATABASE_UPDATE_DDL

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

  • INSTANCE-NAME: שם מכונת Spanner.
  • DATABASE-NAME: שם מסד הנתונים.

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

  • PROJECT-ID: מזהה הפרויקט.
  • INSTANCE-ID: מזהה המכונה.
  • DATABASE-ID: מזהה מסד הנתונים.
  • OPERATION-ID: מזהה הפעולה.

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

GET https://spanner.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID/databases/DATABASE-ID/operations/OPERATION-ID

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

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

{
...
    "progress": [
      {
        "progressPercent": 100,
        "startTime": "2023-05-27T00:52:27.366688Z",
        "endTime": "2023-05-27T00:52:30.184845Z"
      },
      {
        "progressPercent": 100,
        "startTime": "2023-05-27T00:52:30.184845Z",
        "endTime": "2023-05-27T00:52:40.750959Z"
      }
    ],
...
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

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

הצגת רשימה של פעולות גיבוי או שחזור ממושכות

משתמשים בפקודה projects.instances.backups.operations.list כדי להציג את הפעולות בגיבוי יחיד, או בפקודה projects.instances.backupOperations.list כדי להציג את כל פעולות הגיבוי במופע.

  1. ניווט אל projects.instances.backups.operations.list.

  2. בשדה name (שם), מזינים:

    projects/PROJECT-ID/instances/INSTANCE-NAME/backups/BACKUP-NAME/OPERATION-ID

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

    • PROJECT-ID: מזהה הפרויקט.
    • INSTANCE-NAME: שם המכונה.
    • BACKUP-NAME: השם של הגיבוי.
    • OPERATION-ID: מזהה הפעולות.
  3. לוחצים על Execute. התשובה תכיל רשימה של פעולות ממושכות.

ביטול פעולת גיבוי ארוכה

כדי לבטל פעולת גיבוי ממושכת, משתמשים ב-projects.instances.backups.operations.cancel.

  1. ניווט אל projects.instances.backups.operations.cancel.

  2. בשדה name מזינים את השם של פעולת הגיבוי הממושכת כפי שמופיע בתגובה של פעולת הגיבוי הממושכת.

    projects/PROJECT-ID/instances/INSTANCE-NAME/backups/BACKUP-NAME/operations/OPERATION-ID

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

    • PROJECT-ID: מזהה הפרויקט.
    • INSTANCE-NAME: שם המכונה.
    • BACKUP-NAME: השם של הגיבוי.
    • OPERATION-ID: מזהה הפעולות.

    אפשר גם לאחזר את שם פעולת הגיבוי על ידי רישום פעולות גיבוי ממושכות.

  3. לוחצים על Execute.