mongorestore恢复故障:无法处理子目录问题求助
解决mongorestore恢复mLab远程MongoDB时跳过子目录的问题
看起来你遇到的问题是mongorestore没法识别dump目录里的子文件夹,导致跳过了需要恢复的数据。我来帮你梳理下原因和解决办法:
问题原因
你执行的命令指定了要恢复到loc8r数据库,但mongorestore默认会在dump目录下寻找同名的子目录(也就是dump/loc8r),而你的dump目录里实际是dump/Loc8r(首字母大写)和dump/admin,名称不匹配,所以工具不知道该把哪个目录的数据恢复到loc8r,只能跳过这些子目录。
解决方案
根据你的需求,有两种处理方式:
1. 仅恢复Loc8r数据到mLab的loc8r数据库
修改命令,通过--dir参数明确指定要恢复的子目录路径,同时保持-d loc8r指定目标数据库:
./mongorestore -h ds*****.mlab.com:**** -u <user> -p <pass> -d loc8r --dir ./dump/Loc8r
注意:Windows系统下路径分隔符用
\,可以写成--dir .\dump\Loc8r
2. 恢复dump目录下的所有数据库(包括admin)
如果需要恢复所有备份的数据,去掉-d loc8r参数,直接指定dump目录即可,mongorestore会自动根据子目录名创建对应数据库:
./mongorestore -h ds*****.mlab.com:**** -u <user> -p <pass> ./dump
额外提示
- 确认mLab上的数据库权限:确保你的用户账号有
loc8r数据库的写入权限,否则可能会出现权限错误 - 路径大小写:MongoDB在类Unix系统上对路径大小写敏感,Windows下不敏感,但为了避免问题,尽量保持命令中的路径和实际目录名一致
内容的提问来源于stack exchange,提问作者Huy Nguyen
相关产品推荐
相关产品推荐

