.Ns এবং .0, .1,। থেকে মঙ্গোডিবি ডাটাবেসগুলি পুনরুদ্ধার করা সম্ভব? … নথি পত্র?


14

আমার উবুন্টু 12.10 এ একটি মোঙ্গোডিবি 2.0.4 ইনস্টলেশন রয়েছে। সম্প্রতি বাইরে থেকে ডাটাবেসের সাথে সংযোগ স্থাপন করতে আমার কিছু সমস্যা হয়েছিল এবং আমি বুঝতে পারি যে মঙ্গোডিবি সঠিকভাবে শুরু হতে বাধা দিয়েছে something বেশ কয়েকটি উত্সের পরামর্শ অনুসারে (স্ট্যাকওভারফ্লো দেখুন) আমি সরিয়ে /var/lib/mongodb/mongodb.lockদৌড়ে এসেছি mongod --repair। এটি সমস্যার সমাধান করেনি, মঙ্গোডিবি চালাবে না এবং লক ফাইলগুলি তৈরি করা চালিয়ে যাবে যা এটি পরে মুছে ফেলার ক্ষেত্রে যত্ন নেয় না। লগগুলি দেখে, আমি বুঝতে পেরেছিলাম যে এটির নামক কোনও ফোল্ডারে অ্যাক্সেস নেই $tmpSomething, সুতরাং (যেহেতু নামটি একটি অস্থায়ী ফোল্ডারের পরামর্শ দিয়েছিল) আমি এটিকে সরিয়ে দিয়েছি, এবং পরে এটি সমস্ত কাজ করেছে ... কেবলমাত্র আমার কাছে একটি আছে আমার পূর্ববর্তী ডাটাবেসগুলিতে দর্শন আছে, অন্য /var/lib/mongodb/ফোল্ডারগুলি এখনও আছে কারণ আমার ফোল্ডারটি এখনও পূর্ণ.ns .0 .1 .nফাইল যে ওজন অনেক। এগুলি ডাটাবেসে পুনরুদ্ধার করার কোনও উপায় আছে? (আমি মংগেরস্টোর দিয়ে চেষ্টা করেছি, তবে যেমনটি আমি প্রত্যাশা করছিলাম, এটি ফাইলগুলি পরিচালনা করে না)।

ধন্যবাদ

উত্তর:


19

.ns .0 .1ইত্যাদি ফাইল কোন তথ্য নিজেদের ফাইল। যদি আপনি সেই ফোল্ডারটির দিকে নির্দেশ করে mongodকোনও --dbpathযুক্তি দিয়ে কোনও উদাহরণ শুরু করেন, বা আপনি যদি অন্য বিষয়বস্তু অন্য কোথাও সরিয়ে নিয়েছেন এবং সেখানে নির্দেশ করার বিকল্পটি ব্যবহার করেন, মঙ্গোদ এগুলি স্বাভাবিক হিসাবে পড়ার চেষ্টা করবে।

যেহেতু আপনার সমস্যাগুলি দুর্নীতি এবং / বা অন্য কোনও সমস্যা শুরু হওয়ার পরামর্শ দেয় mongod(আপনার সত্যিই স্টার্টআপ বার্তাগুলি লগ ফাইলগুলি পোস্ট করা উচিত, সম্ভবত এই সমস্যাটির সমাধানের জন্য একটি পৃথক প্রশ্নে), তারপরে বিকল্প রয়েছে। রেফারেন্সের জন্য, সর্বাধিক সাধারণ সমস্যাগুলি হ'ল অনুমতি সম্পর্কিত, বিশেষত যখন লোকেরা ম্যানুয়ালি নিজেই (নিজের হিসাবে) বা সুডো (রুট হিসাবে) শুরু করার চেষ্টা করে এবং বিভিন্ন ডিরেক্টরিতে সমস্যাযুক্ত অনুমতি তৈরি করে।

আপনি সঠিক যে mongorestoreএই ডেটা ফাইলগুলি সরাসরি ব্যবহার করতে পারবেন না, তবে mongodumpসেগুলি পড়তে এবং বিএসএন ফাইলগুলির মধ্যে mongorestoreপ্রত্যাশা করা ফাইলগুলির মধ্যে ডেটা ফেলে দিতে পারেন dump

আপনি এখানে বিকল্পটি চান dbpath । আপনি আপনার পথটি উল্লেখ করেছেন /var/lib/mongoযাতে আপনি এরকম কিছু চালাতে পারেন:

mongodump --dbpath /var/lib/mongo -d <database name> -o /path/to/put/files

Ptionচ্ছিকভাবে আপনি --repairদুর্নীতিগ্রস্থ অংশগুলি (খুব কমই যদি কখনও প্রয়োজন হয় তবে খুব কম ক্ষেত্রে) পেতে চরম পরিস্থিতিতে ক্যোয়ারী বিকল্পগুলির সাথে দুর্নীতির সমাধানের জন্য এখানেও ব্যবহার করতে পারেন । বিভিন্ন বিকল্প mongodumpপৃষ্ঠাতে বর্ণিত হয়েছে :

http://docs.mongodb.org/manual/reference/mongodump/

আপনি একবার ফাইলগুলি ছুঁড়ে mongorestoreফেললে , আপনি সেগুলিকে অন্য কোনও mongodদৃষ্টান্তে পুনরায় রপ্ত করতে ব্যবহার করতে পারেন ।


5
মংডাম্প 3.0+ এর আর --dbpath পতাকা নেই
two1ejack

2
: মোঙ্গো 3.0 সঙ্গে একটি বিকল্প নিদিষ্ট ফাইলগুলির সাথে মোঙ্গো সার্ভার শুরু করার mongod --dbpath ./এবং তারপর ছাড়া mongodump সাথে এগিয়ে--dbpath
Shwaydogg

3
কেবলমাত্র একটি নোট, যদি আপনি মঙ্গো ৩.০ চালাচ্ছেন এবং ফাইলগুলিতে mongod --dbpath ./আপনাকে ডাটাবেস না দেন .ns .0, তবে স্টোরেজ ইঞ্জিনটি পুরানো এমএমএপভি 1 ইঞ্জিনের পরিবর্তে নতুন ওয়্যার্ডটাইগার ইঞ্জিনে ডিফল্ট হয়। mongod --storageEngine mmapv1 --dbpath ./পরিবর্তে পুরানো ইঞ্জিন ব্যবহার করে সংযোগ করার চেষ্টা করুন ।
flamebaud

1
কেউ আমাকে .ns, .0 এবং .1 ফাইল থেকে ডেটা মঙ্গো 3.0 এ স্থানান্তর করতে সহায়তা করতে পারে
সিং

1
@ ফ্লেমেবাউড যেমন বলেছে, ডিফল্ট ইঞ্জিনটি পরিবর্তিত হয়েছে। মংগো ডকুমেন্টেশনে দয়া করে ডিফল্ট স্টোরেজ ইঞ্জিন পরিবর্তন পরীক্ষা করুন । আপনি ওয়্যার্ডটাইগার স্টোরেজ ইঞ্জিন
লুডোভিচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.