בדף הזה מוסבר איך לנהל את מחזור החיים של פעולה ממושכת ב-Spanner באמצעות פקודות gcloud spanner operations ו-API בארכיטקטורת REST של פעולות. אפשר לבצע חלק מהפעולות גם במסוף Google Cloud .
פעולות ממושכות הן קריאות ל-method שיכולות להימשך זמן רב. Spanner יוצר פעולות ארוכות טווח עבור כמה פעולות שקשורות למופע, למסד נתונים ולגיבוי. לדוגמה, השיטה לשחזור מסד נתונים, projects.instances.databases.restore.
כשמשחזרים מסד נתונים, שירות Spanner יוצר פעולה ממושכת כדי לעקוב אחרי התקדמות השחזור. אם הפעולה נמשכת יותר זמן מהצפוי, אפשר להשתמש ב-gcloud כדי לבדוק את התקדמות הפעולה. אם הפעולה לא מגיבה, אפשר להשתמש בפקודה gcloud כדי לבטל אותה.
Spanner מספק ממשקי API של פעולות שמאפשרים לבדוק את ההתקדמות של פעולות ממושכות. אפשר גם להציג ברשימה ולבטל פעולות ארוכות טווח, ולמחוק פעולות ארוכות טווח של מופעים.
אפשר לבדוק ולנהל פעולות ממושכות באמצעות:
- ספריות לקוח של Spanner
- כלי שורת הפקודה
gcloud - Google Cloud המסוף
פקודות של 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.
כדי לבדוק את התקדמות הפעולה הממושכת של המופע:
- ניווט אל
projects.instances.operations.get. בשדה name, מזינים את השם של הפעולה הממושכת של המכונה, כפי שמופיע בתגובה ל-
projects.instances.createאו ל-projects.instances.patch. לדוגמה:projects/PROJECT-ID/instances/INSTANCE-NAME/operations/OPERATION-ID
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT-ID: מזהה הפרויקט.
- INSTANCE-NAME: שם המכונה.
- OPERATION-ID: מזהה הפעולות.
אפשר לאחזר את שם הפעולה של המכונה על ידי רישום פעולות ממושכות של מכונות.
לוחצים על Execute. כשפעולה מסתיימת, השדה
doneמוגדר ל-true.
כדי לקבל עדכונים שוטפים, צריך להפעיל שוב ושוב את השיטה projects.instances.databases.operations.get עד שהפעולה מסתיימת. צריך להשתמש בהשהיה לפני ניסיון חוזר בין כל בקשה. לדוגמה, לשלוח בקשה כל 10 שניות.
הצגת רשימה של פעולות ממושכות של מופעים
משתמשים בפקודה projects.instances.operations.list
כדי להציג רשימה של פעולות ממושכות במכונה.
- ניווט אל
projects.instances.operations.list. בשדה name (שם), מזינים:
projects/PROJECT-ID/instances/INSTANCE-NAME/operationsOPERATION-ID
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT-ID: מזהה הפרויקט.
- INSTANCE-NAME: שם המכונה.
- OPERATION-ID: מזהה הפעולות.
לוחצים על Execute. התשובה תכיל רשימה של פעולות ממושכות.
ביטול פעולה ממושכת של מופע
כדי לבטל פעולה ממושכת של מופע, משתמשים ב-projects.instances.operations.cancel
- ניווט אל
projects.instances.operations.cancel. בשדה name, מזינים את שם הפעולה הממושכת של המכונה כפי שמופיע בתגובה של הפעולה הממושכת של המכונה.
projects/PROJECT-ID/instances/INSTANCE-NAME/operations/OPERATION-ID
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT-ID: מזהה הפרויקט.
- INSTANCE-NAME: שם המכונה.
- OPERATION-ID: מזהה הפעולות.
אפשר גם לאחזר את שם הפעולה של המכונה על ידי רישום של פעולות ממושכות של מכונות.
לוחצים על Execute.
מחיקה של פעולה ממושכת של מכונה
כדי למחוק פעולה ממושכת של מופע, משתמשים ב-projects.instances.operations.delete.
- לוחצים על
projects.instances.operations.delete. בשדה name, מזינים את שם הפעולה הממושכת של המכונה כפי שמופיע בתגובה של הפעולה הממושכת של המכונה.
projects/<VAR>PROJECT-ID</VAR>/instances/<VAR>INSTANCE-NAME</VAR>/operations/<VAR>OPERATION-ID</VAR>מחליפים את מה שכתוב בשדות הבאים:
- PROJECT-ID: מזהה הפרויקט.
- INSTANCE-NAME: שם המכונה.
- OPERATION-ID: מזהה הפעולות.
אפשר גם לאחזר את שם הפעולה של המכונה על ידי רישום של פעולות ממושכות של מכונות.
עוברים אל Execute [הפעלה]. הפעולה נמחקת.
פעולות במסד נתונים
אלה פעולות ארוכות טווח במסד הנתונים.
projects.instances.databases.createprojects.instances.databases.restoreprojects.instances.databases.updateDdlprojects.instances.databaseOperations.list
בדיקת ההתקדמות של פעולה ממושכת במסד נתונים
כדי לבדוק את ההתקדמות של פעולה ממושכת במסד נתונים, משתמשים ב-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.
כדי לבדוק את התקדמות פעולת מסד הנתונים הממושכת:
בשדה 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: מזהה הפעולות.
אפשר גם לאחזר את שם הפעולה במסד הנתונים על ידי הצגת רשימה של פעולות ממושכות במסד הנתונים.
לוחצים על Execute. כשפעולה מסתיימת, השדה
doneמוגדר ל-true.
כדי לקבל עדכונים שוטפים, צריך להפעיל שוב ושוב את השיטה projects.instances.databases.operations.get עד שהפעולה מסתיימת. צריך להשתמש בהשהיה לפני ניסיון חוזר בין כל בקשה. לדוגמה, לשלוח בקשה כל 10 שניות.
הצגת רשימה של פעולות ממושכות במסד נתונים
משתמשים בפקודה projects.instances.databases.operations.list כדי להציג רשימה של פעולות ממושכות במסד הנתונים.
- ניווט אל
projects.instances.databases.operations.list. בשדה name (שם), מזינים:
projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/OPERATION-ID
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT-ID: מזהה הפרויקט.
- INSTANCE-NAME: שם המכונה.
- OPERATION-ID: מזהה הפעולות.
לוחצים על Execute. התשובה תכיל רשימה של פעולות ממושכות.
ביטול פעולה ארוכה במסד נתונים
כדי לבטל פעולה ממושכת במסד נתונים, משתמשים ב-projects.instances.databases.operations.cancel.
- ניווט אל
projects.instances.databases.operations.cancel. בשדה name, מזינים את השם של פעולת מסד הנתונים הממושכת כפי שמופיע בתגובה של פעולת מסד הנתונים הממושכת.
projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/OPERATION-ID
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT-ID: מזהה הפרויקט.
- INSTANCE-NAME: שם המכונה.
- OPERATION-ID: מזהה הפעולות.
אפשר גם לאחזר את שם הפעולה במסד הנתונים על ידי הצגת רשימה של פעולות ממושכות במסד הנתונים.
לוחצים על Execute.
פעולות של עדכון סכימה
אלה פעולות ממושכות של עדכון סכימה.
בדיקת ההתקדמות של פעולה ממושכת לעדכון סכימה
המסוף
בתפריט הניווט של Spanner, בוחרים בכרטיסייה Operations (פעולות). בדף Operations מוצגת רשימה של פעולות שפועלות.
מחפשים ברשימה את פעולת הסכימה. אם הפעולה עדיין פועלת, סרגל ההתקדמות בעמודה שעת סיום מציג את אחוז הפעולה שהושלם, כמו שמוצג בתמונה הבאה:

