MongoDB 6.0 单机部署全指南:从安装到优化
MongoDB 6.0 单机部署全指南:从安装到优化
摘要
MongoDB 6.0作为最新稳定版,在性能、安全性和功能上均有显著提升。本文从系统要求、安装流程、基础配置到高级优化,全面解析单机部署的完整步骤,并提供故障排查和运维建议,帮助开发者快速搭建稳定高效的MongoDB环境。
一、部署前准备:系统与硬件要求
1.1 操作系统兼容性
MongoDB 6.0支持主流Linux发行版(Ubuntu 20.04/22.04、CentOS 7/8、RHEL 8/9)、Windows Server 2019/2022及macOS 12/13。推荐使用Linux(如Ubuntu 22.04 LTS),因其对MongoDB的文件系统(如XFS)和内核参数优化更友好。例如,Ubuntu的systemd服务管理可简化进程监控。
1.2 硬件配置建议
- 内存:至少8GB(生产环境建议16GB+),因MongoDB默认将数据集缓存在内存中。
- 磁盘:SSD为佳(IOPS≥5000),若使用HDD需调整
wiredTigerCacheSizeGB参数避免性能瓶颈。 - CPU:4核以上(支持多线程压缩和查询并行化)。
- 网络:千兆网卡,低延迟环境。
1.3 依赖检查
安装前需确保系统已安装:
libcurl4、openssl、libssl1.1(Linux)- PowerShell 5.1+(Windows)
可通过apt list --installed | grep libcurl(Ubuntu)或Get-Module -ListAvailable(PowerShell)验证。
二、安装流程:分步详解
2.1 Linux系统安装(以Ubuntu为例)
步骤1:导入公钥并添加APT源
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -sc)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.listsudo apt-get update
关键点:apt-key add需确保网络可访问MongoDB官网,否则会报错gpg: no valid OpenPGP data found。
步骤2:安装MongoDB社区版
sudo apt-get install -y mongodb-org
此命令会同步安装mongodb-org-server、mongodb-org-mongos等组件。
步骤3:启动服务并验证
sudo systemctl start mongodsudo systemctl status mongod # 应显示"active (running)"mongo --eval "db.runCommand({connectionStatus: 1})" # 测试连接
若返回"ok" : 1,则安装成功。
2.2 Windows系统安装
步骤1:下载MSI安装包
从MongoDB官网下载6.0版本MSI文件,运行后选择Complete安装模式(包含工具如Compass)。
步骤2:配置数据目录
默认数据目录为C:\data\db,需手动创建或通过安装向导指定路径(如D:\mongodb\data)。
步骤3:以服务方式运行
- 打开命令提示符(管理员权限),执行:
"C:\Program Files\MongoDB\Server\6.0\bin\mongod.exe" --dbpath "D:\mongodb\data" --installnet start MongoDB
- 验证:打开
mongosh(MongoDB Shell),输入show dbs应返回系统数据库列表。
三、基础配置优化
3.1 配置文件(mongod.conf)详解
MongoDB 6.0推荐使用YAML格式配置文件,路径通常为/etc/mongod.conf(Linux)或C:\Program Files\MongoDB\Server\6.0\mongod.cfg(Windows)。
核心参数示例
storage:dbPath: /var/lib/mongodbjournal:enabled: trueengine: wiredTigerwiredTiger:engineConfig:cacheSizeGB: 4 # 内存的50%-70%,例如16GB内存时设为8directoryForIndexes: truesystemLog:destination: filepath: /var/log/mongodb/mongod.loglogAppend: truenet:port: 27017bindIp: 0.0.0.0 # 生产环境建议改为内网IPsecurity:authorization: enabled # 启用认证
优化建议:
- 若为开发环境,可设
bindIp: 127.0.0.1限制外部访问。 - 生产环境必须启用
authorization,并通过db.createUser()创建角色用户。
3.2 性能调优参数
- WiredTiger缓存:
cacheSizeGB设为可用内存的60%(如32GB内存时设为19GB)。 - 并发控制:
concurrentTransactions.write和concurrentTransactions.read默认分别为128和64,高并发场景可适当增加。 - 日志级别:开发环境可设
systemLog.component.accessControl.verbosity: 2记录详细权限日志。
四、运维与故障排查
4.1 日常维护命令
查看运行状态:
mongostat --port 27017 -u admin -p password --authenticationDatabase admin
输出字段说明:
insert/s(每秒插入数)、qr|qw(读写队列长度)。慢查询分析:
use admindb.setProfilingLevel(1, { slowms: 100 }) # 记录超过100ms的查询db.system.profile.find({ millis: { $gt: 100 } }).sort({ ts: -1 }).limit(5)
4.2 常见问题解决
问题1:启动失败(日志报错Failed to unlink socket file)
原因:旧进程未正常退出。
解决方案:
sudo lsof -i :27017 # 查找进程PIDsudo kill -9 <PID>sudo systemctl start mongod
问题2:写入延迟高
排查步骤:
- 检查磁盘IOPS:
iostat -x 1(Linux)或任务管理器(Windows)。 - 确认是否触发
wiredTiger缓存淘汰:db.serverStatus().wiredTiger.cache中的bytes currently in the cache是否接近cacheSizeGB。 - 优化建议:增加缓存或升级SSD。
五、安全加固建议
5.1 启用TLS加密
在mongod.conf中配置:
net:tls:mode: requireTLScertificateKeyFile: /etc/ssl/mongodb.pemCAFile: /etc/ssl/ca.pem
生成证书示例:
openssl req -newkey rsa:4096 -nodes -out server.csr -keyout server.keyopenssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crtcat server.crt server.key > mongodb.pem
5.2 审计日志
启用操作审计:
auditLog:destination: fileformat: JSONpath: /var/log/mongodb/audit.json
六、升级与回滚策略
6.1 升级到6.0
- 备份数据:
mongodump --out /backup/mongodb_$(date +%Y%m%d)
- 停止服务:
sudo systemctl stop mongod - 卸载旧版:
sudo apt-get remove mongodb-org*(Linux) - 按本文第二章重新安装6.0版本。
6.2 回滚步骤
若升级后出现问题,可通过以下步骤回滚:
- 卸载6.0版本。
- 从备份恢复数据(需确保备份兼容性)。
- 安装旧版本(如5.0)并启动服务。
七、总结与最佳实践
- 开发环境:使用轻量级配置(如
cacheSizeGB: 1),方便快速迭代。 - 生产环境:
- 启用认证和TLS。
- 监控磁盘使用率(
df -h /var/lib/mongodb)。 - 定期执行
db.repairDatabase()(需预留额外磁盘空间)。
- 扩展建议:单机部署适合测试和小型应用,业务增长后应考虑分片集群架构。
通过本文的详细步骤和优化建议,开发者可高效完成MongoDB 6.0的单机部署,并构建出稳定、安全的数据库环境。