记录一次磁盘爆炸血泪史


起因

这是最初建立 ubuntu + Windows 10 留下的一个诟病。
由于网上大部分教程,及之前个人实验的影响。在建立 Ubuntu 系统时,根目录仅分配了 40 G 的磁盘容量。
本想着就只是存储一些代码,和少许的数据集,不可能把根目录撑爆,奈何大意失荆州啊!!!

问题出现

2021.07.07 下午,如往常一样,“开心”地做实验。
由于对比实验的需求,在多如牛毛的数据集中(其实也就3个),找到了比较适合的数据集 YELP。
同之前操作,开始向 mongodb 导入这个“高达” 12 G 的数据集合。
把最大的一个约 6 G 大小的用户评论表导入成功之后,一切还是波澜不惊(主要是没有查看磁盘容量的习惯)
接下来开始导入用户注册表,本以为它是正常导入,结果没想到,mongodb 突然无法远程连接,我简直是大吃一惊,
以为和苹果连接特定名称WiFi,导致WiFi永久不能使用一样。我导入的用户表中,也有这样的字符串嘛?简直是吓破胆啊!
于是开始疯狂找解决办法,我还是很天真的想着,如何把刚导入的那个表删除。但是 mongodb 就是不给你连接,你有什么办法。哎!
就这样,经过一个多小时的挣扎,试了百度、博客、csdn等各路大神的指导,问题仍在哪里,纹丝不动。(内心:我到底做错了什么)
高潮来了,本想着 linux 的“稳定性”(再也不信了)重启解决所有问题,我按下了这该死的重启键。
问题并没有想象中那么愉快的解决,反而系统进入了无限输入密码的阶段(内心已经完全崩溃),难道这就要重新搭建系统了嘛?我拒绝!!!

寻找问题症结

“程序员干的最 sb 的一件事就是:修改前辈们的代码,你本想着只是把整体结构梳理清晰,结果弄成了山体坍塌”
我本想着把 MongoDB 的服务打开,没想到,系统就这样崩了,崩了,崩了!!!
我有继续在百度、博客、csdn等各大网站畅游,试过无数方法,他仍旧不能进入桌面(马上要疯。。。)
直到一句话,“你的磁盘满了,登录信息无法写入,所以无法进入桌面”,哇,悟了。

先修房子

天真的我,开启 Windows 系统,使用系统磁盘管理,将一块基本不用的盘(大概 605 G,简直是暴殄天物)格式化,为 Ubuntu 的扩容
本想着,分区工具(DiskGenius)是神一般的存在,所有的硬盘问题,交给他就是洒洒水的事。没想到,所托非人。连续两次的扩容尝试,让我意识到,他不行了!
接下来,继续开启百度、博客、csdn等各大网站(身边有一个 linux 大神,该有多好)。一款闻所未闻的分区工具(gparted)出现在了我的眼前
但,大部分都是在系统正常的时候,使用其对根目录进行扩容。难道我又失败了?真的要重做系统吗?不要这样折磨我好吗?
突然有句话出现了,它可以烧录到 u 盘上,作为镜像启动。天呐,太牛了。就 u 盘多
进入官方网站下载,随手翻篇帖子。将U盘格式化为 FAT 格式(之前为了方便存大文件,都是 NTFS 格式的)。经压缩包解压到 U 盘根目录(官方要求)
进入 ‘utils/win32/‘ 文件夹下,右键管理员运行 makeboot.bat (官方真的有够细心)
开始常规 u 盘启动,经过一系列胡乱操作之后,进入到了硬盘管理界面。重新调配硬盘大小,执行。。。
………………………………………………………………………………………waiting…………………………………………………………………………………………
就这样,一个半小时过去了。硬盘完全调配好了,还等什么,麻利拔 U 盘,赶紧开机
果真没让我失望,他开了,他终于开了(内心可喜,结果发现高兴过早了!!!)

再补漏洞

经过了近三个小时的挣扎,系统算是成功打开了。
本想着,系统都能正常运行了,你 MongoDB 就别在那拘着了,有什么好傲娇的呢?可是他就是不顺你的心意,这就是我刚说的高兴太早了
为了能把 MongoDB 打开,我搜索其反馈的各种错误代码,以及查看运行日志,甚至联系 DBA 大神 – 东东(身边真的没什么玩数据库的,
奈何他只搞 Oracle 和 MySQL,而且还说了一句话,生产的数据库是不会挂的,如果没问题,找你干嘛)
修改配置文件,删除锁文件,修改权限,等等。网络“大神”给出的方案真的是五花八门,不过我早就料到回是这样,于是就一个个的开始尝试,
最后,不出所料,我以失败而告终,已经晚上9点多了,好饿。。。
以后有问题,一定要先看官方文档(为什么我就不看呢,服了自己了。)
MongoDB 有一个很牛的功能,即使你不能打开服务,也能使用其提供的函数 mongodump,将数据库完整的备份出来。
然后,等数据库修复好之后,再用函数 mongorestore,将其恢复。(可能是我太天真了,一切都不是那么顺利。)
数据备份还是比较轻松的,先在根目录创个文件夹,用来存备份文件, mkdir -p /remote_dir/mongo_dump_dir
开始备份数据库: mongodump -d tourism -o /remote_dir/mongo_dump_dir
接下来就不担心数据问题了,明天早点来搞 时间: 21:44
………………………………………………………………………………………………手动分割线……………………………………………………………………………………………
2020.07.08
今天早上来了之后,不用想其它了,直接重装数据库吧。(面对疾风吧!!!)
经过网上一系列卸载 MongoDB 的教程之后,我发现重装的数据库仍然不能打开,这不是欺人太甚嘛!
反反复复折腾了小两个小时,我还是失败了。(真的抓狂)
最后,走了一条十分绝的道路,直接搜索,凡是和 MongoDB 有关,且和 Anaconda 无关的所有,全部彻底删除,然后重启机器(我命由我)
经过大海捞针式的搜索之后,我终于找到了一个不错的帖子(其它都还好,只是这个把问题解决了)Ubuntu 安装 MongoDB
经过系列疯狂操作之后,他活了,终于又活过来了
开始修复 bug:
①. 为了能够远程访问,/etc/mongodb.conf 中加一句:bind_ip=0.0.0.0
②. 解决mongod: 找不到命令:vim ~/.bashrc
到配置最后,加入以下内容
export mongodb=/usr/local/mongodb
export PATH=$mongodn/bin:$PATH
保存,退出编辑,重置环境变量:source ~/.bashrc
③. 解决sudo: mongod: 找不到命令: sudo visudo
找到secure_path, 最后添加: :/usr/local/mongodb/bin
④. 关闭mongod
连接: mongo
use admin
db.shutdownServer()
⑤. MongoDB 服务重启:sudo mongod –config /etc/mongodb.conf
至此,MongoDB重装完毕!!!
开始恢复数据库: mongorestore -d tourism /remote_dir/mongo_dump_dir/tourism

总结

数据不易,且行且珍惜!!!
以后再不注意磁盘容量,把磁盘撑爆!!!!!!我是猪!!!!!!!!!!1


文章作者: pzxnys
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 pzxnys !
  目录