现在的位置: 首页 > 综合 > 正文

mongod修复 Mon Mar 317:46:37 [conn148] Assertion: 10295:getFile(): bad file number value (corrupt db?

2018年04月14日 ⁄ 综合 ⁄ 共 668字 ⁄ 字号 评论关闭

查看mongodb.log日志,发现日志里有以下语句:
..............
Mon Mar  317:46:37 [conn148] Assertion: 10295:getFile(): bad file number value (corrupt db?): run repair
..............
翻译 为: 声明: getFile():错误的文件数值(损坏的数据库?):运行修复

查了查mongodb的文档,遂用以下方法进程修复:

首先停止mongod服务,删除 mongodb.log,也可以备份一下
# rm -rf  /data/mongodb/mongodb.log

删除mongodb进程文件
# rm -rf  /mongodb/mongod.lock

进行修复
# /usr/local/mongodb/bin/mongod --repair --dbpath /mongodb/ --repairpath /mongodb/repair/
临时修复目录一定要大,否则会出现磁盘容量不够的提示,无法修复

这时mongodb进程会在/mongodb/repair/ 目录下储存临时的修复数据库文件,文件目录为“$tmp_repairDatabase_0”所以此目录空间要足够大。
生产环境数据库为100G,修复进行了大约3个半小时,在“/mongodb/repair/$tmp_repairDatabase_0"目录下产生了近30G的数据库临时文件,修复完成后数据库临时文件自动清除。

之后开启mongod服务,检查数据库,发现读写正常,mongodb.log没有出现错误。修复OK!

抱歉!评论已关闭.