בדף הזה מוסבר איך להשתמש בגיבויים המתוזמנים של Cloud Firestore . שימוש בגיבויים כדי להגן על הנתונים שלכם מפני נתונים ברמת האפליקציה או מחיקה של נתונים בטעות.
הגיבויים מאפשרים להגדיר לוחות זמנים לגיבוי כך שיהיו יומיים או שבועיים של מסד הנתונים שצוין. לאחר מכן תוכלו להשתמש בגיבויים האלה כדי לשחזר למסד נתונים חדש.
מידע על גיבויים
גיבוי הוא עותק עקבי של מסד הנתונים בכל רגע נתון. הגיבוי מכיל את כל הגדרות הנתונים והאינדקס בנקודה זו בזמן. הגיבוי לא כולל מדיניות מסוג 'זמן עד חיים' של מסד הנתונים. גיבוי נמצא באותו המיקום של מסד הנתונים המקורי.
לגיבויים יש תקופת שמירה שאפשר להגדיר, והם מאוחסנים עד שהם נשמרים בתוקף עד או עד שמוחקים את הגיבוי. מחיקת מסד הנתונים של המקור לא יימחקו באופן אוטומטי גיבויים קשורים.
ב-Cloud Firestore נשמרים מטא-נתונים שקשורים לגיבויים ולגיבוי של לוחות זמנים שקשורים למסד נתונים. המטא-נתונים האלה נשמרים ב-Cloud Firestore עד שיפוג כל הגיבויים של מסד הנתונים או שהם יימחקו.
יצירה או שמירה של גיבויים לא משפיעה על ביצועי קריאות או וכותבת במסד הנתונים החי.
עלויות
כשאתם משתמשים בגיבויים, אתם מחויבים על הדברים הבאים:
- נפח האחסון שמנוצל בכל גיבוי.
- בפעולת שחזור, החיוב הוא בהתאם לגודל הגיבוי.
פרטים נוספים ותעריפים מדויקים זמינים בדף תמחור.
לפני שמתחילים
כדי להשתמש בתכונה הזו צריך את תוכנית התמחור Blaze.התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לניהול הגיבויים ולוחות הזמנים של הגיבויים: עליך לבקש מהאדמין להעניק לך אחד או יותר מהממשקים הבאים של ניהול זהויות והרשאות גישה (IAM) תפקידים:
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: מזהה מסד נתונים של הגרסה החדשה מסד נתונים. לא ניתן להשתמש במזהה של מסד נתונים שכבר נמצא בשימוש.