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

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

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

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

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

גיבוי לא מכיל כללי מדיניות של אורך חיים (TTL) של מסד נתונים. הגיבוי נמצא באותו מיקום כמו מסד הנתונים של המקור.

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

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

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

עלויות

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

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

פרטים נוספים ותעריפים מדויקים זמינים בדף תמחור.

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

מוודאים שהחיוב מופעל בפרויקט Google Cloud . כך בודקים אם החיוב מופעל בפרויקט

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

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

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

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

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

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

יצירת תזמון לגיבוי

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

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

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

    מעבר אל Databases

  2. ברשימת מסדי הנתונים, מוצאים את השורה של מסד הנתונים. בעמודה גיבויים מתוזמנים, לוחצים על הצגת הגיבויים או על עריכת ההגדרות, בהתאם לשאלה אם קיים לוח זמנים לגיבוי.
  3. כדי לערוך את ההגדרות של תוכנית התאוששות מאסון (DR), לוחצים על עריכה.
  4. מסמנים את תיבת הסימון יומי, מגדירים את תקופת השמירה ולוחצים על שמירה.
gcloud
כדי ליצור תזמון לגיבוי של מסד נתונים, משתמשים בפקודה gcloud firestore backups schedules create. כדי ליצור תזמון גיבוי יומי, מגדירים את הדגל --recurrence לערך daily:
gcloud 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. ברשימת מסדי הנתונים, מוצאים את השורה של מסד הנתונים. בעמודה גיבויים מתוזמנים, לוחצים על הצגת הגיבויים או על עריכת ההגדרות, בהתאם לשאלה אם קיים לוח זמנים לגיבוי.
  3. כדי לערוך את ההגדרות של תוכנית התאוששות מאסון (DR), לוחצים על עריכה.
  4. מסמנים את התיבה שבועי, בוחרים את יום הגיבוי, מגדירים את תקופת השמירה ולוחצים על שמירה.
gcloud
כדי ליצור לוח זמנים שבועי לגיבוי, מגדירים את הדגל --recurrence לערך weekly:
gcloud firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=weekly \
--retention=RETENTION_PERIOD \
--day-of-week=DAY
מחליפים את מה שכתוב בשדות הבאים:
  • DATABASE_ID: המזהה של מסד הנתונים שרוצים לגבות. ההגדרה היא '(default)' עבור מסד הנתונים שמוגדר כברירת מחדל.
  • RETENTION_PERIOD: מגדירים ערך של עד 14 שבועות (