משתמשים בתוכנית Blaze יכולים להגדיר את Firebase Realtime Database לגיבויים אוטומטיים. זוהי תכונה בשירות עצמי שמאפשרת גיבוי יומי של נתוני אפליקציית מסד הנתונים ושל Security Rules בפורמט JSON לקטגוריה של Cloud Storage.
הגדרה
במסוף Firebase, עוברים אל Databases & Storage (מסדי נתונים ואחסון) > Realtime Database (מסד נתונים בזמן אמת).
בכרטיסייה גיבויים, משתמשים בתהליך העבודה במסוף כדי להגדיר את הגיבויים האוטומטיים.
כדי לחסוך בעלויות האחסון, אנחנו מפעילים כברירת מחדל דחיסה באמצעות Gzip. אתם יכולים גם להפעיל מדיניות מחזור חיים של 30 יום בדלי כדי שהגיבויים שגילם מעל 30 יום יימחקו אוטומטית.
אפשר לראות את הסטטוס ואת פעילות הגיבוי ישירות במסוף Firebase, וגם להתחיל גיבוי ידני. האפשרות הזו יכולה להיות שימושית ליצירת תמונות מצב ספציפיות עם חותמת זמן, או כפעולת בטיחות לפני שמבצעים שינויים בקוד.
אחרי ההגדרה, תיצור בשבילכם קטגוריית Cloud Storage חדשה עם הרשאת כתיבה ל-Firebase. לא מומלץ לאחסן בדלי הזה נתונים שאתם לא רוצים של-Firebase תהיה גישה אליהם. ל-Firebase לא תהיה גישה נוספת לדליים אחרים שלכם ב-Cloud Storage או לאזורים אחרים ב-Google Cloud.
שחזור מגיבויים
כדי לשחזר את Firebase מגיבוי, קודם צריך להוריד את הקובץ מ-Cloud Storage לדיסק המקומי. כדי לעשות את זה, לוחצים על שם הקובץ בקטע 'פעילות הגיבוי' או בממשק של מאגר Cloud Storage. אם הקובץ דחוס באמצעות Gzip, צריך קודם לבטל את הדחיסה של הקובץ.
יש שתי אפשרויות לייבוא הנתונים:
אפשרות 1: שימוש במסוף Firebase.
עוברים אל Databases & Storage (מסדי נתונים ואחסון) > Realtime Database (מסד נתונים בזמן אמת) > הכרטיסייה Data (נתונים).
לוחצים על ייבוא JSON ובוחרים את קובץ ה-JSON של נתוני האפליקציה.
אפשרות 2: מריצים בקשת CURL משורת הפקודה.
מאחזרים סוד מ-Firebase, שאפשר לקבל אותו מDatabases & Storage > מסד נתונים בזמן אמת > הכרטיסייה Settings.
מזינים את הפקודה הבאה במסוף, ומחליפים את השדות
DATABASE_NAMEו-SECRETבערכים משלכם:curl 'https://<DATABASE_NAME>.firebaseio.com/.json?auth=<SECRET>&print=silent' -X PUT -d @<DATABASE_NAME>.json
אם נתקלתם בבעיה בשחזור גיבוי ממסד נתונים גדול מאוד, פנו אל התמיכה של Firebase.
תזמון
הגיבוי של מסד הנתונים מוקצה לשעה ספציפית בכל יום, כדי להבטיח עומס מאוזן וזמינות גבוהה לכל הלקוחות שמבצעים גיבוי. הגיבוי המתוזמן הזה יתבצע גם אם תבצעו גיבויים ידניים במהלך היום.
מתן שמות לקבצים
הקבצים שמועברים לקטגוריית Cloud Storage יקבלו חותמת זמן (תקן ISO 8601) והשמות שלהם ייקבעו לפי המוסכמות הבאות:
- נתונים ממסד נתונים:
YYYY-MM-DDTHH:MM:SSZ_<DATABASE_NAME>_data.json - כללי מסד נתונים:
YYYY-MM-DDTHH:MM:SSZ_<DATABASE_NAME>_rules.json
אם האפשרות Gzip מופעלת, הסיומת .gz תצורף לשמות הקבצים. אפשר למצוא בקלות את הגיבויים מתאריך או משעה ספציפיים באמצעות Cloud Storageחיפוש עם קידומת.
דחיסת Gzip
כברירת מחדל, אנחנו דוחסים את קובצי הגיבוי באמצעות דחיסת Gzip כדי לחסוך בעלויות האחסון ולקצר את זמני ההעברה. גודל הקובץ הדחוס משתנה בהתאם למאפייני הנתונים במסד הנתונים, אבל בדרך כלל מסדי נתונים יכולים להתכווץ לשליש מהגודל המקורי שלהם, וכך לחסוך בעלויות האחסון ולקצר את זמן ההעלאה של הגיבויים.
כדי לבטל את הדחיסה של קובצי ה-JSON הדחוסים ב-Gzip, מריצים פקודה בשורת הפקודה באמצעות הקובץ הבינארי gunzip, שנשלח כברירת מחדל עבור OS-X ורוב הפצות Linux.
gunzip <DATABASE_NAME>.json.gz # Will unzip to <DATABASE_NAME>.json
מחזור חיים של אחסון למשך 30 יום
אנחנו מציעים מתג הגדרה קל לשימוש שמאפשר מדיניות ברירת מחדל של 30 ימים למחזור החיים של אובייקטים בקטגוריית Cloud Storage. אם האפשרות הזו מופעלת, קבצים בדלי יימחקו אוטומטית אחרי 30 יום. כך אפשר לצמצם את מספר הגיבויים הישנים הלא רצויים, לחסוך בעלויות האחסון ולשמור על סדר בספריית הדלי. אם תמקמו קבצים אחרים בדלי של הגיבויים האוטומטיים, הם יימחקו גם כן בהתאם לאותה מדיניות.
עלויות
אפשר להפעיל את תכונת הגיבוי בפרויקטים בתוכנית Blaze ללא עלות נוספת. עם זאת, נחייב אתכם לפי התעריפים הרגילים על קובצי הגיבוי שמוצבים בדלי Cloud Storage. כדי להקטין את עלויות האחסון, אפשר להפעיל את דחיסת Gzip ואת מחזור החיים של האחסון למשך 30 יום.