我在通过 mongod.conf 中的设置启用 WiredTiger 引擎时遇到问题,我正在使用 Centos 7,这是我的配置
#/etc/mongod.conf 贮存: wiredTiger: 引擎配置: 缓存大小GB: 2 集合配置: blockCompressor:活泼 数据库路径:“/var/lib/mongo” 系统日志: 目的地:文件 路径:“/var/log/mongodb/mongod.log” logAppend:true #时间戳格式: iso8601-utc 流程管理: 叉:真 pidFilePath:“/var/run/mongodb/mongod.pid” 网: 绑定Ip:10.0.1.136,127.0.0.1 端口:27017 wireObjectCheck : true unix域套接字: 已启用 : true 安全: 密钥文件:“/etc/mongo.rs1.key” 授权:“已启用” 复制: oplog大小MB:2048 复制集名称: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
[单元] 描述=高性能、无模式的面向文档的数据库 之后=syslog.target 网络.target [服务] 类型=分叉 用户=mongod 组=mongod PID文件=/var/run/mongodb/mongod.pid 环境文件=/etc/sysconfig/mongod ExecStart=/bin/mongod $OPTIONS 运行 # 省略其他指令 # (文件大小) LimitFSIZE=无穷大 #(CPU 时间) LimitCPU=无穷大 #(虚拟内存大小) LimitAS=无穷大 #(打开文件) 限制NOFILE=64000 #(进程/线程) 限制NPROC=64000 [安装] WantedBy=多用户.目标
并更改文件 /etc/sysconfig/mongod 中的启动选项
选项=“--storageEngine wiredTiger -f /etc/mongod.conf”
这样就可以正常工作了,但是为什么在 mongod.conf 文件中配置它时仍然不起作用?
答案1
如果我没记错的话,你的配置中必须有这个:
storage:
engine: wiredTiger
虽然我现在无法测试它......