2011-10-24 8 views
5

मैं निम्नलिखित mongodump कमांड लाइनMongoDB के साथ एक डंप बहाल करने में विफल रहता है

mongodump -h www.myhost.com -u myusername -p mypassword -d mydb > dump.bson 

और मैं अपने स्थानीय सर्वर पर डंप बहाल करने के लिए कोशिश कर रहा हूँ के साथ एक MongoDB डेटाबेस फेंक दिया गया है:

mongorestore -h localhost -d mydb dump.bson 

दुर्भाग्य से यह निम्न त्रुटि के साथ विफल रहता है:

assertion: 10264 invalid object size: 1096040772 

क्या किसी को पता है कि इस त्रुटि का कारण क्या हो सकता है? पी जब मैं mongoexport साथ निर्यात किया था और mongorestore साथ आयात करने का प्रयास इस मुझे क्या हुआ:: डी मेरी गलती
दोनों सर्वर मोंगो के संस्करण पर 1.8.3

धन्यवाद

+0

दोनों 32/64 बिट सिस्टम हैं? डंपिंग से पहले मूल डीबी की मरम्मत में भी मदद कर सकते हैं। – zulkamal

+0

स्थानीय सर्वर 64 बिट्स है लेकिन रिमोट, मुझे अभी तक वास्तव में पता नहीं है। अन्यथा, मैंने repairDatabase() की कोशिश की है लेकिन एक ही त्रुटि sill ... – PierrOz

+0

यदि वे एक ही बिट्स हैं तो संभवतः मोंगोडब मेलिंग सूची पर पूछना बेहतर होगा। मुझे एक बार एक छोटे से संग्रह पर यह त्रुटि मिली है और मरम्मत ने चाल की है। – zulkamal

उत्तर

6

क्योंकि mongodump से पहली स्ट्रिंग उत्पादन होता है "db स्तर लॉकिंग सक्षम: 0"

आप की जरूरत है इस

 
tail -n+2 dump.bson > dump_fix.bson 
mongorestore -h localhost -d mydb dump_fix.bson 
+0

दिलचस्प! मैं इसे आज़मा दूंगा, टिप – PierrOz

+0

के लिए thw mongo (2.1 स्थिर) के नए संस्करण में यह तय किया जाना चाहिए। Https://github.com/mongodb/mongo/pull/204 – azat

+0

मेरे लिए काम किया देखें! धन्यवाद! – jsh

6

बहाना मेरी अंग्रेजी है! मुझे mongoimport का उपयोग करना पड़ा। याद रखें: mongoexport/mongoimport, और mongodump/mongorestore

मैं आशा है कि यह कुछ एक के लिए उपयोगी है: पी

+0

यह शाम भी मेरी गलती थी! –

1

करने के लिए मैं भी इस समस्या का सामना करना पड़ा। और अंत में मैंने पाया कि यह समस्या गलत तरीके से mongodump कमांड का उपयोग करके हुई थी।

+0

हाय @zwalker। शायद हमें यह बताने का अच्छा विचार होगा कि आपको कौन सा आदेश और आपने इसे ठीक करने के लिए क्या किया :) –

+0

मैं wutg @TarynEast से सहमत हूं। –

0

के बजाय बहाल यह बहुत अच्छी तरह से कहीं भी नहीं समझाया गया है कि मैंने पाया उपयोग करते हैं, लेकिन मैं एक समाधान है कि काम मिल गया।

मैंने मोंगोलैब से एक .tgz फ़ाइल डाउनलोड की, जिसमें इसमें .bson और .json फ़ाइलें शामिल थीं। मैंने अपने मैक पर एक ~/डंप फ़ोल्डर बनाया है। मैंने उन सभी .bson और .json फ़ाइलों को ~/डंप फ़ोल्डर में कॉपी किया है, इसलिए उदाहरण के लिए मेरे पास ~/डंप/users.bson था।

mongorestore -h 127.0.0.1 -db <the_db_name_on_server_this_backup_is_from> 

यह सेकंड में आयातित:

मैं टर्मिनल में इस आदेश को भाग गया। मुझे यकीन है कि अन्य तरीके/विकल्प हैं, लेकिन यह मेरे लिए काम करता है।

संबंधित मुद्दे