মংগোডিবি-র জন্য নমুনা ওয়াইএএমএল কনফিগারেশন ফাইলগুলি?


33

MongoDB কনফিগারেশন অপশন ডকুমেন্টেশন তালিকা সমস্ত উপলব্ধ অপশন উল্লিখিত যেতে পারে, কিন্তু যে কেউ সম্পূর্ণরূপে গঠিত উদাহরণ YAML বিভিন্ন চরিত্রে MongoDB দৃষ্টান্ত জন্য ফাইল কনফিগ ফরম্যাট একটি সেট আছে?

সাধারণ ভূমিকাগুলির জন্য উদাহরণগুলির একটি সেট স্ক্র্যাচ থেকে শুরু হওয়া, বা সর্বশেষতম কনফিগারেশন ফাইল ফর্ম্যাটের সাথে পরীক্ষার জন্য সন্ধানকারীদের জন্য খুব দরকারী সূচনা পয়েন্ট হবে।

উত্তর:


47

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

প্রথমত, mongodডিফল্ট পোর্ট, পথ, জার্নাল সেটিংস সহ একক স্টোনএলোন - এটি স্থানীয় পরীক্ষার জন্য ব্যবহৃত কনফিগারেশনের ধরণ, কয়েকটি অতিরিক্ত সহ সাধারণ স্টাইলটি দেখান:

storage:
    dbPath: "/data/db"
    directoryPerDB: true
    journal:
        enabled: true
systemLog:
    destination: file
    path: "/data/db/mongodb.log"
    logAppend: true
    timeStampFormat: iso8601-utc
processManagement:
    fork: true
net:
    bindIp: 127.0.0.1
    port: 27017
    wireObjectCheck : false
    unixDomainSocket: 
        enabled : true

এই কনফিগারেশনে কিছু নোট:

  • আপনি সাধারণত wireObjectCheck: falseউত্পাদনে অবজেক্টটি চেক অফ করতে চান না , তবে পরীক্ষার উদ্দেশ্যে প্রচুর পরিমাণে ডেটা, এটি কিছুটা গতি বাড়িয়ে তুলবে এবং এ জাতীয় পরিবেশের মধ্যে একটি সর্বনিম্ন ঝুঁকি is
  • প্রতিলিপি সেটটির সমস্ত সদস্য লুপব্যাক আইপি ঠিকানায় না থাকলে এটি প্রতিলিখনের জন্য কাজ করবে না (কারণ এটি কেবলমাত্র বাধ্যতামূলক নির্দিষ্ট বাধ্যবাধকতা), তাই সাবধান

এখন, আসুন প্রমাণীকরণ সক্ষম এবং একটি তীক্ষ্ণ ক্লাস্টারের অংশ হিসাবে চলমান একটি আদর্শ উত্পাদন প্রতিলিপি সেট সদস্যের জন্য একটি নমুনা কনফিগার ফাইলটি দেখুন:

storage:
    dbPath: "/data/db"
    directoryPerDB: true
    journal:
        enabled: true
systemLog:
    destination: file
    path: "/var/log/mongodb.log"
    logAppend: true
    timeStampFormat: iso8601-utc
replication:
    oplogSizeMB: 10240
    replSetName: "rs1"
processManagement:
    fork: true
net:
    bindIp: 192.0.2.1
    port: 27018
security:
    keyFile: "/data/key/rs1.key"
    authorization: "enabled"
sharding:
    clusterRole: "shardsvr"

এই কনফিগারেশনের কয়েকটি নোট:

  • আবার ডিফল্ট এবং আবদ্ধ সেটিংসের সুস্পষ্ট ঘোষণা রয়েছে (উদাহরণস্বরূপ পোর্টটি ক্লাস্টারোল দ্বারা বোঝানো হয়েছে), সাধারণত বিভ্রান্তি এড়াতে এটি প্রস্তাবিত হয়
  • আইপি বাইন্ডিংটি এখন কেবলমাত্র বাহ্যিক আইপি ঠিকানা, সুতরাং লুপব্যাক আইপিতে যোগাযোগ এখন ব্যর্থ হবে, তবে প্রতিলিপিটি দূরবর্তী হোস্টগুলিতে কাজ করতে পারে
  • ওপলগ মুক্ত স্থানের 5% এ ডিফল্ট থাকে, তাই বেশি রক্ষণশীল হতে এবং বরাদ্দ করা আকারটি স্পষ্টভাবে নির্ধারণ করা বড় পরিমাণে সাধারণ

পরবর্তী, একটি নমুনা mongosকনফিগার:

sharding:
    configDB: "config1.example.net:27019,config2.example.net:27019,config3.example.net:27019"
    autoSplit: true
