我的服务器因电气故障而退了几秒钟,我以为我丢失了所有的MongoDB数据。然后我意识到当服务器重新启动时,mongo会在没有--dbpath选项的情况下自动重启。
我无法弄清楚为什么,即使我的mongodb.conf将dbpath设置为/ var / lib / mongodb,mongo在启动时在/ data / db中查找db文件。任何人都可以对此有所了解吗?
谢谢!
答案 0 :(得分:9)
/data/db
是mongod
在没有选项的情况下启动时查找数据文件的默认路径。您的启动脚本是否指示mongod
加载正确的配置文件?如果没有,那就可以解释这种行为。
答案 1 :(得分:3)
您最后一次在系统上更新Mongod是什么时候?你是如何更新它的?
根据您安装/更新Mongod的方式,可能会覆盖/etc/init.d/mongo脚本或/etc/mongo.conf文件。
或者很久以前有人编辑过这些文件,这是Mongo第一次重新启动,现在看起来突然发生了变化。
我没有看到这两件事发生在很长一段时间(但如果你使用Gentoo,你可能会看到这种情况发生)
你使用什么操作系统?
保留这些文件的备份是个好主意......
答案 2 :(得分:2)
您应该确保Mongo的init脚本包含数据目录的完整路径名。以下是我们在生产部署中使用的片段:
ulimit -s unlimited
MONGO_USER=mongo
MONGO_HOME=/opt/mongo
MONGO_DATA=/san2/data
MONGO_LOGS=/home/mongo/logs
start() {
su $MONGO_USER -c "$MONGO_HOME/bin/mongod --master --fork --logpath $MONGO_LOGS/mongodb.log --logappend --dbpath $MONGO_DATA --maxConns 2400"
}
答案 3 :(得分:1)
检查/etc/default/mongodb
中的启动选项,最有可能将其设置为/data/db
的默认路径,而不是手动启动时选择的路径。