גיבוי ושחזור של נתונים

רלוונטי למהדורות Firestore Standard ו-Firestore Enterprise.

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

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

מידע על גיבויים

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

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

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

ב-Cloud Firestore מאוחסנים מטא-נתונים שקשורים לגיבויים ולתזמוני גיבויים שקשורים למסד נתונים. ‫Cloud Firestore שומר את המטא-נתונים האלה עד שכל הגיבויים של מסד הנתונים יפוגו או יימחקו.

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

עלויות

כשמשתמשים בגיבויים, מחויבים על הדברים הבאים:

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

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

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

כדי להשתמש בתכונה הזו, צריך מינוי Blaze בתשלום לפי שימוש.

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות לניהול גיבויים ותזמוני גיבויים, צריך לבקש מהאדמין להקצות לכם אחד או יותר מהתפקידים הבאים ב-ניהול זהויות והרשאות גישה (IAM):

  • ‫roles/datastore.owner: גישה מלאה למסד הנתונים של Cloud Firestore
  • ‫roles/datastore.backupsAdmin: גישת קריאה וכתיבה לגיבויים
  • ‫roles/datastore.backupsViewer: גישת קריאה לגיבויים
  • ‫roles/datastore.backupSchedulesAdmin: גישת קריאה וכתיבה ללוחות זמנים של גיבויים
  • ‫roles/datastore.backupSchedulesViewer: גישת קריאה ללוחות זמנים של גיבויים
  • ‫roles/datastore.restoreAdmin: הרשאות להפעלת פעולות שחזור

יצירה וניהול של לוחות זמנים לגיבויים

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

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

יצירת לוח זמנים לגיבוי

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

יצירת לוח זמנים לגיבוי יומי

מסוף Google Cloud
  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. ברשימת מסדי הנתונים, מוצאים את השורה של מסד הנתונים. בעמודה Scheduled backups, לוחצים על View backups או על Edit settings, בהתאם לקיומו של לוח זמנים לגיבוי.
  3. כדי לערוך את ההגדרות של תוכנית ההתאוששות מאסון, לוחצים על Edit.
  4. מסמנים את התיבה Daily, מגדירים את תקופת השמירה ולוחצים על Save.
Firebase CLI
כדי ליצור תזמון גיבוי למסד נתונים, משתמשים בפקודה firebase firestore:databases:backups:schedules:create. כדי ליצור לוח זמנים לגיבוי יומי, מגדירים את הדגל --recurrence לערך DAILY:
firebase firestore:backups:schedules:create \
--database 'DATABASE_ID' \
--recurrence 'DAILY' \
--retention RETENTION_PERIOD

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

  • ‫DATABASE_ID: המזהה של מסד הנתונים שרוצים לגבות. צריך להגדיר את הערך '(default)' למסד הנתונים שמוגדר כברירת מחדל.
  • ‫RETENTION_PERIOD: צריך להגדיר ערך של עד 14 שבועות (14w).
Terraform
כדי ליצור תזמון גיבוי יומי, יוצרים משאב google_firestore_backup_schedule.
resource "google_firestore_backup_schedule" "daily-backup" {
  project  = PROJECT_ID
  database = DATABASE_ID

  retention = RETENTION_PERIOD_SECONDS

  daily_recurrence {}
}

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

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫DATABASE_ID: המזהה של מסד הנתונים שרוצים לגבות. צריך להגדיר את הערך '(default)' למסד הנתונים שמוגדר כברירת מחדל.
  • אפשר גם להשתמש בהפניה למשאב של Terraform מסוג google_firestore_database.
  • ‫RETENTION_PERIOD_SECONDS: צריך להגדיר ערך בשניות, ואחריו "s". הערך המקסימלי הוא 8467200s (14 שבועות).

יצירת לוח זמנים שבועי לגיבוי

