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

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

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

לגבי גיבויים

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

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

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

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

עלויות

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

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

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

לפני שאתה מתחיל

תכונה זו דורשת את תוכנית התמחור של Blaze .

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

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

  • roles/datastore.owner : גישה מלאה למסד הנתונים של Cloud Firestore
  • התפקידים הבאים זמינים גם הם אך אינם גלויים ב-Google Cloud Platform Console. השתמש ב-Google Cloud CLI כדי להקצות את התפקידים הבאים:

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

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

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

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

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

כדי ליצור לוח זמנים לגיבוי עבור מסד נתונים, השתמש בפקודה gcloud alpha firestore backups schedules create .

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

כדי ליצור לוח זמנים לגיבוי יומי, הגדר את דגל --recurrence ל daily :

gcloud alpha firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=daily \
--retention=RETENTION_PERIOD

החלף את הדברים הבאים:

  • DATABASE_ID : המזהה של מסד הנתונים לגיבוי. הגדר ל- (default) עבור מסד הנתונים המוגדר כברירת מחדל.
  • RETENTION_PERIOD : עבור חזרה daily של גיבוי, הגדר זאת לערך של עד 7 ימים ( 7d ). אם אתה מגדיר חזרה weekly של גיבוי, הגדר זאת לערך של עד 14 שבועות ( 14w ).

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

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

gcloud alpha firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=weekly \
--retention=RETENTION_PERIOD \
--day-of-week=DAY

החלף את הדברים הבאים:

  • DATABASE_ID : המזהה של מסד הנתונים לגיבוי. הגדר ל- (default) עבור מסד הנתונים המוגדר כברירת מחדל.
  • RETENTION_PERIOD : עבור חזרה weekly של גיבוי, הגדר זאת לערך של עד 14 שבועות ( 14w ).
  • DAY : היום בשבוע לקחת את הגיבוי. הגדר לאחד מהאפשרויות הבאות:
    • SUN ליום ראשון
    • MON ליום שני
    • TUE ליום שלישי
    • WED ליום רביעי
    • THU ליום חמישי
    • FRI שישי ליום שישי
    • SAT לשבת

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

כדי לרשום את כל לוחות הזמנים של הגיבוי עבור מסד נתונים, השתמש בפקודה gcloud alpha firestore backups schedules list . פקודה זו מחזירה מידע על כל לוחות הזמנים של הגיבוי.

gcloud alpha firestore backups schedules list \
--database='DATABASE_ID'

החלף DATABASE_ID במזהה של מסד הנתונים. השתמש (default) עבור מסד הנתונים המוגדר כברירת מחדל.

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

כדי לאחזר מידע על לוח זמנים לגיבוי, השתמש בפקודה gcloud alpha firestore backups schedules describe :

gcloud alpha firestore backups schedules describe \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

החלף את הדברים הבאים:

  • DATABASE_ID : המזהה של מסד הנתונים לגיבוי. הגדר ל- (default) עבור מסד הנתונים המוגדר כברירת מחדל.
  • BACKUP_SCHEDULE_ID : המזהה של לוח זמנים לגיבוי. אתה יכול להציג את המזהה של כל לוח זמנים לגיבוי כאשר אתה מפרט את כל לוחות הזמנים של הגיבוי .

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

כדי לעדכן את תקופת השמירה של לוח זמנים לגיבוי, השתמש בפקודה gcloud alpha firestore backups schedules update :

gcloud alpha firestore backups schedules update \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID
--retention=RETENTION_PERIOD

החלף את הדברים הבאים:

  • DATABASE_ID : המזהה של מסד הנתונים לגיבוי. הגדר ל- (default) עבור מסד הנתונים המוגדר כברירת מחדל.
  • BACKUP_SCHEDULE_ID : המזהה של לוח זמנים לגיבוי. אתה יכול להציג את המזהה בכל לוח זמנים של גיבוי כאשר אתה מפרט את כל לוחות הזמנים של הגיבוי .
  • RETENTION_PERIOD : אם תגדיר חזרה daily של גיבוי, הגדר זאת לערך של עד 7 ימים ( 7d ). אם אתה מגדיר חזרה weekly של גיבוי, הגדר זאת לערך של עד 14 שבועות ( 14w ).

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

