आपके पास शटडाउन के दौरान डिस्क के अशुद्ध डिस्माउंट से डेटाफ़ाइल दूषण है। यदि आप डेटाबेस को पुनर्स्थापित करते हैं, तब भी आप डेटाबेस में कुंजियों की असंगति के कारण समस्याओं का सामना कर सकते हैं। निम्नलिखित एक प्रक्रिया है जो इस मुद्दे को ठीक से संबोधित करती है
अचानक विफलता से MongoDB पुनर्प्राप्ति
-
यदि डेटाबेस फ़ाइलें आपके होस्ट पर हैं, तो इस प्रक्रिया को शुरू करने से पहले उनकी प्रतिलिपि बनाएँ। उन्हें कॉपी करने के लिए, आप उपयोग कर सकते हैं
docker cp <container_name>:<location of files in container> <location on host>
यदि डेटाबेस फ़ाइलें अभी भी कंटेनर के अंदर हैं, तो कंटेनर के बाहर प्राप्त करें, और एक प्रतिलिपि बनाएँ
-
निम्न प्रकार से फाइलों पर एक मरम्मत कंटेनर शुरू करें:
docker run -it -v <data folder>:/data/db <image name>:<image-version> mongod --repair
छवि का नाम प्लेटफ़ॉर्म पर निर्भर करता है, और रास्पबेरी PI3 के लिए नाम
andresvidal/rpi3-mongodb3
है , arm64v8 या amd64 के लिए कंटेनरmongo
. हैसुनिश्चित करें कि आपके पास MongoDB छवि का वही संस्करण है जिसका उपयोग डेटा फ़ाइलों को बनाने के लिए किया जाता है।
यदि फ़ाइलें मरम्मत से परे हैं, तो प्रयास करें:
docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --repair --dbpath /data/db
-
एक बार फाइलों की मरम्मत हो जाने के बाद, आपको डेटाबेस पर एक कंटेनर शुरू करना होगा और फाइलों को निर्यात करना होगा
docker run -it -v <data folder>:/data/db mongo:<image-version> mongodump --dbpath /data/db
-
अपने प्रोजेक्ट के लिए एक स्वच्छ डेटाबेस प्रारंभ करें और
mongorestore
. का उपयोग करें नए डेटाबेस में डेटा आयात करने के लिए।
अधिक जानकारी के लिए आप निम्न लिंक देख सकते हैं: