web-dev-qa-db-ja.com

MongoDB 3でWiredTigerエンジンを有効にする

Centos 7を使用しているmongod.confの設定でWiredTigerエンジンを有効にすることに問題があります。これは私の設定です。

#/ etc/mongod.conf 
 storage:
 WiredTiger:
 engineConfig:
 cacheSizeGB:2 
 collectionConfig:
 blockCompressor:snappy 
 dbPath: "/var/lib/mongo"
systemLog:
 destination:file 
 path:"/var/log/mongodb /mongod.log"
 logAppend:true 
 #timeStampFormat:iso8601-utc 
 processManagement:
 fork:true 
 pidFilePath: "/ var/run/mongodb/mongod.pid "
 net:
 bindIp:10.0.1.136,127.0.0.1 
 port:27017 
 wireObjectCheck:true 
 unixDomainSocket:
 enabled:true 
 security:
 keyFile: "/etc/mongo.rs1.key"
 authorization:" enabled "
 replication :
 oplogSizeMB:2048 
 replSetName:rs1 

Mongoは起動しますが、エンジジはmmapv1 :(これはmongoログの出力です

現在のストレージエンジンがmmapv1 
のときに非アクティブストレージエンジンのwiredTigerの構成を検出しました

手動でコマンドを呼び出すことによってのみ、wiredtigerを有効にできます

 mongod --storageEngine WiredTiger 

私の設定ファイルに何か問題がありますか? Centos 6でも同じ問題があります。

編集:Centos 7では、systemd initスクリプトを作成することでWiredTigerを有効にできます(Mongo3にはデフォルトで/etc/init.dスクリプトが付属しています)。

/lib/systemd/system/mongod.service

 [Unit] 
 Description =高性能でスキーマフリーのドキュメント指向データベース
 After = syslog.target network.target 
 
 [サービス] 
 Type = forking 
 User = mongod 
 Group = mongod 
 PIDFile =/var/run/mongodb/mongod.pid 
 EnvironmentFile = /etc/sysconfig/mongod
ExecStart=/bin/mongod $ OPTIONS run 
 
#その他のディレクティブは省略されました
#(ファイルサイズ)
 LimitFSIZE = infinity 
#(cpu time)
 LimitCPU = infinity 
#(virtual memory size)
 LimitAS = infinity 
#(open files)
 LimitNOFILE = 64000 
#(プロセス/スレッド)
 LimitNPROC = 64000 
 
 [Install] 
 WantedBy = multi-user。目標

そして/ etc/sysconfig/mongodの起動オプションを変更する

 OPTIONS = "-storageEnginewiredTiger -f /etc/mongod.conf"

したがって、この方法で問題なく動作しますが、それでもmongod.confファイルで構成されている場合に動作しないのはなぜですか?

3
B14D3

私が正しく覚えているなら、あなたはあなたの設定にこれを持っている必要があります:

storage:
    engine: wiredTiger

今はテストできませんが...

編集: WiredTigerを使用してMongoDB 2.6を3.0に移行する方法 で同じ提案が見つかりました

3
Fox