בדף הזה מוסבר איך להשתמש בתכונה Cloud Firestore של גיבויים מתוזמנים. שימוש בגיבויים כדי להגן על הנתונים מפני פגיעה ברמת האפליקציה או מפני מחיקה מקרית של נתונים.
הגיבויים מאפשרים להגדיר לוחות זמנים לגיבוי כך שישתמשו בגיבויים יומיים או שבועיים של מסד הנתונים שצוין. לאחר מכן תוכלו להשתמש בגיבויים האלה כדי לשחזר את הנתונים למסד נתונים חדש.
מידע על גיבויים
גיבוי הוא עותק עקבי של מסד הנתונים בכל רגע נתון. הגיבוי יכלול את כל הגדרות הנתונים והאינדקס באותה נקודת זמן. גיבוי לא מכיל מדיניות זמן חיים של מסדי נתונים. גיבוי נמצא באותו המיקום של מסד הנתונים של המקור.
לגיבויים יש תקופת שמירה שניתן להגדיר, והם נשמרים עד שתקופת השמירה תסתיים או עד שמוחקים את הגיבוי. מחיקה של מסד הנתונים של המקור לא מוחקת באופן אוטומטי את הגיבויים הקשורים.
ב-Cloud Firestore נשמרים מטא-נתונים שקשורים לגיבויים ולתזמוני גיבוי שקשורים למסד נתונים. Cloud Firestore שומר את המטא-נתונים האלה עד שתוקף כל הגיבויים של מסד הנתונים יפוג או שהם יימחקו.
יצירת גיבויים או שמירת גיבויים לא משפיעה על הביצועים של קריאה או כתיבה במסד הנתונים הפעיל.
עלויות
כשמשתמשים בגיבויים, אתם מחויבים על הדברים הבאים:
- נפח האחסון שמנוצל בכל גיבוי.
- על פעולת שחזור, אתם מחויבים על סמך גודל הגיבוי.
פרטים נוספים ותעריפים מדויקים זמינים בדף Pricing.
לפני שמתחילים
כדי להשתמש בתכונה הזו צריך את תוכנית התמחור Blaze.התפקידים הנדרשים
כדי לקבל את ההרשאות הדרושות לניהול הגיבויים ולוחות הזמנים של הגיבויים, צריך לבקש מהאדמין להקצות לכם אחד או יותר מהתפקידים הבאים של ניהול זהויות והרשאות גישה:
roles/datastore.owner
: גישה מלאה למסד הנתונים Cloud Firestoreהתפקידים הבאים זמינים גם כן, אבל הם לא גלויים במסוף Google Cloud. משתמשים בפקודה Google Cloud CLI כדי להקצות את התפקידים הבאים:
roles/datastore.backupsAdmin
: גישה לקריאה וכתיבה לגיבוייםroles/datastore.backupsViewer
: הרשאת קריאה לגיבוייםroles/datastore.backupSchedulesAdmin
: הרשאת קריאה וכתיבה ללוחות זמנים לגיבויroles/datastore.backupSchedulesViewer
: הרשאת קריאה ללוחות זמנים לגיבויroles/datastore.restoreAdmin
: הרשאות להפעלת פעולות שחזור
יצירה וניהול של לוחות זמנים לגיבוי
בדוגמאות הבאות מוסבר איך מגדירים לוח זמנים לגיבוי. לכל מסד נתונים אפשר להגדיר עד לוח זמנים יומי אחד לגיבוי ועד לוח זמנים שבועי אחד לגיבוי. אי אפשר להגדיר כמה לוחות זמנים לשבועיים לגיבוי בימים שונים בשבוע.
אי אפשר להגדיר את השעה המדויקת שבה הגיבוי יתבצע. הגיבויים מתבצעים בזמנים שונים בכל יום. בלוחות זמנים של גיבוי שבועי, אפשר להגדיר את היום בשבוע שבו יתבצע הגיבוי.
יצירת לוח זמנים לגיבוי
כדי ליצור תזמון לגיבוי של מסד נתונים, משתמשים בפקודה gcloud firestore backups schedules create
או בפקודה firebase firestore:databases:backups:schedules
.
יצירת לוח זמנים יומי לגיבוי
gcloud
כדי ליצור לוח זמנים לגיבוי יומי, מגדירים את הדגל--recurrence
לערך daily
:
gcloud firestore backups schedules create \ --database='DATABASE_ID' \ --recurrence=daily \ --retention=RETENTION_PERIOD
מחליפים את מה שכתוב בשדות הבאים:
- DATABASE_ID: המזהה של מסד הנתונים שרוצים לגבות. מגדירים את הערך
'(default)'
למסד הנתונים שמוגדר כברירת מחדל. - RETENTION_PERIOD: מגדירים ערך של עד 14 שבועות (
14w
).
Firebase CLI
כדי ליצור לוח זמנים לגיבוי יומי, מגדירים את הדגל--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 מסוג - RETENTION_PERIOD_SECONDS: מגדירים ערך בשניות, ואחריו 's'. הערך המקסימלי הוא
8467200s
(14 שבועות).
google_firestore_database
.
יצירת לוח זמנים שבועי לגיבוי
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 שבועות (
14w
). - DAY: היום בשבוע שבו יתבצע הגיבוי. מגדירים את הערך לאחת מהאפשרויות הבאות:
SUN
ליום ראשוןMON
ליום שניTUE
ליום שלישיWED
ליום רביעיTHU
ליום חמישיFRI
ליום שישיSAT
ליום שבת
Firebase CLI
כדי ליצור לוח זמנים שבועי לגיבוי, מגדירים את הדגל--recurrence
לערך WEEKLY
:
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 מסוג - RETENTION_PERIOD_SECONDS: מגדירים ערך בשניות, ואחריו 's'. הערך המקסימלי הוא
8467200s
(14 שבועות). - DAY: היום בשבוע שבו רוצים לגבות את הגיבוי. מגדירים את אחת מהאפשרויות הבאות:
SUNDAY
ליום ראשוןMONDAY
ליום שניTUESDAY
ליום שלישיWEDNESDAY
ליום רביעיTHURSDAY
ליום חמישיFRIDAY
ליום שישיSATURDAY
בשבת
google_firestore_database
.
הצגת רשימה של לוחות זמנים לגיבוי
כדי לקבל רשימה של כל לוחות הזמנים לגיבוי של מסד נתונים, משתמשים באחת מהשיטות הבאות:
gcloud
משתמשים בפקודהgcloud firestore backups schedules list
.
gcloud firestore backups schedules list \ --database='DATABASE_ID'
'(default)'
למסד הנתונים שמוגדר כברירת מחדל.
Firebase CLI
משתמשים בפקודהfirebase firestore:backups:schedules:list
.
firebase firestore:backups:schedules:list \ --database 'DATABASE_ID'
'(default)'
כמסד הנתונים שמוגדר כברירת מחדל.
תיאור לוח הזמנים לגיבוי
כדי לאחזר מידע על לוח זמנים לגיבוי, משתמשים באחת מהשיטות הבאות:
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: המזהה של לוח הזמנים לגיבוי. אפשר לראות את המזהה של כל תזמון גיבוי כשמציגים את רשימת כל תזמוני הגיבוי.
עדכון לוח הזמנים של הגיבוי
כדי לעדכן את תקופת השמירה של תזמון גיבוי, משתמשים באחת מהשיטות הבאות:
gcloud
משתמשים בפקודהgcloud firestore backups schedules update
:
gcloud firestore backups schedules update \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID \ --retention=RETENTION_PERIOD
- DATABASE_ID: המזהה של מסד הנתונים שרוצים לגבות. מגדירים את הערך
'(default)'
למסד הנתונים שמוגדר כברירת מחדל. - BACKUP_SCHEDULE_ID: המזהה של לוח הזמנים לגיבוי. אפשר לראות את המזהה של כל תזמון גיבוי כשמציגים את רשימת כל תזמוני הגיבוי.
- RETENTION_PERIOD: מגדירים ערך של עד 14 שבועות (
14w
).
Firebase CLI
משתמשים בפקודהfirebase firestore:backups:schedules:update
:
firebase firestore:backups:schedules:update \ BACKUP_SCHEDULE \ --retention RETENTION_PERIOD
- BACKUP_SCHEDULE: שם המשאב המלא של לוח הזמנים לגיבוי. אפשר לראות את השם של כל תזמון גיבוי כשמציגים את כל תזמוני הגיבוי.
- RETENTION_PERIOD: מגדירים ערך של עד 14 שבועות (
14w
).
אפשר לעדכן את תקופת השמירה של לוח זמנים לגיבוי, אבל אי אפשר לעדכן את התדירות שלו. אם אתם צריכים לוח זמנים לגיבוי עם תדירות אחרת, מוחקים את לוח הזמנים הישן לגיבוי אם הוא כבר לא נדרש ויוצרים לוח זמנים חדש לגיבוי עם התדירות הרצויה.
מחיקת לוח זמנים לגיבוי
כדי למחוק תזמון גיבוי, משתמשים באחת מהשיטות הבאות:
gcloud
משתמשים בפקודהgcloud firestore backups schedules delete
:
gcloud firestore backups schedules delete \ --database='DATABASE_ID' \ --backup-schedule=BACKUP_SCHEDULE_ID
- DATABASE_ID: המזהה של מסד הנתונים שרוצים לגבות. מגדירים את הערך
'(default)'
למסד הנתונים שמוגדר כברירת מחדל. - BACKUP_SCHEDULE_ID: המזהה של לוח הזמנים לגיבוי. כדי לראות את המזהה של כל לוח זמנים לגיבוי, אפשר להציג את כל לוחות הזמנים לגיבוי.
Firebase CLI
משתמשים בפקודהfirebase firestore:backups:schedules:delete
:
firebase firestore:backups:schedules:delete \ BACKUP_SCHEDULE
- BACKUP_SCHEDULE: השם המלא של המשאב בלוח הזמנים לגיבוי. אפשר לראות את השם של כל תזמון גיבוי כשמציגים את כל תזמוני הגיבוי.
שימו לב שמחיקת לוח זמנים לגיבוי לא תמחק גיבויים שכבר נוצרו על ידי לוח הזמנים הזה. אפשר לחכות לתפוגת התוקף שלהם בסיום תקופת השמירה, או למחוק גיבוי באופן ידני. מידע נוסף זמין במאמר מחיקת גיבוי.
ניהול הגיבויים
הצגת רשימת הגיבויים
כדי להציג את רשימת הגיבויים הזמינים, משתמשים באחת מהשיטות הבאות:
gcloud
משתמשים בפקודהgcloud firestore backups list
:
gcloud firestore backups list \ --format="table(name, database, state)"
--format="table(name, database, state)"
מעצב את הפלט בפורמט קריא יותר.
כדי להציג רק את הגיבויים ממיקום ספציפי, משתמשים בדגל --location
:
gcloud firestore backups list \ --location=LOCATION \ --format="table(name, database, state)"
LOCATION
בשם של מיקום Cloud Firestore.
Firebase CLI
משתמשים בפקודהfirebase firestore:backups:list
:
firebase firestore:backups:list
--location
:
firebase firestore:backups:list \ --location=LOCATION
LOCATION
בשם של מיקום Cloud Firestore.
תיאור גיבוי
כדי להציג פרטים על גיבוי, משתמשים באחת מהשיטות הבאות:
gcloud
משתמשים בפקודהgcloud firestore backups describe
:
gcloud firestore backups describe \ --location=LOCATION \ --backup=BACKUP_ID
- LOCATION: המיקום של מסד הנתונים.
- BACKUP_ID: המזהה של גיבוי. אפשר לראות את המזהה של כל גיבוי ברשימת כל הגיבויים.
Firebase CLI
משתמשים בפקודהfirebase firestore:backups:get
:
firebase firestore:backups:get BACKUP
- BACKUP: השם המלא של המשאב בגיבוי. אפשר לראות את השם של כל גיבוי כשמציגים את רשימת כל הגיבויים.
מחיקת הגיבוי
gcloud
משתמשים בפקודהgcloud firestore backups delete
:
gcloud firestore backups delete \ --location=LOCATION \ --backup=BACKUP_ID
- LOCATION: המיקום של מסד הנתונים.
- BACKUP_ID: המזהה של הגיבוי. אפשר לראות את המזהה של כל גיבוי ברשימת כל הגיבויים.
Firebase CLI
משתמשים בפקודהfirebase firestore:backups:delete
:
firebase firestore:backups:delete \ BACKUP
- BACKUP: שם המשאב המלא של גיבוי. אפשר לראות את השם של כל גיבוי כשמציגים את רשימת כל הגיבויים.
שחזור נתונים מגיבוי של מסד נתונים
פעולת שחזור כותבת את הנתונים מהגיבוי למסד נתונים חדש של Cloud Firestore.
כדי להתחיל פעולת שחזור, משתמשים באחת מהשיטות הבאות:
gcloud
משתמשים בפקודהgcloud firestore databases restore
:
gcloud 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
Firebase CLI
משתמשים בפקודהfirebase firestore:databases:restore
:
firebase firestore:databases:restore \ --backup 'BACKUP' \ --database 'DATABASE_ID'
- BACKUP: שם המשאב המלא של גיבוי. אפשר לראות את השם של כל גיבוי כשמציגים את רשימת כל הגיבויים.
- DATABASE_ID: מזהה של מסד נתונים למסד הנתונים החדש. אי אפשר להשתמש במזהה של מסד נתונים שכבר נמצא בשימוש.