MongoDB構成オプションのドキュメント は、指定可能なすべての使用可能なオプションを一覧表示していますが、さまざまな役割のMongoDBインスタンス用に完全に形成されたYAML形式の設定ファイルのセットを持っている人はいますか?
一般的な役割の一連の例は、ゼロから始める場合、または最新の構成ファイル形式でテストする場合に非常に役立つ開始点になります。
[〜#〜] yaml [〜#〜] Linux用の設定(Windowsのパスとオプションは少し異なります)のいくつかの例を以下に示します。基本的に、いくつかのデフォルトと一般的に使用される設定を明示的に設定します。
最初に、デフォルトのポート、パス、ジャーナル設定を持つスタンドアロン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"
この構成に関する注意事項:
次に、サンプル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"
ここで必要な唯一の変更は、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ストレージエンジンと(デフォルト)snappy圧縮方法を使用します(注: 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"
最後のボーナスとして、リストを使用して複数のIPアドレスをバインドする方法を示しました。この場合は、外部IPとループバックIPです。