温馨提示×

CentOS中MongoDB如何进行故障排查

小樊
41
2025-12-25 07:35:20
栏目: 云计算

CentOS 上 MongoDB 故障排查实操手册

一 快速定位流程

  • 查看服务状态与最近日志,优先从报错入手:
    • 服务状态:systemctl status mongod
    • 实时日志:tail -f /var/log/mongodb/mongod.log
  • 校验配置文件关键项:/etc/mongod.conf 中的 dbPathsystemLog.pathbindIp 是否配置正确且路径可访问。
  • 若服务起不来,前台直接运行以观察初始化报错:/usr/bin/mongod -f /etc/mongod.conf(便于看到首次启动的致命错误)。
  • 修复后重启并复核状态:systemctl restart mongod && systemctl status mongod

二 常见故障与修复对照表

症状 快速检查 修复建议
服务启动失败(Job failed) systemctl status mongod 与日志首屏报错 查看 /var/log/mongodb/mongod.log 定位首个错误;前台运行 mongod -f /etc/mongod.conf 获取更详细初始化报错
端口被占用(如 27017 `ss -lntp grep 27017netstat -tulpen
无法连接(本地或远程) mongosh 连接失败;服务状态正常 检查 bindIp:仅本机可连用 127.0.0.1,远程访问改为 0.0.0.0 并重启;确认防火墙放行 27017/tcp
启动报 “Failed to unlink socket file /tmp/mongodb-27017.sock” 日志或前台报错指向该 socket 删除 socket:rm -f /tmp/mongodb-27017.sock,再 systemctl restart mongod
异常退出或“卡死” top/htop/free -m/df -h 检查资源;查看日志 释放内存/磁盘,必要时重启;若频繁崩溃,核查日志与配置、升级版本或回退变更
数据目录/日志目录权限错误 ls -ld /var/lib/mongo /var/log/mongodb 修正属主属组:chown -R mongod:mongod /var/lib/mongo /var/log/mongodb,再启动
异常关机/断电后无法启动 日志提示数据文件不一致 以修复模式启动:/usr/bin/mongod --config /etc/mongod.conf --repair,完成后正常启动

三 日志与配置的关键检查点

  • 日志位置与实时查看:默认在 /var/log/mongodb/mongod.log,使用 tail -f 实时跟踪;必要时用 grep "关键字" /var/log/mongodb/mongod.log 快速筛选错误与警告。

  • 配置项核对:在 /etc/mongod.conf 中重点确认以下项是否正确且目录可写:

    • storage.dbPath(如:/var/lib/mongo
    • systemLog.path(如:/var/log/mongodb/mongod.log
    • net.bindIp(仅本机:127.0.0.1;允许远程:0.0.0.0
    • 修改配置后执行:systemctl restart mongod 并复核状态与日志。

四 连接与网络问题排查

  • 本机能连、远程连不上:
    • bindIp 改为 0.0.0.0 并重启;在 firewalld 放行端口:firewall-cmd --add-port=27017/tcp --permanent && firewall-cmd --reload
  • 本地也无法连接或提示 socket 错误:
    • 检查是否存在残留 socket:ls -l /tmp/mongodb-27017.sock
    • 若存在且报错 “Failed to unlink socket file … Operation not permitted”,删除后重启:rm -f /tmp/mongodb-27017.sock && systemctl restart mongod
  • 服务看似运行但连接异常:
    • 用前台方式直接启动观察初始化日志:/usr/bin/mongod -f /etc/mongod.conf,可快速暴露网络/权限/配置类错误。

五 数据损坏与版本问题的处理

  • 异常关机/断电后启动失败或数据异常:
    • 使用修复模式:/usr/bin/mongod --config /etc/mongod.conf --repair,完成后正常启动;如仍异常,考虑从备份恢复。
  • 频繁崩溃或“卡死”且难以定位:
    • 核查系统资源(CPU/内存/磁盘)与日志;在可控窗口内尝试升级到稳定版本或回退最近变更,并保留完整日志用于进一步分析。

0