首页主机资讯Debian MongoDB故障排查指南

Debian MongoDB故障排查指南

时间2025-11-25 22:11:03发布访客分类主机资讯浏览242
导读:Debian 上 MongoDB 故障排查指南 一 快速定位流程 服务状态与端口 检查服务:sudo systemctl status mongod 查看监听:ss -ltnp | grep 27017 或 netstat -anp |...

Debian 上 MongoDB 故障排查指南

一 快速定位流程

  • 服务状态与端口
    • 检查服务:sudo systemctl status mongod
    • 查看监听:ss -ltnp | grep 27017 或 netstat -anp | grep 27017
  • 日志与配置
    • 查看日志:tail -f /var/log/mongodb/mongod.log
    • 核对配置:/etc/mongod.conf 中的 net.portnet.bindIpstorage.dbPathsystemLog.destination
  • 连接与网络
    • 本机连接:mongo --host 127.0.0.1:27017
    • 远程连通:mongo --host 服务器IP:27017
    • 防火墙放行:sudo ufw allow 27017/tcp(或 iptables 放行相应端口)
  • 资源与权限
    • 磁盘空间:df -h;Inode:df -i
    • 目录权限:ls -ld /var/lib/mongodb /var/log/mongodb;必要时 chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb
  • 运行时诊断
    • 连接状态:mongo --eval ‘db.runCommand({ connectionStatus: 1 } )’
    • 性能快照:mongostat、mongotop

二 常见故障与修复

  • 服务无法启动
    • 查看日志定位错误;核对 /etc/mongod.conf 路径与语法;确认 dbPath 存在且权限正确;若异常关机残留锁文件,确认无 mongod 进程后删除 mongod.lock 再启动(谨慎操作)。
  • Connection refused
    • 服务未启动则启动;端口不对则核对 net.port;远程连不通则检查 bindIp(如需要远程访问可设为 0.0.0.0,并确保防火墙放行 27017)。
  • 权限或认证失败
    • 核对连接字符串中的用户名、密码、认证库;确保用户具备相应角色;必要时在 mongo shell 中 db.auth() 验证。
  • Write concern failed
    • 副本集/分片环境检查节点健康与同步状态(rs.status())、网络延迟与写入关注级别是否过高。
  • 查询慢
    • 使用 explain(“executionStats”) 分析执行计划;为高频查询字段建立合适索引;启用并分析慢查询日志;结合 mongostat/mongotop 观察吞吐与锁情况。

三 日志与诊断命令清单

  • 服务与端口
    • systemctl status mongod;ss -ltnp | grep 27017
  • 日志查看与检索
    • tail -f /var/log/mongodb/mongod.log
    • grep -i “error|fail|exception” /var/log/mongodb/mongod.log
    • 组件日志:db.getLogComponents();db.adminCommand({ getLog: “componentName” } )
  • 连接与状态
    • mongo --host 127.0.0.1:27017 --eval ‘db.runCommand({ connectionStatus: 1 } )’
    • 副本集状态:rs.status()
  • 性能与负载
    • mongostat、mongotop
  • 查询分析
    • db.collection.find(…).explain(“executionStats”)

四 配置与性能优化要点

  • 网络与绑定
    • 仅内网开放时,bindIp 绑定内网网段;远程访问需明确放行策略并做好鉴权。
  • 存储与缓存
    • 使用 SSD;根据内存合理设置 WiredTiger 缓存:storage.wiredTiger.engineConfig.cacheSizeGB(不超过物理内存的较大比例,留出系统与其他进程空间)。
  • 索引与查询
    • 为高频查询建立复合索引;避免过多索引;使用覆盖索引减少回表;用 explain 持续优化。
  • 副本集与分片
    • 数据可靠性与读扩展使用副本集;海量数据与高并发考虑分片,合理选择分片键。
  • 监控与维护
    • 长期开启慢查询日志与 Profiling;定期用 mongostat/mongotop、PMM 等监控;按需重建或清理低效索引。

五 安全加固与维护建议

  • 启用鉴权与最小权限:创建具备所需角色的用户,禁止无鉴权访问;对外网仅暴露必要端口。
  • 备份与恢复:定期执行 mongodump/mongorestore 或文件系统快照;变更前先备份。
  • 版本与升级:保持 MongoDB 与驱动版本兼容;升级前阅读发行说明并在测试环境验证。
  • 防火墙与网络分区:仅放行业务所需来源 IP 与端口;与应用、数据库分层部署。
  • 审计与合规:开启审计日志(企业版)或记录关键操作;定期审计用户与权限。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian MongoDB故障排查指南
本文地址: https://pptw.com/jishu/756025.html
Debian PostgreSQL如何防止SQL注入 Debian PostgreSQL数据库迁移方法是什么

游客 回复需填写必要信息