MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

एक ही सर्वर पर एक MongoDB से दूसरे संग्रह में क्लोन कैसे करें

कुछ बातें :

  1. सामान्य तौर पर cloneCollection विभिन्न मोंगो उदाहरणों के लिए प्रयोग किया जाता है लेकिन एक ही उदाहरण पर प्रतिलिपि बनाने के लिए नहीं।
  2. इसके अलावा यदि आप v4.2 . का उपयोग कर रहे हैं आपको copyDB का उपयोग बंद कर देना चाहिए &cloneCollection क्योंकि उन्हें हटा दिया गया है संगतता-के साथ-v4.2 &mongodump का उपयोग करना प्रारंभ करें और mongorestore या mongoexport &mongoimport
  3. मैं मोंगोडंप . का उपयोग करने का सुझाव दूंगा &मोंगोरेस्टोर :

    1. कारण मोंगोडंप MongoDB के डेटा प्रकारों को संरक्षित करेगा अर्थात; bson प्रकार।
    2. मोंगोडंप एक बाइनरी बनाता है जहां mongoexport . के रूप में कन्वर्ट होगा bson करने के लिए json और फिर से mongoimport jsonको कन्वर्ट कर देगा करने के लिए bson लिखते समय, यही कारण है कि वे धीमे हैं। जब आप अपने संग्रह डेटा का नेत्रहीन विश्लेषण करना चाहते हैं या json का उपयोग करना चाहते हैं तो आप mongoexport और mongoimport का उपयोग कर सकते हैं किसी अन्य उद्देश्य के लिए डेटा।
  4. आप स्क्रिप्ट के नीचे शेल में चला सकते हैं

    declare - a collections = ("collectionName1" "collectionName2")
    for i in "${collections[@]}"
    do
    echo "$i"
        mongodump --host "All-shards" --username=uname --password password --ssl --authenticationDatabase admin --db dbname --collection "$i"
    
        mongorestore --host=host-shard-name --port=27017 --username=uname --password=psswrd --ssl --authenticationDatabase=admin --db=dbname --collection= "$i" ./dump/dbName/"$i".bson;
    done
    

मोंगोडंप का उपयोग करने के लिए , आपको मोंगोडम्प को चल रहे मोंगोड या मोंगोस इंस्टेंस के खिलाफ चलाना होगा। तो इन आदेशों को चलाए जा रहे हैं उम्मीद है कि मोंगो ठीक से स्थापित है और पथ सेटअप अच्छा है, यदि नहीं तो आप मोंगो फ़ोल्डर में नेविगेट कर सकते हैं और ./mongodump की तरह चला सकते हैं &./mongorestore . यदि आप एकाधिक संग्रहों का बैकअप लेना चाहते हैं तो उपरोक्त स्क्रिप्ट उपयोगी होगी, आपको स्क्रिप्ट में कुछ चीजें निर्दिष्ट करने की आवश्यकता है जैसे:

  1. mongodump--host "All-shards" -> यहां आपको सभी शार्क निर्दिष्ट करने की आवश्यकता है यदि आपका MongoDB एक प्रतिकृति सेट है, यदि नहीं तो आप निर्दिष्ट कर सकते हैं localhost:27017

  2. mongorestore --host=host-shard-name -> आपको प्रतिकृति सेट का एक भाग निर्दिष्ट करना होगा, अन्यथा आपका localhost , यहाँ कुछ चीज़ें वैकल्पिक हो सकती हैं --ssl , --username , --password .

  3. तो मोंगोडम्प डंप . नाम का एक फोल्डर बनाएगा पहली बार जिसमें dbNames के साथ सब-फोल्डर होंगे और प्रत्येक सब-फोल्डर में bson होगा। उनके संग्रह नामों से संबंधित फ़ाइलें डंप की गईं, इसलिए आपको dbName . का संदर्भ लेना होगा रिस्टोर कमांड और कलेक्शन में नाम वेरिएबल i . से लिया जाएगा -> ./dump/dbName/"$i".bson

नोट : MongoDB v3.2 इतना पुराना और क्लाउड आधारित MongoDB सेवा में है Mongo-atlas यह पहले ही अपने जीवनचक्र के अंत तक पहुँच चुका है, इसलिए कृपया यथाशीघ्र अपग्रेड करें। यदि आप एक निःशुल्क मोंगो इंस्टेंस की तलाश में हैं या मोंगोडीबी से शुरू कर रहे हैं - तो आप एटलस को आजमा सकते हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB-Java ड्राइवर का उपयोग करके सरणी से एक प्रविष्टि निकालें

  2. संदर्भ सरणी के साथ नेवला मॉडल स्कीमा:CastError:वस्तु के लिए कास्ट मूल्य के लिए विफल [वस्तु वस्तु]

  3. मोंगोडब इंस्टॉलेशन विफल मोंगोड को चलाने के लिए

  4. मोंगोडब हेल्थचेक स्टेप बाय स्टेप

  5. रूबी में सीधे कच्चे मोंगोडीबी प्रश्नों को कैसे आग लगाना है?