מסוף Google Cloud
  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. ברשימת מסדי הנתונים, מוצאים את השורה של מסד הנתונים. בעמודה Scheduled backups, לוחצים על View backups או על Edit settings, בהתאם לקיומו של לוח זמנים לגיבוי.
  3. כדי לערוך את ההגדרות של תוכנית ההתאוששות מאסון, לוחצים על Edit.
  4. מסמנים את התיבה Weekly, בוחרים יום לגיבוי, מגדירים את תקופת השמירה ולוחצים על Save.
Firebase CLI
כדי ליצור לוח זמנים שבועי לגיבוי, מגדירים את הדגל --recurrence לערך WEEKLY ובוחרים את --day-of-week:
firebase firestore:backups:schedules:create \
--database 'DATABASE_ID' \
--recurrence 'WEEKLY' \
--retention RETENTION_PERIOD
--day-of-week DAY
מחליפים את הערכים הבאים:
  • ‫DATABASE_ID: המזהה של מסד הנתונים שרוצים לגבות. צריך להגדיר את הערך '(default)' למסד הנתונים שמוגדר כברירת מחדל.
  • ‫RETENTION_PERIOD: צריך להגדיר ערך של עד 14 שבועות (14w).
  • ‫DAY: היום בשבוע שבו יתבצע הגיבוי. מגדירים אחת מהאפשרויות הבאות:
    • ‫SUNDAY ליום ראשון
    • ‫MONDAY ליום שני
    • ‫TUESDAY ליום שלישי
    • ‫WEDNESDAY ליום רביעי
    • ‫THURSDAY ליום חמישי
    • ‫FRIDAY ליום שישי
    • ‫SATURDAY ליום שבת
Terraform
כדי ליצור תזמון גיבוי שבועי, יוצרים משאב google_firestore_backup_schedule.
resource "google_firestore_backup_schedule" "weekly-backup" {
  project  = PROJECT_ID
  database = DATABASE_ID

  retention = RETENTION_PERIOD_SECONDS

  weekly_recurrence {
    day = DAY
  }
}

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

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫DATABASE_ID: המזהה של מסד הנתונים שרוצים לגבות. צריך להגדיר את הערך '(default)' למסד הנתונים שמוגדר כברירת מחדל.
  • אפשר גם להשתמש בהפניה למשאב של Terraform מסוג google_firestore_database.
  • ‫RETENTION_PERIOD_SECONDS: צריך להגדיר ערך בשניות, ואחריו "s". הערך המקסימלי הוא 8467200s (14 שבועות).
  • ‫DAY: היום בשבוע שבו יתבצע הגיבוי. מגדירים אחת מהאפשרויות הבאות:
    • ‫SUNDAY ליום ראשון
    • ‫MONDAY ליום שני
    • ‫TUESDAY ליום שלישי
    • ‫WEDNESDAY ליום רביעי
    • ‫THURSDAY ליום חמישי
    • ‫FRIDAY ליום שישי
    • ‫SATURDAY ליום שבת

הצגת רשימה של תזמוני גיבויים

כדי להציג את כל תזמוני הגיבוי של מסד נתונים, משתמשים באחת מהשיטות הבאות:

מסוף Google Cloud
  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. ברשימת מסדי הנתונים, מוצאים את השורה של מסד הנתונים. בעמודה Scheduled backups, לוחצים על View backups או על Edit settings, בהתאם לקיומו של לוח זמנים לגיבוי.
  3. הדף תוכנית התאוששות מאסון (DR) נפתח. בדף הזה מתוארים לוחות הזמנים לגיבוי ומופיעה רשימה של הגיבויים הזמינים.
Firebase CLI
משתמשים בפקודה firebase firestore:backups:schedules:list.
firebase firestore:backups:schedules:list \
--database 'DATABASE_ID'
מחליפים את DATABASE_ID במזהה של מסד הנתונים. כדי להשתמש במסד הנתונים שמוגדר כברירת מחדל, משתמשים ב-'(default)'.