gcloud
כדי לבדוק את התקדמות הפעולה, משתמשים ב-gcloud spanner operations describe.
קבלת מזהה הפעולה:
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE-NAME: שם מכונת Spanner.
- DATABASE-NAME: שם המכונה.
- DATABASE-NAME: שם מסד הנתונים.
מריצים את
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
קבלת מזהה הפעולה:
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE-NAME: שם מכונת Spanner.
- DATABASE-NAME: שם מסד הנתונים.
כדי לבטל פעולה ממושכת של עדכון סכימה, משתמשים ב-
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.
קבלת מזהה הפעולה:
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE-NAME: שם מכונת Spanner.
- DATABASE-NAME: שם מסד הנתונים.
בשדה name, מזינים את שם הפעולה הממושכת לעדכון הסכימה כפי שמופיע בתגובה של הפעולה הממושכת לעדכון הסכימה.
projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/operations/OPERATION-ID
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT-ID: מזהה הפרויקט.
- INSTANCE-NAME: שם המכונה.
- OPERATION-ID: מזהה הפעולות.
אפשר גם לאחזר את שם הפעולה של עדכון הסכימה על ידי רישום פעולות ממושכות של מופע.
לוחצים על Execute. הפעולה מפסיקה לפעול.
פעולות גיבוי ושחזור
אלה פעולות גיבוי ממושכות.
בדיקת ההתקדמות של פעולת גיבוי או שחזור ממושכת
המסוף
גיבוי
בתפריט הניווט של Spanner, בוחרים בכרטיסייה Operations (פעולות). בדף פעולות מוצגת רשימה של פעולות שפועלות כרגע.
מחפשים ברשימה את פעולת הסכימה. אם הפעולה עדיין פועלת, סרגל ההתקדמות בעמודה שעת סיום מציג את אחוז הפעולה שהושלם, כמו שמוצג בתמונה הבאה:

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

