以下是MongoDB在CentOS上的故障恢复步骤:
检查服务状态
sudo systemctl status mongod # 查看服务是否运行
sudo systemctl start mongod # 启动服务(若未运行)
查看日志定位问题
sudo tail -f /var/log/mongodb/mongod.log # 查看MongoDB日志
sudo journalctl -xe | grep mongod # 查看系统日志中的MongoDB错误
验证配置文件
检查/etc/mongod.conf中dbPath(数据目录)、logPath(日志路径)、port(端口)等配置是否正确。
处理权限与资源问题
sudo chown -R mongod:mongod /var/lib/mongo # 假设数据目录为/var/lib/mongo
df -h # 确保有足够空间
从.tar.gz备份恢复
sudo tar zxvf /path/to/backup.tar.gz -C / # 解压备份文件
sudo mv /data/db /var/lib/mongo # 移动数据到标准目录(若需)
从.bson备份恢复
sudo yum install -y mongodb-org-tools # 安装恢复工具
sudo mongorestore --db <数据库名> /path/to/backup.bson # 恢复指定数据库
sudo mongorestore --drop --db <数据库名> /path/to/backup.bson # 恢复前清空现有数据(可选)
mongorestore --oplogReplay /path/to/backup/directory # 回放Oplog还原到故障前状态
修复损坏数据文件
若数据文件损坏,可尝试使用mongod --repair命令修复(需停止服务):
sudo mongod --dbpath /var/lib/mongo --repair # 修复数据文件
从第三方工具恢复
可使用MongoDB Repair等工具修复损坏的数据库文件(需谨慎选择工具,避免数据进一步损坏)。
连接MongoDB并检查数据:
mongo
show dbs # 查看数据库列表
use <数据库名>
db.<集合名>.find() # 检查集合数据
确保服务正常运行:
sudo systemctl status mongod