अपने-आप बैकअप लिए जाने की सुविधा

Blaze प्लान के उपयोगकर्ता, अपने Firebase Realtime Database को अपने-आप बैकअप लेने के लिए सेट अप कर सकते हैं. यह एक ऐसी सुविधा है जो आपके डेटाबेस ऐप्लिकेशन के डेटा और Security Rules का रोज़ाना बैकअप लेती है. यह बैकअप, JSON फ़ॉर्मैट में Cloud Storage बकेट में सेव होता है.

सेटअप

  1. Firebase console में, डेटाबेस और स्टोरेज > Realtime Database पर जाएं.

  2. बैकअप टैब में, कंसोल में मौजूद वर्कफ़्लो का इस्तेमाल करके, अपने-आप होने वाले बैकअप सेट अप करें.

स्टोरेज की लागत कम करने के लिए, हम डिफ़ॉल्ट रूप से Gzip कंप्रेशन चालू करते हैं. साथ ही, आपके पास अपने बकेट पर 30 दिनों के लाइफ़साइकल की नीति चालू करने का विकल्प होता है. इससे 30 दिनों से ज़्यादा पुराने बैकअप अपने-आप मिट जाते हैं.

Firebase कंसोल में जाकर, बैकअप की स्थिति और गतिविधि देखी जा सकती है. यहां से मैन्युअल तरीके से बैकअप भी लिया जा सकता है. यह सुविधा, किसी तय समय पर स्नैपशॉट लेने के लिए मददगार हो सकती है. इसके अलावा, कोड में कोई भी बदलाव करने से पहले, सुरक्षा के तौर पर इसका इस्तेमाल किया जा सकता है.

सेट अप हो जाने के बाद, आपके लिए एक नया Cloud Storage बकेट बनाया जाएगा. इसमें Firebase के लिए, लिखने की अनुमति होगी. आपको इस बकेट में ऐसा डेटा सेव नहीं करना चाहिए जिसे Firebase के साथ शेयर करने में आपको कोई समस्या हो. Firebase के पास, आपके अन्य Cloud Storage बकेट या Google Cloud के किसी अन्य हिस्से का कोई अतिरिक्त ऐक्सेस नहीं होगा.

बैकअप से डेटा वापस लाना

बैकअप से Firebase को वापस लाने के लिए, पहले Cloud Storage से फ़ाइल को अपनी लोकल डिस्क पर डाउनलोड करें. इसके लिए, बैकअप गतिविधि सेक्शन में मौजूद फ़ाइल के नाम पर क्लिक करें या Cloud Storage बकेट इंटरफ़ेस में जाएं. अगर फ़ाइल Gzip कंप्रेस की गई है, तो पहले उसे डीकंप्रेस करें.

डेटा इंपोर्ट करने के लिए, आपके पास दो विकल्प हैं:

  • पहला विकल्प: Firebase कंसोल का इस्तेमाल करें.

    1. डेटाबेस और स्टोरेज > Realtime Database > डेटा टैब पर जाएं.

    2. JSON इंपोर्ट करें पर क्लिक करें और अपने ऐप्लिकेशन के डेटा की JSON फ़ाइल चुनें.

  • दूसरा विकल्प: अपनी कमांड लाइन से CURL अनुरोध जारी करें.

    1. Firebase से कोई सीक्रेट पाएं. इसे डेटाबेस और स्टोरेज > रीयलटाइम डेटाबेस > सेटिंग टैब से पाया जा सकता है.

    2. अपने टर्मिनल में यह कमांड डालें. साथ ही, 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 कंप्रेशन का इस्तेमाल करके कंप्रेस करते हैं. इससे स्टोरेज की लागत कम होती है और फ़ाइलों को ट्रांसफ़र करने में कम समय लगता है. कंप्रेस की गई फ़ाइल का साइज़, आपके डेटाबेस की विशेषताओं के हिसाब से अलग-अलग होता है. हालांकि, सामान्य डेटाबेस का साइज़ अपने मूल साइज़ का एक तिहाई हो सकता है. इससे आपको स्टोरेज की लागत कम करने में मदद मिलती है. साथ ही, बैकअप अपलोड करने में लगने वाला समय भी कम हो जाता है.

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