温馨提示×

如何排查debian mongodb故障

小樊
43
2026-09-11 09:03:51
栏目: 云计算

在 Debian 上排查 MongoDB 故障,通常可以按「系统 → 服务 → 日志 → 配置 → 数据库本身」的顺序进行。下面是一套比较实用的排查思路和操作命令。


一、确认 MongoDB 是否运行

1. 查看服务状态

systemctl status mongod

或(老版本)

service mongod status

常见状态:

  • active (running):服务正常
  • failed:启动失败
  • inactive:未启动

2. 尝试启动

sudo systemctl start mongod
sudo systemctl enable mongod

如果启动失败,继续看日志。


二、查看 MongoDB 日志(最关键)

默认日志位置

/var/log/mongodb/mongod.log

查看日志:

sudo tail -n 100 /var/log/mongodb/mongod.log

常见错误关键词:

  • Permission denied → 权限问题
  • Address already in use → 端口被占用
  • Unable to lock file → 数据目录冲突
  • IllegalOperation → 配置错误
  • WiredTiger 报错 → 数据文件损坏

三、检查端口与进程

1. 查看端口

sudo netstat -tunlp | grep 27017
# 或
ss -tunlp | grep 27017

2. 查看进程

ps aux | grep mongod

四、检查配置文件

Debian 上通常位于:

/etc/mongod.conf

重点检查:

storage:
  dbPath: /var/lib/mongodb

systemLog:
  path: /var/log/mongodb/mongod.log

net:
  bindIp: 127.0.0.1
  port: 27017

修改配置后重启:

sudo systemctl restart mongod

五、检查文件和目录权限

数据目录

ls -ld /var/lib/mongodb
ls -l /var/lib/mongodb

权限应属于 mongodb:

sudo chown -R mongodb:mongodb /var/lib/mongodb

日志目录

sudo chown -R mongodb:mongodb /var/log/mongodb

六、磁盘与内存问题

1. 磁盘空间

df -h

2. inode

df -i

3. 内存

free -h

MongoDB 对内存和磁盘空间较敏感。


七、连接测试

本地连接

mongo
# 或(新版本)
mongosh

远程连接测试

mongo --host <IP> --port 27017

如果连不上:

  • 检查 bindIp
  • 检查防火墙
sudo ufw status

八、常见故障速查表

故障现象 可能原因
启动失败 配置错误 / 权限问题
端口被占 已有 mongod 在运行
无法写入 磁盘满 / 权限不足
连接拒绝 bindIp 限制
数据损坏 异常关机 / 磁盘错误

九、紧急恢复建议

如果是 WiredTiger 数据损坏:

  • 不要直接删除数据
  • 可尝试:
mongod --repair

(仅限单节点,且有备份时谨慎使用)


如果你能贴出:

  • systemctl status mongod 输出
  • mongod.log 报错片段
  • Debian / MongoDB 版本

我可以帮你更精准地定位问题。

0 踩