在CentOS上配置MongoDB的存储引擎可以通过修改MongoDB的配置文件 /etc/mongod.conf 来实现。以下是详细的步骤和建议:
安装MongoDB
如果你还没有安装MongoDB,可以使用以下命令进行安装:
sudo yum install -y mongodb-org
启动MongoDB服务
安装完成后,启动MongoDB服务并设置开机自启动:
sudo systemctl start mongod
sudo systemctl enable mongod
修改MongoDB配置文件
使用文本编辑器(如 vi 或 nano)打开并编辑MongoDB的配置文件:
sudo vi /etc/mongod.conf
配置存储引擎
在配置文件中找到 storage 部分,并根据需要修改存储引擎。例如:
-
使用 WiredTiger 存储引擎(默认):
storage: dbPath: /var/lib/mongo journal: enabled: true engine: wiredTiger -
使用 MMAPv1 存储引擎(已弃用):
storage: dbPath: /var/lib/mongo journal: enabled: true engine: mmapv1
请注意,从MongoDB 3.2版本开始,MMAPv1存储引擎已被弃用,并在MongoDB 4.0及更高版本中不再可用。因此,除非你有特别的理由必须使用MMAPv1,否则建议使用WiredTiger存储引擎。
保存并退出配置文件
保存对配置文件的修改并退出编辑器。
重启MongoDB服务
为了使配置更改生效,需要重启MongoDB服务:
sudo systemctl restart mongod
验证存储引擎
你可以通过连接到MongoDB并执行以下命令来验证当前使用的存储引擎:
mongo
在MongoDB shell中,运行以下命令:
db.runCommand({ connectionStatus: 1 })
在输出结果中,查找 storageEngine 字段,它将显示当前使用的存储引擎。
存储引擎特性对比
-
WiredTiger:
- 文档空间分配方式:采用B+Tree存储。
- 并发级别:文档级别锁。
- 数据压缩:支持snappy(默认)和zlib压缩。
- 优势:相比MMAPv1无压缩,空间节省数倍;内存使用WiredTiger可以指定内存的使用大小;Cache使用WiredTiger引擎采用了二阶缓存WiredTiger Cache, File System Cache来保证Disk上数据的一致性。
-
MMAPv1:
- 文档空间分配方式:线性存储。
- 并发级别:表级锁。
- 数据压缩:无压缩。
- 特点:从MongoDB 3.2版本开始不再支持MMAPv1存储引擎。
通过以上步骤和建议,你可以在CentOS上配置和选择合适的MongoDB存储引擎。根据你的需求选择合适的存储引擎,并确保配置文件正确无误后重启MongoDB服务即可。