אתם יכולים להשתמש בשחזור לנקודת זמן (PITR) כדי לשחזר את המכונות הראשיות של Cloud SQL, בין אם המכונה פעילה או נמחקה. בעזרת PITR אפשר לשחזר את המופע לנקודה ספציפית בזמן. שחזור מערכת מנקודה מסוימת בזמן (PITR) תמיד יוצר מכונה חדשה, ואי אפשר לבצע PITR למכונה קיימת.
Cloud SQL מספק את האפשרויות הבאות לשחזור המכונה באמצעות PITR:
כדי לבצע PITR במופע לא זמין או במופע שנמחק, צריך למצוא את זמן השחזור המוקדם והמאוחר ביותר.
ביצוע PITR
המסוף
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- פותחים את התפריט 'פעולות נוספות'
של המכונה שרוצים לשחזר ולוחצים על Create clone. - אופציונלי: בדף יצירת שיבוט, מעדכנים את המזהה של השיבוט החדש.
- בוחרים באפשרות שיבוט מנקודת זמן מוקדמת יותר.
- מזינים את השעה של ה-PITR.
- בוחרים באפשרות כל מסדי הנתונים או מציינים שם של מסד נתונים.
אם מציינים שם של מסד נתונים, אפשר לבחור רק אחד. כברירת מחדל, PITR מופעל לכל מסדי הנתונים. - לוחצים על יצירת שיבוט.
gcloud
יצירת שיבוט באמצעות PITR.
מחליפים את מה שכתוב בשדות הבאים:
- SOURCE_INSTANCE_NAME – השם של המכונה שממנה משחזרים.
- NEW_INSTANCE_NAME – השם של העותק.
- TIMESTAMP – אזור הזמן UTC של מופע המקור בפורמט RFC 3339. לדוגמה: 2012-11-15T16:19:00.094Z.
gcloud sql instances clone SOURCE_INSTANCE_NAME \ NEW_INSTANCE_NAME \ --point-in-time 'TIMESTAMP'
REST v1
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- target-instance-id: מזהה מכונת היעד
- source-instance-id: מזהה מופע המקור
- restore-timestamp הנקודה בזמן שאליה אפשר לשחזר
בבקשת ה-JSON, אפשר לציין עד שם מסד נתונים ספציפי אחד באופן הבא: "databaseNames": "my-database"
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/source-instance-id/clone
תוכן בקשת JSON:
{
"cloneContext":
{
"kind": "sql#cloneContext",
"destinationInstanceName": "target-instance-id",
"pointInTime": "restore-timestamp"
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
REST v1beta4
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- target-instance-id: מזהה מכונת היעד
- source-instance-id: מזהה מופע המקור
- restore-timestamp הנקודה בזמן שאליה אפשר לשחזר
בבקשת ה-JSON, אפשר לציין עד שם מסד נתונים ספציפי אחד באופן הבא: "databaseNames": "my-database"
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/source-instance-id/clone
תוכן בקשת JSON:
{
"cloneContext":
{
"kind": "sql#cloneContext",
"destinationInstanceName": "target-instance-id",
"pointInTime": "restore-timestamp"
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
ביצוע PITR באמצעות כספת הגיבוי
אם במכונה שלכם ב-Cloud SQL מופעלת האפשרות גיבויים משופרים, תוכלו לבצע שחזור לנקודת זמן מסוימת במכונה באמצעות כספת הגיבוי.
המסוף
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
פותחים את תפריט הפעולות הנוספות
של המכונה שרוצים לשחזר ולוחצים על Create clone.בוחרים באפשרות שיבוט מנקודת זמן מוקדמת יותר.
מזינים את השעה של ה-PITR.
לוחצים על יצירת שיבוט.
gcloud
כדי לבצע PITR במופע מכספת הגיבוי, צריך למצוא את data-source של הגיבוי שהכי קרוב לזמן שבו רוצים לבצע את ה-PITR. כדי למצוא את הגיבוי, אפשר לעיין במאמר בנושא הצגת רשימה של כל הגיבויים בכספת הגיבויים של מופע. אחרי שמזהים את הגיבוי, מריצים את הפקודה הבאה כדי לבצע את השחזור לנקודת זמן:
gcloud sql instances point-in-time-restore DATA_SOURCE TARGET_INSTANCE_NAME PITR_TIMESTAMP \
--project=TARGET_PROJECT \
--region=REGION
מחליפים את מה שכתוב בשדות הבאים:
- DATA_SOURCE: הנתיב של
data-sourceלמופע המקור, שהכי קרוב לחותמת הזמן של PITR שרוצים לשחזר. - TARGET_INSTANCE_NAME: השם של המכונה החדשה שנוצרת על ידי פעולת ה-PITR.
- PITR_TIMESTAMP: חותמת הזמן לפי שעון UTC של יומן ה-PITR של מופע המקור שרוצים לשחזר את המופע ממנו, בפורמט RFC 3339. לדוגמה, 2025-11-15T16:19:00.094Z.
- TARGET_PROJECT: מזהה הפרויקט של המופע החדש.
- REGION: האזור של מכונת היעד. השדה הזה נדרש אם מקור הנתונים של מופע המקור ממוקם במספר אזורים. האזור של מופע היעד צריך להיות זהה לאזור של מופע המקור.
REST v1
כדי לבצע שחזור לנקודת זמן מסוימת באמצעות מקור נתונים ממאגר הגיבוי, משתמשים בשיטה instances.pointInTimeRestore עם בקשת POST.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המופע החדש.
- DATASOURCE: מקור הנתונים של Backup and DR שבו השירות ישתמש לפעולת השחזור לנקודת זמן מסוימת.
- PITR_TIMESTAMP: חותמת הזמן לפי שעון UTC של יומן ה-PITR של מופע המקור שרוצים לשחזר את המופע אליו, בפורמט RFC 3339. לדוגמה: 2012-11-15T16:19:00.094Z.
- TARGET_INSTANCE_NAME: השם של המכונה שנוצרה על ידי פעולת ה-PITR.
- REGION: האזור של מכונת היעד. השדה הזה נדרש אם מקור הנתונים של מופע המקור ממוקם במספר אזורים. האזור של מופע היעד צריך להיות זהה לאזור של מופע המקור.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID:pointInTimeRestore
תוכן בקשת JSON:
{
"datasource": "DATASOURCE",
"pointInTime": "PITR_TIMESTAMP",
"targetInstanceName": "TARGET_INSTANCE_NAME",
"region": "REGION"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
REST v1beta4
כדי לבצע שחזור לנקודת זמן מסוימת באמצעות מקור נתונים ממאגר הגיבוי, משתמשים בשיטה instances.pointInTimeRestore עם בקשת POST.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המופע החדש.
- DATASOURCE: מקור הנתונים של Backup and DR שבו השירות ישתמש לפעולת השחזור לנקודת זמן מסוימת.
- PITR_TIMESTAMP: חותמת הזמן לפי שעון UTC של יומן ה-PITR של מופע המקור שרוצים לשחזר את המופע אליו, בפורמט RFC 3339. לדוגמה: 2012-11-15T16:19:00.094Z.
- TARGET_INSTANCE_NAME: השם של המכונה שנוצרה על ידי פעולת ה-PITR.
- REGION: האזור של מכונת היעד. השדה הזה נדרש אם מקור הנתונים של מופע המקור ממוקם במספר אזורים. האזור של מופע היעד צריך להיות זהה לאזור של מופע המקור.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID:pointInTimeRestore
תוכן בקשת JSON:
{
"datasource": "DATASOURCE",
"pointInTime": "PITR_TIMESTAMP",
"targetInstanceName": "TARGET_INSTANCE_NAME",
"region": "REGION"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
ביצוע PITR בין פרויקטים
בעזרת גיבויים משופרים, אתם יכולים לשחזר מכונת Cloud SQL לפרויקט אחר, לא לפרויקט שבו נמצאת מכונת המקור או כספת הגיבוי.
שחזור PITR בין פרויקטים נתמך רק באמצעות ה-CLI של gcloud וממשקי API בארכיטקטורת REST.
כדי לבצע שחזור לנקודת זמן בפרויקט אחר, אפשר לבצע אחת מהפעולות הבאות:
אם אתם משתמשים ב-CLI של gcloud, מגדירים את הדגל
--projectלפרויקט שבו רוצים ליצור את מכונת היעד.אם משתמשים בממשקי API בארכיטקטורת REST, צריך להגדיר את השדה
PROJECT_IDלפרויקט שבו רוצים ליצור את מופע היעד.
ביצוע PITR במופע שנמחק
כדי להשתמש ב-PITR לשחזור מופע שנמחק, צריך:
- חותמת הזמן של PITR (
timestamp) שאליה רוצים לשחזר את המופע - שם מכונת היעד
- השעה שבה המופע של מקור המודעות נמחק (
source-instance-deletion-time)
אפשר להשתמש ב-PITR במכונה שנמחקה רק באמצעות ה-CLI של gcloud או Cloud SQL API. מידע נוסף מופיע במאמר בנושא שחזור מופע שנמחק באמצעות PITR.
gcloud
גיבוי רגיל
איך מוצאים את חלון הזמן של PITR
כדי למצוא את חלון ה-PITR של המכונה שנמחקה, צריך לקבל את זמן השחזור המוקדם והמאוחר ביותר של המכונה. אתם יכולים לבחור חותמת זמן בכל שלב בחלון הזה כדי לבצע שחזור לנקודת זמן.
חיפוש מחיקה של מופע מקור
הנתונים source-instance-deletion-time ו-log-retention-days של המופע שנמחק מאוחסנים עם הגיבויים שנשמרו של המופע אחרי המחיקה. כדי לראות רשימה של כל הגיבויים הזמינים של המופע שנמחק, אפשר לעיין במאמר בנושא רשימת גיבויים שנשמרו.
אחרי שמזהים את הגיבוי שרוצים להשתמש בו, משתמשים בפקודה gcloud sql backups describe כדי לקבל את source-instance-deletion-time.
שחזור באמצעות PITR
כדי לשחזר את המכונה שנמחקה באמצעות PITR, מריצים את הפקודה הבאה:
gcloud sql instances clone SOURCE_INSTANCE_NAME \
NEW_INSTANCE_NAME \
--point-in-time='PITR_TIMESTAMP' \
--source-instance-deletion-time=SOURCE_INSTANCE_DELETION_TIMESTAMP
מחליפים את מה שכתוב בשדות הבאים:
-
SOURCE_INSTANCE_NAME: השם של מופע המקור שרוצים לשחזר. -
NEW_INSTANCE_NAME: השם של המכונה החדשה. -
PITR_TIMESTAMP: חותמת הזמן לפי שעון UTC של יומן ה-PITR של מופע המקור שרוצים לשחזר את המופע ממנו, בפורמט RFC 3339. לדוגמה: 2012-11-15T16:19:00.094Z. -
SOURCE_INSTANCE_DELETION_TIMESTAMP: חותמת הזמן לפי שעון UTC של הזמן שבו מופע המקור נמחק, בפורמט RFC 3339. לדוגמה: 2012-11-15T16:19:00.094Z.
גיבוי משופר
איך מוצאים את חלון הזמן של PITR
כדי לראות את חלון ה-PITR של המכונה שנמחקה, צריך לראות את זמן השחזור המוקדם והמאוחר ביותר של המכונה. אתם יכולים לבחור חותמת זמן בכל שלב בחלון הזה כדי לבצע שחזור לנקודת זמן.
חיפוש מקור הנתונים
מקור הנתונים של המופע שנמחק מאוחסן עם הגיבויים שנשמרו של המופע אחרי המחיקה. כדי למצוא את הערכים האלה עבור המופע שנמחק, אפשר לעיין במאמר בנושא רשימת כל הגיבויים בכספת הגיבויים של המופע.
שחזור באמצעות PITR
כדי לשחזר את המכונה שנמחקה באמצעות PITR, מריצים את הפקודה הבאה:
gcloud sql instances point-in-time-restore DATA_SOURCE \
--point-in-time='PITR_TIMESTAMP' \
--project='TARGET_PROJECT' \
מחליפים את מה שכתוב בשדות הבאים:
-
DATA_SOURCE: הנתיב שלdata-sourceלגיבוי שהכי קרוב לחותמת הזמן של ה-PITR שרוצים לשחזר. -
PITR_TIMESTAMP: חותמת הזמן לפי שעון UTC של יומן ה-PITR של מופע המקור שרוצים לשחזר את המופע ממנו, בפורמט RFC 3339. לדוגמה: 2012-11-15T16:19:00.094Z. -
TARGET_PROJECT: מזהה הפרויקט של מופע Cloud SQL.
REST v1
איך מוצאים את חלון הזמן של PITR
כדי לראות את חלון ה-PITR של המכונה שנמחקה, צריך לראות את זמן השחזור המוקדם והמאוחר ביותר של המכונה. אתם יכולים לבחור חותמת זמן בכל שלב בחלון הזה כדי לבצע שחזור לנקודת זמן.
איך מוצאים את זמן המחיקה של מופע המקור ואת מספר הימים לשמירת היומן
הנתונים source-instance-deletion-time ו-log-retention-days של המופע שנמחק מאוחסנים עם הגיבויים שנשמרו של המופע אחרי המחיקה. כדי למצוא את הערכים האלה עבור המופע שנמחק, אפשר לעיין במאמר בנושא רשימת גיבויים שנשמרו.
שחזור באמצעות PITR
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- target-instance-id: מזהה מכונת היעד
- source-instance-id: מזהה מכונת המקור
- source-instance-deletion-time: זמן המחיקה של מופע המקור
- restore-timestamp הנקודה בזמן שרוצים לשחזר את המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/source-instance-id/clone
תוכן בקשת JSON:
{
"cloneContext":
{
"kind": "sql#cloneContext",
"destinationInstanceName": "target-instance-id",
"sourceInstanceDeletionTime: "source-instance-deletion-time",
"pointInTime": "restore-timestamp"
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
REST v1beta4
איך מוצאים את חלון הזמן של PITR
כדי למצוא את חלון ה-PITR של המכונה שנמחקה, צריך לקבל את זמן השחזור המוקדם והמאוחר ביותר של המכונה. אתם יכולים לבחור חותמת זמן בכל שלב בחלון הזה כדי לבצע PITR.
איך מוצאים את זמן המחיקה של מופע המקור ואת מספר הימים לשמירת היומן
הנתונים source-instance-deletion-time ו-log-retention-days של המופע שנמחק מאוחסנים עם הגיבויים שנשמרו של המופע אחרי המחיקה. כדי למצוא את הערכים האלה עבור המופע שנמחק, אפשר לעיין במאמר בנושא רשימת גיבויים שנשמרו.
שחזור באמצעות PITR
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- target-instance-id: מזהה מכונת היעד
- source-instance-id: מזהה מכונת המקור
- source-instance-deletion-time: זמן המחיקה של מופע המקור
- restore-timestamp הנקודה בזמן שרוצים לשחזר את המכונה
בבקשת ה-JSON, אפשר לציין עד שם מסד נתונים ספציפי אחד באופן הבא: "databaseNames": "my-database"
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/source-instance-id/clone
תוכן בקשת JSON:
{
"cloneContext":
{
"kind": "sql#cloneContext",
"destinationInstanceName": "target-instance-id",
"sourceInstanceDeletionTime: "source-instance-deletion-time",
"pointInTime": "restore-timestamp"
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
קבלת זמן ההתאוששות המוקדם והמאוחר ביותר
אם יש לכם מופע זמין, אתם יכולים לבצע PITR לכל חותמת זמן בחלון ה-PITR של המופע. חלון ה-PITR מתחיל בשעת השחזור המוקדמת ביותר ומסתיים בשעת השחזור המאוחרת ביותר. אם המופע לא זמין והיומנים של המופע מאוחסנים ב-Cloud Storage, או אם המופע נמחק והשמירה של PITR הופעלה, אפשר לאחזר את זמן השחזור המוקדם והמאוחר ביותר ולבצע את ה-PITR לכל חותמת זמן בחלון הזה. בכל המקרים, אפשר לשחזר את המופע לאזור ראשי או משני אחר על ידי הזנת ערכים לאזורים המועדפים.
gcloud
Unavailable instance
כדי לקבל את השעה המוקדמת והשעה המאוחרת ביותר שבהן אפשר לשחזר מופע Cloud SQL שלא זמין, מריצים את הפקודה הבאה:
gcloud sql instances get-latest-recovery-time INSTANCE_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המכונה שרוצים למצוא את זמן השחזור האחרון שלה.
מכונה שנמחקה
כדי לקבל את השעה המוקדמת והמאוחרת ביותר שאליהן אפשר לשחזר מכונה שנמחקה ב-Cloud SQL, מריצים את הפקודה הבאה:
gcloud sql instances get-latest-recovery-time INSTANCE_NAME
--source-instance-deletion-time='SOURCE_INSTANCE_DELETION_TIMESTAMP'
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המכונה שרוצים למצוא את זמן השחזור האחרון שלה. -
SOURCE_INSTANCE_DELETION_TIMESTAMP: חותמת הזמן לפי שעון UTC של הזמן שבו מופע המקור נמחק, בפורמט RFC 3339. לדוגמה: 2012-11-15T16:19:00.094Z.
REST v1
Unavailable instance
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט
- INSTANCE_NAME: השם של המכונה שעבורה אתם שולחים שאילתה לגבי זמן השחזור האחרון
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
מכונה שנמחקה
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט
- INSTANCE_NAME: השם של מופע המקור שעבורו אתם שולחים שאילתה לגבי זמן השחזור האחרון
- SOURCE_INSTANCE_DELETION_TIME: השעה שבה המופע של מקור המודעות נמחק
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
REST v1beta4
Unavailable instance
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט
- INSTANCE_NAME: השם של המכונה שעבורה אתם שולחים שאילתה לגבי זמן השחזור האחרון
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
מכונה שנמחקה
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט
- INSTANCE_NAME: השם של מופע המקור שעבורו אתם שולחים שאילתה לגבי זמן השחזור האחרון
- SOURCE_INSTANCE_DELETION_TIME: השעה שבה המופע של מקור המודעות נמחק
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
פתרון בעיות
| שגיאה | פתרון בעיות |
|---|---|
|
או
|
חותמת הזמן שסיפקת לא תקינה. |
|
או
|
חותמת הזמן שסיפקתם היא של זמן שבו לא היה גיבוי או שלא נמצאו קואורדינטות של binlog. |
המאמרים הבאים
- הגדרת דגלים בשיבוט