כדי למחוק לוח זמנים לגיבוי, השתמש gcloud alpha firestore backups schedules delete :

gcloud alpha firestore backups schedules delete \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID

החלף את הדברים הבאים:

  • DATABASE_ID : המזהה של מסד הנתונים לגיבוי. הגדר ל- (default) עבור מסד הנתונים המוגדר כברירת מחדל.
  • BACKUP_SCHEDULE_ID : המזהה של לוח זמנים לגיבוי. אתה יכול להציג את המזהה של כל לוח זמנים לגיבוי כאשר אתה מפרט את כל לוחות הזמנים של הגיבוי .

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

נהל גיבויים

רשימת גיבויים

כדי לרשום גיבויים זמינים, השתמש בפקודת gcloud alpha firestore backups list :

gcloud alpha firestore backups list \
--format="table(name, database, state)"

הדגל --format="table(name, database, state)" מעצב את הפלט לפורמט קריא יותר.

כדי לרשום רק את הגיבויים ממיקום מסוים, השתמש בדגל --location :

gcloud alpha firestore backups list \
--location=LOCATION \
--format="table(name, database, state)"

החלף LOCATION בשם של מיקום Cloud Firestore.

תאר גיבוי

כדי להציג פרטים על גיבוי, השתמש בפקודה gcloud alpha firestore backups describe :

gcloud alpha firestore backups describe \
--location=LOCATION \
--backup=BACKUP_ID
  • LOCATION : המיקום של מסד הנתונים.
  • BACKUP_ID : המזהה של גיבוי. אתה יכול להציג את המזהה בכל גיבוי כאשר אתה מפרט את כל הגיבויים .

מחק גיבוי

כדי למחוק גיבוי, השתמש בפקודה gcloud alpha firestore backups delete :

gcloud alpha firestore backups delete \
--location=LOCATION \
--backup=BACKUP_ID
  • LOCATION : המיקום של מסד הנתונים.
  • BACKUP_ID : המזהה של גיבוי. אתה יכול להציג את המזהה בכל גיבוי כאשר אתה מפרט את כל הגיבויים .

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

פעולת שחזור כותבת את הנתונים מגיבוי למסד נתונים חדש של Cloud Firestore. כדי להתחיל פעולת שחזור, השתמש בפקודה gcloud alpha firestore databases restore :

gcloud alpha firestore databases restore \
--source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \
--destination-database='DATABASE_ID'
  • PROJECT_ID : מזהה הפרויקט שלך.
  • LOCATION : המיקום של גיבוי מסד הנתונים ומיקום מסד הנתונים החדש שנוצר עבור הנתונים המשוחזרים.
  • BACKUP_ID : המזהה של גיבוי. אתה יכול להציג את המזהה בכל גיבוי כאשר אתה מפרט את כל הגיבויים .
  • DATABASE_ID : מזהה מסד נתונים עבור מסד הנתונים החדש. לא ניתן להשתמש במזהה מסד נתונים שכבר נמצא בשימוש.

הפלט יכלול metadata , name ורכיבי response :

metadata:
  '@type': type.googleapis.com/google.firestore.admin.v1.RestoreDatabaseMetadata
  backup: projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID
  database: projects/PROJECT_ID/databases/DATABASE_ID
  operationState: PROCESSING
  progressPercentage:
    completedWork: '20'
    estimatedWork: '100'
  startTime: '2023-12-06T14:20:17.398325Z'
name: projects/PROJECT_ID/databases/DATABASE_ID/operations/operation_uuid
response:
  '@type': type.googleapis.com/google.firestore.admin.v1.Database
  createTime: '2023-12-06T14:20:17.398325Z'
  name: projects/PROJECT_ID/databases/DATABASE_ID
  ...

שדה metadata כולל רכיב progressPercentage , המפרט את ההתקדמות המשוערת של השחזור עד כה, ו- operationState המציין את המצב הכולל של השחזור.

כדי לאחזר מידע זה שוב, השתמש gcloud firestore operations list :

gcloud firestore operations list --database=DATABASE_ID

או, באמצעות שדה name מהפלט שתואר לעיל, עם gcloud firestore operations describe :

gcloud firestore operations describe OPERATION_NAME