Blaze प्लान के उपयोगकर्ता, अपने Firebase Realtime Database को अपने-आप बैकअप लेने के लिए सेट अप कर सकते हैं. यह एक ऐसी सुविधा है जो आपके डेटाबेस ऐप्लिकेशन के डेटा और नियमों का रोज़ाना बैकअप लेती है. यह बैकअप, JSON फ़ॉर्मैट में Cloud Storage बकेट में सेव होता है.
सेटअप
शुरू करने के लिए, Firebase कंसोल के डेटाबेस सेक्शन में मौजूद बैकअप टैब पर जाएं. इसके बाद, विज़र्ड आपको अपने-आप होने वाले बैकअप सेट अप करने का तरीका बताएगा.
स्टोरेज की लागत कम करने के लिए, हम डिफ़ॉल्ट रूप से Gzip कंप्रेशन चालू करते हैं. साथ ही, आपके पास अपने बकेट में 30 दिनों के लाइफ़साइकल की नीति चालू करने का विकल्प होता है. इससे 30 दिनों से ज़्यादा पुराने बैकअप अपने-आप मिट जाते हैं.
Firebase कंसोल में जाकर, सीधे तौर पर स्टेटस और बैकअप की गतिविधि देखी जा सकती है. यहां से, मैन्युअल तरीके से बैकअप भी शुरू किया जा सकता है. यह सुविधा, किसी खास समय पर स्नैपशॉट लेने के लिए या कोड में कोई भी बदलाव करने से पहले सुरक्षा के तौर पर इस्तेमाल की जा सकती है.
सेट अप हो जाने के बाद, आपके लिए एक नया Cloud Storage बकेट बनाया जाएगा. इसमें Firebase के लिए, लिखने की अनुमति होगी. आपको इस बकेट में ऐसा डेटा सेव नहीं करना चाहिए जिसे Firebase के साथ शेयर करने में आपको कोई समस्या हो. Firebase के पास, आपके अन्य Cloud Storage बकेट या Google Cloud के किसी अन्य हिस्से का ऐक्सेस नहीं होगा.
बैकअप से डेटा वापस लाना
बैकअप से Firebase को वापस लाने के लिए, पहले Cloud Storage से फ़ाइल को अपनी लोकल डिस्क पर डाउनलोड करें. इसके लिए, बैकअप गतिविधि सेक्शन में मौजूद फ़ाइल के नाम पर क्लिक करें या Cloud Storage बकेट इंटरफ़ेस में जाएं. अगर फ़ाइल को Gzip कंप्रेस किया गया है, तो पहले उसे डीकंप्रेस करें.
डेटा इंपोर्ट करने के दो तरीके हैं:
पहला तरीका: डेटाबेस के डेटा सेक्शन में जाकर, JSON फ़ाइल इंपोर्ट करें बटन पर क्लिक करें. इसके बाद, अपने ऐप्लिकेशन के डेटा की JSON फ़ाइल चुनें.
दूसरा तरीका: कमांड लाइन से CURL अनुरोध भी भेजा जा सकता है.
सबसे पहले, अपने Firebase से कोई सीक्रेट पाएं. इसके लिए, डेटाबेस सेटिंग पेज पर जाएं.
इसके बाद, अपने टर्मिनल में यह डालें. साथ ही, DATABASE_NAME
और SECRET
फ़ील्ड में अपनी वैल्यू डालें:
curl 'https://<DATABASE_NAME>.firebaseio.com/.json?auth=<SECRET>&print=silent' -X PUT -d @<DATABASE_NAME>.json
अगर आपको बहुत बड़े डेटाबेस से बैकअप को वापस लाने में समस्या आ रही है, तो कृपया हमारी सहायता टीम से संपर्क करें.
शेड्यूल करें
आपके डेटाबेस के बैकअप को हर दिन एक खास समय पर असाइन किया जाता है. इससे यह पक्का होता है कि सभी बैकअप ग्राहकों के लिए, लोड और उपलब्धता एक जैसी हो. शेड्यूल किया गया यह बैकअप, दिन भर में मैन्युअल तरीके से लिए गए बैकअप के बावजूद लिया जाएगा.
फ़ाइल का नाम
आपके 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 कंप्रेशन का इस्तेमाल करके कंप्रेस करते हैं. इससे स्टोरेज की लागत कम होती है और फ़ाइलों को ट्रांसफ़र करने में कम समय लगता है. कंप्रेस की गई फ़ाइल का साइज़, आपके डेटाबेस की विशेषताओं के आधार पर अलग-अलग होता है. हालांकि, सामान्य डेटाबेस का साइज़ अपने मूल साइज़ का एक तिहाई हो सकता है. इससे आपको स्टोरेज की लागत कम करने में मदद मिलती है. साथ ही, बैकअप अपलोड करने में लगने वाला समय भी कम हो जाता है.
Gzipped JSON फ़ाइलों को डीकंप्रेस करने के लिए, कमांड लाइन कमांड जारी करें. इसके लिए, gunzip
बाइनरी का इस्तेमाल करें. यह OS-X और ज़्यादातर Linux डिस्ट्रिब्यूशन के लिए डिफ़ॉल्ट रूप से उपलब्ध होती है.
gunzip <DATABASE_NAME>.json.gz # Will unzip to <DATABASE_NAME>.json
स्टोरेज के लिए 30 दिनों का लाइफ़साइकल
हम कॉन्फ़िगरेशन स्विच का इस्तेमाल करने में आसान विकल्प देते हैं. इससे आपके Cloud Storage बकेट के लिए, ऑब्जेक्ट के लाइफ़साइकल की डिफ़ॉल्ट नीति 30 दिनों के लिए लागू हो जाती है. इस सुविधा को चालू करने पर, आपके बकेट में मौजूद फ़ाइलें 30 दिनों के बाद अपने-आप मिट जाएंगी. इससे पुराने और गैर-ज़रूरी बैकअप को कम करने में मदद मिलती है. साथ ही, स्टोरेज के लिए कम शुल्क देना पड़ता है और आपकी बकेट डायरेक्ट्री साफ़ रहती है. अगर आपने अन्य फ़ाइलों को अपने 'अपने-आप होने वाले बैकअप' बकेट में रखा है, तो वे भी इसी नीति के तहत मिटा दी जाएंगी.
लागत
बैकअप लेने की सुविधा को Blaze प्लान वाले प्रोजेक्ट के लिए चालू किया जा सकता है. इसके लिए, कोई अतिरिक्त शुल्क नहीं लिया जाता. हालांकि, Cloud Storage बकेट में रखी गई बैकअप फ़ाइलों के लिए, आपसे सामान्य शुल्क लिया जाएगा. स्टोरेज की लागत कम करने के लिए, Gzip Compression और Storage 30 day Lifecycle को चालू किया जा सकता है.