תיאור של לוח הזמנים לגיבוי

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

מסוף Google Cloud
  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. ברשימת מסדי הנתונים, מוצאים את השורה של מסד הנתונים. בעמודה Scheduled backups, לוחצים על View backups או על Edit settings, בהתאם לקיומו של לוח זמנים לגיבוי.
  3. נפתח הדף תוכנית התאוששות מאסון (DR). בדף הזה מתוארים לוחות הזמנים לגיבוי ומופיעה רשימה של הגיבויים הזמינים.
gcloud
משתמשים בפקודה gcloud firestore backups schedules describe:
gcloud firestore backups schedules describe \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID
מחליפים את הערכים הבאים:
  • ‫DATABASE_ID: המזהה של מסד הנתונים שרוצים לגבות. צריך להגדיר את הערך '(default)' למסד הנתונים שמוגדר כברירת מחדל.
  • ‫BACKUP_SCHEDULE_ID: המזהה של תזמון הגיבוי. אפשר לראות את המזהה של כל תזמון גיבוי כשמציגים את כל תזמוני הגיבוי.

עדכון של לוח זמנים לגיבוי

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

מסוף Google Cloud
  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. ברשימת מסדי הנתונים, מוצאים את השורה של מסד הנתונים. בעמודה Scheduled backups, לוחצים על View backups או על Edit settings.
  3. כדי לערוך את ההגדרות של תוכנית ההתאוששות מאסון, לוחצים על Edit.
  4. עורכים את ההגדרות של תזמון הגיבוי ולוחצים על שמירה.
Firebase CLI
משתמשים בפקודה firebase firestore:backups:schedules:update:
firebase firestore:backups:schedules:update \
BACKUP_SCHEDULE \
--retention RETENTION_PERIOD
מחליפים את הערכים הבאים:
  • ‫BACKUP_SCHEDULE: שם המשאב המלא של תזמון הגיבוי. אפשר לראות את השם של כל תזמון גיבוי כשמציגים את כל תזמוני הגיבוי.
  • ‫RETENTION_PERIOD: צריך להגדיר ערך של עד 14 שבועות (14w).

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

מחיקת לוח זמנים לגיבוי

כדי למחוק תזמון גיבוי, משתמשים באחת מהשיטות הבאות:

מסוף Google Cloud
  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. ברשימת מסדי הנתונים, מוצאים את השורה של מסד הנתונים. בעמודה Scheduled backups, לוחצים על View backups או על Edit settings, בהתאם לקיומו של לוח זמנים לגיבוי.
  3. כדי לערוך את ההגדרות של תוכנית ההתאוששות מאסון, לוחצים על Edit.
  4. עורכים את ההגדרות של תזמון הגיבוי ולוחצים על שמירה.
Firebase CLI
משתמשים בפקודה firebase firestore:backups:schedules:delete:
firebase firestore:backups:schedules:delete \
BACKUP_SCHEDULE
מחליפים את הערכים הבאים:

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

ניהול הגיבויים

הצגת רשימה של גיבויים

כדי להציג רשימה של הגיבויים הזמינים, משתמשים באחת מהשיטות הבאות:

מסוף Google Cloud
  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. ברשימת מסדי הנתונים, מוצאים את השורה של מסד הנתונים. בעמודה Scheduled backups, לוחצים על View backups או על Edit settings, בהתאם לקיומו של לוח זמנים לגיבוי.
  3. כדי לערוך את ההגדרות של תוכנית ההתאוששות מאסון, לוחצים על Edit.
  4. עורכים את ההגדרות של תזמון הגיבוי ולוחצים על שמירה.
Firebase CLI
משתמשים בפקודה firebase firestore:backups:list:
firebase firestore:backups:list
כדי להציג רק את הגיבויים ממיקום ספציפי, משתמשים בדגל --location:
firebase firestore:backups:list \
--location=LOCATION
מחליפים את LOCATION בשם של מיקום ב-Cloud Firestore.

