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 को चालू किया जा सकता है.