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ファイルで構成されている場合に動作しないのはなぜですか?
私が正しく覚えているなら、あなたはあなたの設定にこれを持っている必要があります:
storage:
engine: wiredTiger
今はテストできませんが...
編集: WiredTigerを使用してMongoDB 2.6を3.0に移行する方法 で同じ提案が見つかりました