Aşağıda Linux için YAML yapılandırmalarının birkaç örneği verilmiştir (Windows yolları ve seçenekler biraz farklıdır);
İlk olarak, mongod
varsayılan bağlantı noktası, yol, günlük ayarları olan bir bağımsız - bu, yerel test için kullanılan yapılandırma türüdür, birkaç ekstra ile genel stili gösterir:
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
Bu yapılandırma hakkında bazı notlar:
- Genelde nesnenin
wireObjectCheck: false
üretimde kontrol edilmesini istemezsiniz ( ), ancak test amacıyla büyük miktarda veri yüklüyorsa, işleri biraz hızlandıracak ve böyle bir ortamda minimum risk oluşturacaktır
- Bu, çoğaltma kümesinin tüm üyeleri geridöngü IP adresinde bulunmadıkça çoğaltma için işe yaramaz (bu yalnızca belirtilen bağlayıcı olduğundan),
Şimdi, kimlik doğrulamayı etkin kılan ve paylaşılan bir kümenin parçası olarak çalışan tipik bir üretim kopyası küme üyesi için örnek bir yapılandırma dosyasına bakalım:
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"
Bu yapılandırma hakkında bazı notlar:
- Yine, belirli varsayılan ve açık ayar bildirimleri vardır (örneğin, port clusterRole ile belirtilmiştir), genellikle bu karışıklığı önlemek için önerilir.
- IP bağlaması şimdi yalnızca dış IP adresidir, bu nedenle geridöngü IP üzerinden iletişim artık başarısız olur, ancak çoğaltma uzak ana bilgisayarlarda çalışabilir
- Oplog varsayılan olarak% 5 boş alana sahiptir, bu nedenle büyük hacimlerde daha muhafazakar olması ve tahsis edilen boyutu açıkça belirlemesi yaygındır.
Sonra, örnek bir mongos
config:
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"
Buradaki tek gerekli değişiklikler mongos
(veri depolamamasından dolayı) ve configDB
tüm mongos
işlemlerde aynı olması gereken dizenin eklenmesidir . Örnek olarak maksimum bağlantı ayarını ekledim, zorunlu değil, ancak daha büyük kümeler için iyi bir fikir olabilir.
Parçalı kümeyi yuvarlayarak, bazı küçük değişikliklerle birlikte çoğaltma kümesi üyesinin bir alt kümesi olan örnek bir yapılandırma sunucusuna sahibiz:
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"
Son olarak, MongoDB 3.0 (henüz bunu yazarken henüz yayınlanmadı), özellikle yeni depolama motorlarının tanıtılmasıyla birlikte birçok yeni seçenek sunacaktır. Bu nedenle, aynı kopya kümesi üyesini nasıl yapılandıracağınıza bir örnek, ancak bu sefer WiredTiger depolama motoru ve (varsayılan) çabuk sıkıştırma yöntemiyle (not: SERVER-16266 nedeniyle orijinalinden değiştirilmiş ve eklenmiş örnek 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"
En son bonus olarak, bir liste kullanarak birden fazla IP adresini nasıl bağlayacağımı, bu durumda harici bir IP ve geridöngü IP'sini gösterdim.