晚上准备继续学习PHP+MongoDB,点击Run_MongoDB_Service.bat文件,这个文件是我写的bat文件,就是快速启动MongoDB。但是命令行一闪而过,我很奇怪。昨天晚上写代码还是正常的,怎么今天用就不正常了。我只好手动敲一遍命令。界面好像和之前不一样,个人觉得应该是出错了。错误界面如下:
主要信息有2个:
1.Unclean shutdown detected.
2.可以恢复的参考:http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/
Chrome打开网页,对MongoDB进行修复了。当然这个问题引起应该是MongoDB还正在运行,然后我就关机了。我关机时,即使电脑提醒我有程序还在运行,我基本都是点继续。估计这个Unexpected Shutdown是这个引起。参考给出,如果你开启了MongoDB Journaling或者是replica set(复制集),就应该使用Replica Set Syncing(复制集同步功能)。但是我在使用过程中未开启Journaling,也没有配置replica set。
刚开始觉得,不就是文件有损坏吗?直接删除data目录下的所有文件。我后来想《MongoDB实战》书上不就说了,MongoDB有着极强故障迁移和恢复机制,不如直接动手来恢复直接的数据。步骤给出的很详细,不过有一点要说明。在步骤中,让我们新建一个data0的文件,我以为恢复好之后,新文件会存在data0文件夹中,然后我按照步骤修复完成之后,我发现data0文件夹中为空,我一度以为我修复失败了。后来我按照网页步骤,成功的恢复了数据库。
特别提示:第二步才能删除mongod.lock文件。
高祥同学对文档进行了一下中文翻译。网页本身是在Linux上进行的,但是windows系统下改变一下目录就ok。好了,解决好这个问题,继续学习MongoDB。