उसी जगह पर डेटा वापस लाएं

इस पेज पर, बैकअप में मौजूद डेटा को किसी ऐसे डेटाबेस में वापस लाने का तरीका बताया गया है जिसका नाम, बैकअप के सोर्स डेटाबेस के नाम जैसा ही हो. इस पेज को पढ़ने से पहले, आपको डेटा का बैकअप लेने और उसे वापस लाने के बारे में पता होना चाहिए.

इन-प्लेस रीस्टोर करना

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

रीस्टोर करने की कार्रवाई के लिए, ऐसे डेस्टिनेशन डेटाबेस का इस्तेमाल करना ज़रूरी है जो पहले से मौजूद न हो. हालांकि, सोर्स डेटाबेस को मिटाकर और फिर सोर्स डेटाबेस के नाम वाले नए डेटाबेस में बैकअप से रीस्टोर करके, इन-प्लेस रीस्टोर की प्रोसेस को सिम्युलेट किया जा सकता है.

इन-प्लेस रीस्टोर करना

इन-प्लेस रीस्टोर करने के लिए, यह तरीका अपनाएं:

  1. रीस्टोर करने की कार्रवाई के लिए, वह बैकअप चुनें जिसका इस्तेमाल करना है.
  2. मौजूदा डेटाबेस मिटाएं.
  3. रीस्टोर करने की कार्रवाई पूरी करने के लिए, बैकअप और मिटाए गए डेटाबेस के आईडी का इस्तेमाल करें.
चेतावनी: अगर आपका ऐप्लिकेशन, नेटिव मोड में Cloud Firestore क्लाइंट लाइब्रेरी का इस्तेमाल करता है और आपके क्लाइंट ऑफ़लाइन कैश का इस्तेमाल करते हैं, तो इन-प्लेस रीस्टोर करने पर, आपके लिखे गए डेटा को मिटाने के बजाय, उसे रीस्टोर किए गए डेटाबेस में फ़्लश किया जा सकता है. ऐसा तब हो सकता है, जब मिटाए गए डेटाबेस से कनेक्ट किया गया क्लाइंट ऑफ़लाइन हो जाए. साथ ही, ऑफ़लाइन होने के दौरान, कैश में उस समय का डेटा इकट्ठा हो जाए जब आपने इन-प्लेस रीस्टोर किया हो.

शुरू करने से पहले

हमारा सुझाव है कि इन-प्लेस रीस्टोर की प्रोसेस शुरू करने से पहले, यह तरीका अपनाएं.

अपने डेटाबेस का इंडेक्स कॉन्फ़िगरेशन वापस पाएं और उसे कॉपी करें. इन-प्लेस रीस्टोर की कार्रवाई पूरी करने के बाद, इंडेक्स कॉन्फ़िगरेशन का इस्तेमाल करके इंडेक्स फिर से बनाएं. अपने डेटाबेस का इंडेक्स कॉन्फ़िगरेशन वापस पाने के लिए, इन निर्देशों का इस्तेमाल करें:

  • कंपोज़िट इंडेक्स की सूची वापस पाने के लिए, gcloud firestore indexes composite list का इस्तेमाल करें:

        gcloud firestore indexes composite list --database=DATABASE_ID
    

    DATABASE_ID को अपने डेटाबेस के आईडी से बदलें.

  • सिंगल-फ़ील्ड (इन-बिल्ट) इंडेक्स से जुड़ी छूट की सूची वापस पाने के लिए, gcloud firestore indexes fields list का इस्तेमाल करें.

        gcloud firestore indexes fields list --database=DATABASE_ID
    

इन-प्लेस रीस्टोर करना

इन-प्लेस रीस्टोर की कार्रवाई करने के लिए, यह तरीका अपनाएं. इस प्रोसेस के लिए, डेटाबेस मिटाने और रीस्टोर करने की कार्रवाई पूरी होने के बीच डाउनटाइम की ज़रूरत होती है.

रीस्टोर करने की कार्रवाई शुरू होने के बाद, उसे रद्द नहीं किया जा सकता. साथ ही, आपको कार्रवाई पूरी होने तक इंतज़ार करना होगा. रीस्टोर करने की कार्रवाई में इस्तेमाल किया गया डेटाबेस आईडी तुरंत इस्तेमाल में आ जाता है.

  1. रीस्टोर करने की कार्रवाई के लिए, वह बैकअप चुनें जिसका इस्तेमाल करना है. इसके लिए, gcloud firestore backups list निर्देश का इस्तेमाल करें. साथ ही, संसाधन का नाम नोट करें. संसाधन का नाम इस फ़ॉर्मैट में होता है:

        projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID
    
  2. मौजूदा डेटाबेस मिटाने के लिए, gcloud firestore databases delete निर्देश का इस्तेमाल करें:

        gcloud firestore databases delete --database='DATABASE_ID'
    

    DATABASE_ID को डेटाबेस आईडी से बदलें.

  3. डेटाबेस मिटाने के बाद, कम से कम पांच मिनट इंतज़ार करें, ताकि डेटाबेस आईडी फिर से उपलब्ध हो जाए. gcloud firestore databases restore निर्देश का इस्तेमाल करके, रीस्टोर करने की कार्रवाई शुरू करें:

    gcloud firestore databases restore \
    --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \
    --destination-database='DATABASE_ID'
    

    DATABASE_ID को डेटाबेस आईडी से बदलें.

आगे क्या करना है