אם הפעולה נמשכת יותר מדי זמן, אפשר לבטל אותה. מידע נוסף זמין במאמר בנושא ביטול פעולה ממושכת של מופע.
gcloud
כדי לבדוק את התקדמות הגיבוי או השחזור, משתמשים ב-gcloud spanner operations describe.
קבלת מזהה הפעולה:
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=TYPE
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE-NAME: שם מכונת Spanner.
- DATABASE-NAME: שם מסד הנתונים.
- TYPE: סוג הפעולה. הערכים האפשריים הם
BACKUPו-DATABASE_RESTORE.
מריצים את
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
כדי להציג את כל פעולות הגיבוי במופע.
בשדה name (שם), מזינים:
projects/PROJECT-ID/instances/INSTANCE-NAME/backups/BACKUP-NAME/OPERATION-ID
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT-ID: מזהה הפרויקט.
- INSTANCE-NAME: שם המכונה.
- BACKUP-NAME: השם של הגיבוי.
- OPERATION-ID: מזהה הפעולות.
לוחצים על Execute. התשובה תכיל רשימה של פעולות ממושכות.
ביטול פעולת גיבוי ארוכה
כדי לבטל פעולת גיבוי ממושכת, משתמשים ב-projects.instances.backups.operations.cancel.
בשדה name מזינים את השם של פעולת הגיבוי הממושכת כפי שמופיע בתגובה של פעולת הגיבוי הממושכת.
projects/PROJECT-ID/instances/INSTANCE-NAME/backups/BACKUP-NAME/operations/OPERATION-ID
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT-ID: מזהה הפרויקט.
- INSTANCE-NAME: שם המכונה.
- BACKUP-NAME: השם של הגיבוי.
- OPERATION-ID: מזהה הפעולות.
אפשר גם לאחזר את שם פעולת הגיבוי על ידי רישום פעולות גיבוי ממושכות.
לוחצים על Execute.