लिनक्स के लिए YAML कॉन्फ़िगरेशन के कई उदाहरण यहां दिए गए हैं (विंडोज पथ और विकल्प थोड़ा अलग हैं), अनिवार्य रूप से स्पष्ट रूप से कुछ चूक और आमतौर पर उपयोग की जाने वाली सेटिंग्स को स्थापित करना।
सबसे पहले, 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
उत्पादन में वस्तु की जांच ( ) करना नहीं चाहते हैं , लेकिन परीक्षण प्रयोजनों के लिए डेटा के एक बड़े भार के लिए, यह चीजों को थोड़ा गति देगा और ऐसे वातावरण में एक न्यूनतम जोखिम है
- यह प्रतिकृति के लिए तब तक काम नहीं करेगा जब तक कि प्रतिकृति सेट का सभी सदस्य लूपबैक आईपी पते पर न हो (जैसा कि यह केवल निर्दिष्ट बाध्यकारी है), इसलिए सावधान रहें
अब, आइए एक विशिष्ट उत्पादन प्रतिकृति सेट सदस्य के लिए एक सैंपल कॉन्फिग फाइल देखें, जिसमें सक्षम और एक शार्प्ड क्लस्टर के हिस्से के रूप में सक्षम होना चाहिए:
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"
इस विन्यास पर कुछ नोट्स:
- फिर से डिफॉल्ट और निहित सेटिंग्स की स्पष्ट घोषणाएं हैं (उदाहरण के लिए क्लस्टर क्लस्टर द्वारा निहित है), आम तौर पर भ्रम से बचने के लिए यह सिफारिश की जाती है
- IP बाइंडिंग अब केवल बाहरी IP पता है, इसलिए लूपबैक IP पर संचार अब विफल हो जाएगा, लेकिन प्रतिकृति दूरस्थ होस्ट के लिए काम कर सकती है
- 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
प्रक्रियाओं पर समान होना चाहिए । मैंने एक उदाहरण के रूप में अधिकतम कनेक्शन सेटिंग को जोड़ा, इसकी आवश्यकता नहीं है लेकिन अक्सर बड़े समूहों के लिए एक अच्छा विचार हो सकता है।
शार्प किए गए क्लस्टर को राउंड करने से हमारे पास एक सैंपल कॉन्फिग सर्वर है, जो वास्तव में कुछ छोटे बदलावों के साथ प्रतिकृति सेट सदस्य का सबसेट है:
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"
अंत में, MongoDB 3.0 (इसे लिखने के समय अभी तक जारी नहीं किया गया है) विशेष रूप से नए भंडारण इंजनों की शुरूआत के साथ कई नए विकल्प पेश करेगा। इसलिए, यहां एक ही प्रतिकृति सेट सदस्य को कॉन्फ़िगर करने के तरीके का एक उदाहरण दिया गया है, लेकिन इस बार WiredTiger भंडारण इंजन और (डिफ़ॉल्ट) तड़क-भड़क संपीड़न विधि (नोट: 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"
अंतिम बोनस जोड़ के रूप में, मैंने दिखाया कि एक सूची का उपयोग करके कई आईपी पते को कैसे बांधना है, इस मामले में एक बाहरी आईपी और लूपबैक आईपी।