תיאור של גיבוי

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

מסוף Google Cloud
  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. ברשימת מסדי הנתונים, מוצאים את השורה של מסד הנתונים. בעמודה Scheduled backups, לוחצים על View backups או על Edit settings, בהתאם לקיומו של לוח זמנים לגיבוי.
  3. הדף תוכנית התאוששות מאסון (DR) נפתח. בדף הזה מתוארים לוחות הזמנים לגיבוי ומופיעה רשימה של הגיבויים הזמינים.
Firebase CLI
משתמשים בפקודה firebase firestore:backups:get:
firebase firestore:backups:get BACKUP
מחליפים את הערכים הבאים:

מחיקת הגיבוי

כדי למחוק גיבוי, משתמשים באחת מהשיטות הבאות.

מסוף Google Cloud
  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. ברשימת מסדי הנתונים, מוצאים את השורה של מסד הנתונים. בעמודה Scheduled backups, לוחצים על View backups או על Edit settings, בהתאם לקיומו של לוח זמנים לגיבוי. נפתח הדף תוכנית התאוששות מאסון (DR). בדף הזה מתוארים לוחות הזמנים לגיבוי ומופיעה רשימה של הגיבויים הזמינים.
  3. בטבלה Backups, מוצאים את השורה של הגיבוי ובעמודה Actions לוחצים על View more() ואז על Delete.
  4. מאשרים את הפעולה באמצעות שדה הטקסט ולוחצים על מחיקה.
Firebase CLI
משתמשים בפקודה firebase firestore:backups:delete:
firebase firestore:backups:delete \
BACKUP
מחליפים את הערכים הבאים:

שחזור נתונים מגיבוי של מסד נתונים

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

כדי להתחיל פעולת שחזור, משתמשים באחת מהשיטות הבאות:

מסוף Google Cloud
  1. נכנסים לדף Databases במסוף Google Cloud.

    כניסה לדף Databases

  2. ברשימת מסדי הנתונים, מוצאים את השורה של מסד הנתונים. בעמודה Scheduled backups, לוחצים על View backups או על Edit settings, בהתאם לקיומו של לוח זמנים לגיבוי. נפתח הדף תוכנית התאוששות מאסון (DR). בדף הזה מתוארים לוחות הזמנים לגיבוי ומופיעה רשימה של הגיבויים הזמינים.
  3. בטבלה Backups, מוצאים את השורה של הגיבוי ובעמודה Actions לוחצים על View more(). לוחצים על Restore with Cloud Shell.
  4. החלונית Cloud Shell נפתחת עם פקודת gcloud CLI לשחזור מהגיבוי שנבחר. מחליפים את ID_OF_NEW_DATABASE במזהה של מסד הנתונים ומריצים את הפקודה.

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

Firebase CLI
משתמשים בפקודה firebase firestore:databases:restore:
firebase firestore:databases:restore \
--backup 'BACKUP' \
--database 'DATABASE_ID'
מחליפים את הערכים הבאים:
  • ‫BACKUP: שם המשאב המלא של הגיבוי. אפשר לראות את השם של כל גיבוי כשמציגים את כל הגיבויים.
  • ‫DATABASE_ID: מזהה מסד הנתונים החדש. אי אפשר להשתמש במזהה מסד נתונים שכבר נמצא בשימוש.

מגבלות

פעולת שחזור לא משחזרת נתוני חיפוש ב-App Engine או ישויות blob ממסד נתונים של (default). הנתונים האלה תקפים רק למסד הנתונים (default), והם לא יהיו שימושיים אם משחזרים מ-(default) למסד נתונים שלא תומך בנתונים כאלה, ולכן הם לא נכללים בגיבויים.

מה לעשות אחרי השחזור

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

  • מוודאים שאמצעי הבקרה המתאימים של IAM מופעלים במסד הנתונים החדש.

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