systemLog:
    destination: file
    path: "/var/log/mongos.log"
processManagement:
    fork: true
net:
    port: 27017
    bindIp: 192.0.2.2
    maxIncomingConnections: 5000
security:
    keyFile: "/data/key/mongos.key"
    authorization: "enabled"

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

শার্পড ক্লাস্টারটি গোল করে আমাদের একটি নমুনা কনফিগার সার্ভার রয়েছে, যা সত্যিকার অর্থে কিছু ছোটখাট পরিবর্তন সহ প্রতিরূপ সেট সদস্যের একটি উপসেট:

storage:
    dbPath: "/data/db"
    journal:
        enabled: true
systemLog:
    destination: file
    path: "/var/log/mongodb.log"
    logAppend: true
    timeStampFormat: iso8601-utc
processManagement:
    fork: true
net:
    bindIp: 192.0.2.3
    port: 27019
security:
    keyFile: "/data/key/config.key"
    authorization: "enabled"
sharding:
    clusterRole: "configsvr"

পরিশেষে, মঙ্গোডিবি 3.0 (এটি লেখার সময় এখনও প্রকাশিত হয়নি) বিশেষত নতুন স্টোরেজ ইঞ্জিনগুলির প্রবর্তনের সাথে সাথে বেশ কয়েকটি নতুন বিকল্প প্রবর্তন করবে। সুতরাং, একই প্রতিলিপি সেট সদস্যটিকে কীভাবে কনফিগার করতে হয় তার উদাহরণ এখানে দেওয়া হয়েছে, তবে এবার ওয়্যারিডটাইগার স্টোরেজ ইঞ্জিন এবং (ডিফল্ট) স্নেপ্পি সংকোচন পদ্ধতির সাথে (নোট: SERVER-16266 এর কারণে মূল থেকে পরিবর্তিত , এবং সংযুক্ত নমুনা engineConfig):

storage:
    dbPath: "/data/db"
    engine: "wiredTiger"
    wiredTiger:
        engineConfig: 
            cacheSizeGB: 8
        collectionConfig: 
            blockCompressor: snappy        
systemLog:
    destination: file
    path: "/var/log/mongodb.log"
    logAppend: true
    timeStampFormat: iso8601-utc
replication:
    oplogSizeMB: 10240
    replSetName: "rs1"
processManagement:
    fork: true
net:
    bindIp: "192.0.2.1,127.0.0.1"
    port: 27018
security:
    keyFile: "/data/key/rs1.key"
    authorization: "enabled"
sharding:
    clusterRole: "shardsvr"

চূড়ান্ত বোনাস সংযোজন হিসাবে, আমি দেখিয়েছি কীভাবে একটি তালিকা ব্যবহার করে একাধিক আইপি ঠিকানা আবদ্ধ করতে হয়, এই ক্ষেত্রে একটি বাহ্যিক আইপি এবং লুপব্যাক আইপি।


2
এটি খুব দরকারী তথ্য হিসাবে আবার আদম ধন্যবাদ। আমি বিশেষত পছন্দ করি যে ২.৮ স্টোরেজ ইঞ্জিন কনফিগারেশনে কিছু অন্তর্দৃষ্টি দেওয়া হয়েছে। আমি কেবল একটি জিনিস যোগ করতে চাই "প্রসেসম্যানেজমেন্ট" কনফিগারেশন এমন কিছু যা বেশিরভাগ লোকেরা বাদ দিতে চান যখন অন্য "প্রসেস ম্যানেজার" উবুন্টু আপস্টার্টটি সাধারণ হিসাবে চালিত হয়। সুতরাং আপনি সেখানে "কাঁটাচামচ" করতে চান না এবং কনফিগারেশনের সেই অংশটি পরিচালনা করতে ম্যানেজারের কাছে রেখে দেন। ওয়াইএএমএল কনফিগারেশনের সর্বোত্তম উদাহরণ যদিও আমার +1
নীল লুন

খুব দরকারী. আকর্ষণীয়, এটি কি ২.৪ কনফিগারেশন ফাইল ফর্ম্যাটটি ২.৮ এর সাথে আরও পিছনে সামঞ্জস্যের জন্য থাকবে?
অ্যান্ড্রে

কখন এটি সরানো হবে তা নিশ্চিত নয়, তবে যতদূর আমি জানি, এটি 2.8 এ ধরে রাখা হবে। যে কোনও অপসারণ অবশ্যই আগে থেকেই ভালভাবে জানানো হবে
অ্যাডাম সি

যে কোনও ক্ষেত্রে সেট প্যারামিটার উদাহরণ চাইলে, এই উত্তরটি দেখুন: dba.stackexchange.com/a/87653/6441
অ্যাডাম সি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.