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

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

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

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

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

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

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

  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 को डेटाबेस आईडी से बदलें.

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