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 依赖检查

安装前需确保系统已安装:

  • libcurl4openssllibssl1.1(Linux)
  • PowerShell 5.1+(Windows)
    可通过apt list --installed | grep libcurl(Ubuntu)或Get-Module -ListAvailable(PowerShell)验证。

二、安装流程:分步详解

2.1 Linux系统安装(以Ubuntu为例)

步骤1:导入公钥并添加APT源

  1. wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
  2. 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.list
  3. sudo apt-get update

关键点apt-key add需确保网络可访问MongoDB官网,否则会报错gpg: no valid OpenPGP data found

步骤2:安装MongoDB社区版

  1. sudo apt-get install -y mongodb-org

此命令会同步安装mongodb-org-servermongodb-org-mongos等组件。

步骤3:启动服务并验证

  1. sudo systemctl start mongod
  2. sudo systemctl status mongod # 应显示"active (running)"
  3. 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:以服务方式运行

  1. 打开命令提示符(管理员权限),执行:
    1. "C:\Program Files\MongoDB\Server\6.0\bin\mongod.exe" --dbpath "D:\mongodb\data" --install
    2. net start MongoDB
  2. 验证:打开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)。

核心参数示例

  1. storage:
  2. dbPath: /var/lib/mongodb
  3. journal:
  4. enabled: true
  5. engine: wiredTiger
  6. wiredTiger:
  7. engineConfig:
  8. cacheSizeGB: 4 # 内存的50%-70%,例如16GB内存时设为8
  9. directoryForIndexes: true
  10. systemLog:
  11. destination: file
  12. path: /var/log/mongodb/mongod.log
  13. logAppend: true
  14. net:
  15. port: 27017
  16. bindIp: 0.0.0.0 # 生产环境建议改为内网IP
  17. security:
  18. authorization: enabled # 启用认证

优化建议

  • 若为开发环境,可设bindIp: 127.0.0.1限制外部访问。
  • 生产环境必须启用authorization,并通过db.createUser()创建角色用户。

3.2 性能调优参数

  • WiredTiger缓存cacheSizeGB设为可用内存的60%(如32GB内存时设为19GB)。
  • 并发控制concurrentTransactions.writeconcurrentTransactions.read默认分别为128和64,高并发场景可适当增加。
  • 日志级别:开发环境可设systemLog.component.accessControl.verbosity: 2记录详细权限日志。

四、运维与故障排查

4.1 日常维护命令

  • 查看运行状态

    1. mongostat --port 27017 -u admin -p password --authenticationDatabase admin

    输出字段说明:insert/s(每秒插入数)、qr|qw(读写队列长度)。

  • 慢查询分析

    1. use admin
    2. db.setProfilingLevel(1, { slowms: 100 }) # 记录超过100ms的查询
    3. db.system.profile.find({ millis: { $gt: 100 } }).sort({ ts: -1 }).limit(5)

4.2 常见问题解决

问题1:启动失败(日志报错Failed to unlink socket file

原因:旧进程未正常退出。
解决方案

  1. sudo lsof -i :27017 # 查找进程PID
  2. sudo kill -9 <PID>
  3. sudo systemctl start mongod

问题2:写入延迟高

排查步骤

  1. 检查磁盘IOPS:iostat -x 1(Linux)或任务管理器(Windows)。
  2. 确认是否触发wiredTiger缓存淘汰:db.serverStatus().wiredTiger.cache中的bytes currently in the cache是否接近cacheSizeGB
  3. 优化建议:增加缓存或升级SSD。

五、安全加固建议

5.1 启用TLS加密

mongod.conf中配置:

  1. net:
  2. tls:
  3. mode: requireTLS
  4. certificateKeyFile: /etc/ssl/mongodb.pem
  5. CAFile: /etc/ssl/ca.pem

生成证书示例:

  1. openssl req -newkey rsa:4096 -nodes -out server.csr -keyout server.key
  2. openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
  3. cat server.crt server.key > mongodb.pem

5.2 审计日志

启用操作审计:

  1. auditLog:
  2. destination: file
  3. format: JSON
  4. path: /var/log/mongodb/audit.json

六、升级与回滚策略

6.1 升级到6.0

  1. 备份数据:
    1. mongodump --out /backup/mongodb_$(date +%Y%m%d)
  2. 停止服务:sudo systemctl stop mongod
  3. 卸载旧版:sudo apt-get remove mongodb-org*(Linux)
  4. 按本文第二章重新安装6.0版本。

6.2 回滚步骤

若升级后出现问题,可通过以下步骤回滚:

  1. 卸载6.0版本。
  2. 从备份恢复数据(需确保备份兼容性)。
  3. 安装旧版本(如5.0)并启动服务。

七、总结与最佳实践

  • 开发环境:使用轻量级配置(如cacheSizeGB: 1),方便快速迭代。
  • 生产环境
    • 启用认证和TLS。
    • 监控磁盘使用率(df -h /var/lib/mongodb)。
    • 定期执行db.repairDatabase()(需预留额外磁盘空间)。
  • 扩展建议:单机部署适合测试和小型应用,业务增长后应考虑分片集群架构。

通过本文的详细步骤和优化建议,开发者可高效完成MongoDB 6.0的单机部署,并构建出稳定、安全的数据库环境。