এক সার্ভারে একাধিক মঙ্গো


11

আমি বলছি না sharding । আমাদের একটি পরীক্ষার সার্ভার ছিল (লিনাক্স) এবং এরই মধ্যে একটি রয়েছে mongoযা অন্য প্রকল্প / সাবটেমের অন্তর্গত। এটি চালানোর জন্য সম্ভব একাধিক, বিচ্ছিন্ন দৃষ্টান্ত এর mongodbএক মেশিনে? আমি এটা কিভাবে করবো?

উত্তর:


14

হ্যাঁ, আপনি অন্যান্য উদাহরণগুলির জন্য বিভিন্ন পোর্ট নম্বর এবং ডেটা ডিরেক্টরি নির্দেশ mongodকরে এবং তারপরে ক্লায়েন্টে নতুন পোর্ট নম্বর নির্দিষ্ট করে এটি করতে পারেন।

উদাহরণ স্বরূপ:

./mongod --dbpath /foo/bar/otherpath --port some_other_port

আপনার প্রয়োজন হলে আপনি শারড সার্ভার এবং কনফিগার সার্ভার পোর্ট নম্বরগুলিও পরিবর্তন করতে পারেন ।


1
এটি কি mongodb.conf এর মধ্যে নির্দিষ্ট করা সম্ভব? নাকি এটি করার জন্য আমার কোনও স্ক্রিপ্ট তৈরি করতে হবে? (* নিক্সে)
জাস্টিন

@ জাস্টিন, আপনি অবশ্যই একটি কনফিগার ফাইলের মধ্যে এই বিকল্পগুলি নির্দিষ্ট করতে পারবেন - mongodb.org/display/DOCS/File+ বেসড + কনফিগারেশন দেখুন । তবে তারপরেও আপনাকে বিভিন্ন কনফিগারেশন ফাইলগুলি বিভিন্ন দৃষ্টান্তে পাস করতে হবে।
dsolimano

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

@ জাস্টিন, আমি মনে করি এটি সম্ভবত একটি নতুন প্রশ্নের মাত্রায় পৌঁছেছে, সম্ভবত আপনার এটি এই সাইটে জিজ্ঞাসা করা উচিত? মনে হচ্ছে আপনি মোঙ্গো শুরু করার উপায় সম্পর্কে এমন কিছু আছে যা সমস্যার সৃষ্টি করছে।
dsolimano

3

আমি যে পদক্ষেপ নিয়েছি সেগুলি হ'ল:

  1. কনফারেন্স ফাইল /etc/mongod.conf mongod2.conf এবং mongod3.conf এ অনুলিপি করুন
  2. বিভিন্ন পোর্ট এবং বিভিন্ন ডাটাবেসের পাথ থাকতে কনফিড ফাইলগুলি সম্পাদনা করুন
  3. Init.d শুরু স্ক্রিপ্ট /etc/init.d/mongod mongod2 এ এবং মংডোড 3 এ অনুলিপি করুন
  4. বাইনারি মংডোড / ইউএসআর / বিন / মঙ্গোদকে / ইউএসআর / বিন / মংডোড 2 এবং এছাড়াও / ইউএসআর / বিন / মঙ্গোদ 3 এ অনুলিপি করুন
  5. Init.d শুরু স্ক্রিপ্টগুলি সম্পাদনা করুন এবং নিম্নলিখিতগুলি পরিবর্তন করেছেন:

    CONFIGFILE = "/ etc / mongod2.conf" (যথাক্রমে mongod3.conf)

    ....

    মংডোড = {ONG মংডোড- / ইউএসআর / বিন / মঙ্গোদ 2 2 (যথাক্রমে মংডোড 3)

যেখানেই আমি এটি পেয়েছি সেখানে যথাক্রমে / ভার / লক / সাবসি / মঙ্গোদ / ভার / লক / সাবসি / মঙ্গোদ 2 (মংডোড 3) এর সাথে প্রতিস্থাপন করা হয়েছে।

মোংডোডলককে মোংডোড.লক (অথবা যথাক্রমে মোংডোড3.লক) প্রতিস্থাপনের প্রলোভনের বিরুদ্ধে প্রতিরোধ করুন। এগুলি আলাদা ফোল্ডারে রয়েছে (ডাটাবেস ফোল্ডারগুলি আলাদা) এবং এতে বিরোধ নেই conflict

এখন আমি পারি

service mongod start|stop|status

service mongod2 start|stop|status

service mongod3 start|stop|status

এবং আরো

mongo --port <port_number> 

প্রতিটি মঙ্গো উদাহরণের জন্য (কনফিড ফাইলগুলি থেকে পোর্ট সেটিংস মনে রাখবেন)

মংডোড বাইনারি নামকরণের কোনও পার্শ্ব প্রতিক্রিয়া সম্পর্কে আমি অবগত নই ..

আশাকরি এটা সাহায্য করবে.

[পরবর্তী সম্পাদনা] স্বয়ংক্রিয়ভাবে দৃষ্টান্তগুলি শুরু করতে, কেবল ln -s /etc/init.d/mongod2 /etc/rc.d/rc3.d/S86mongod এবং ln -s /etc/init.d/mongod3 / ইত্যাদি / আরসি .d / rc3.d / S87mongod :)


আহ ভাল! এর আগে অনেক ভাগ্য ছাড়াই ঠিক একই কাজ করেছিল কারণ আমি ভাবি নি যে আমাদেরও মঙ্গোদ এক্সিকিউটেবলের নকল করা উচিত। এখন সব ভাল।
বাচ

আমার ক্ষেত্রে, ব্যবহার করে Ubuntu 16.01, কোনও init.dস্ক্রিপ্ট ছিল না । আপনি init.dস্ক্রিপ্ট সামগ্রী সরবরাহ করতে পারেন ?
শুভম এ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.