北冥有坤
2024-05-01
利用坐高铁回家时间跟大家分享一下我上周崩溃的经历吧[流泪][流泪] 上周应客户的要求,给服务器插了快 2T 的移动硬盘,然后实现异地备份,当时就在服务器上面编写了一个异地备份的脚本,客户要求每天一备,但是要删除前一天的。我当时也没想啥,就直接 rm 指令然后 cp 指令 就干上去了,然后测试环境测试了一下发现可以用,就直接上生产坏境定时设置执行,当时是晚上在服务器上面设置的是每天五点开始跑。然后早上一来,用 xshell 连接服务器,连接拒绝,发现不对劲了,然后就问客户的科技部门有没有对服务器设置,问了下没有。那就是服务器出问题了,但是昨天也没干嘛,然后就上机房的查看服务器状态,进不去系统,但是就懵了。然后想了下,该不会是昨天的脚本搞的吧,想想后,觉得可能是脚本 cp 指令导致服务器的 io 阻塞,然后服务器卡死,可能下午就好了。下午一来,还不行,当是项目现场就我一人,只能联系技术组长,并汇报情况。技术组长说现在唯一的办法就是重启系统,但是重启服务器可能会导致数据丢失。但是没办法了,不管了,就立马重启服务器。重启服务器后系统就报出来这个界面 grub rescue,也就是服务器自动进入了救援模式,那就是服务器的系统文件被删了,但是技术组长就说可能脚本上的删除指定没起作用,把系统文件误删了,但是不知道/home 目录下的文件有没有删(系统文件全部都在/home 目录下面),当时我觉得应该全部删了,但是还抱有一丝丝希望。进入救援模式后就对系统文件扫描,然后修复系统文件,但是尝试了几个小时,由于删除的系统文件太多,没法修复了。这下自己脑子已经完全空白了。后来冷静下来后,就准备一个光盘,然后进入系统的 BIOS 里面,利用光盘重启系统,但是尝试几个小时后,也还是不行。晚上九点联系技术组长汇报情况,技术组长说叫客户联系厂商过来看下然后就回去宿舍休息了。 第二天,休息了一晚上,脑子清醒了很多。厂商来了之后就开始操作,但是由于服务器有点老,磁盘驱动没有,也无法扫描磁盘中的文件。厂商就找来一个磁盘 USB 接口工具,将服务器的磁盘拆下来,插上工具后,查看,全部文件都没了。(但是文件还是在磁盘里面的,只要没往磁盘里面写东西覆盖之前文件的节点,因为 Linux 系统得文件都是一个个节点存储的。,有专门的工具就可以恢复) 这下没办法,只能找数据公司做恢复了,网上有很多教程,自己不敢操作,怕写覆盖了。当天下午就找了数据恢复来,数据公司来了之后,开始利用工具扫描磁盘,从下午四点开始扫描,扫描到了 6 点,然后就看到了大部分系统文件 300 多 G,就开始把复制到准备的移动硬盘中。复制了两个多小时,然后上文件查看,没有之前装的 mariadb 文件(MySQL 的系统问年,只有要这个文件,重新装系统数据库时,将 MySQL 指定读取这个文件, 数据库就能立马满血复活),然后就继续扫描,扫描到了凌晨快四点。数据公司的人说全部文件都在这里了,你找一下吧,然后我就开始翻找,找了两个小时。终于数据全部恢复。整理了一下,差不多 500 多 G 的数据 ,然后宿舍休息了。 第三天,睡了四个小时。就立马 前往办公室开始重装系统,重新挂载目录,重装 Redis,MySQL,docker 这些,另外把恢复的数据重新传输到磁盘中,另外在恢复数据库是,发现恢复的数据库原始文件做的 ibd 文件不能用,只能赢 ifrm 的,也就意味着只能恢复表结构,数据全没了。还好数据库做了备份,就立马解压备份文件,执行 SQL 文件,接下来就是等数据库文件执行了。还有一点就是数据备份文件不全,有些库没备份到,只能重新从恢复回的文件导过去,也就意味着要进行数据清洗工作。唉,工作量大大提升。技术组长远程帮了我一下,然后 12 点多回去宿舍吃了饭睡了两个多小时,回到办公室看了下数据库恢复情况,还没插到 1/5,只能等。然后利用恢复回来的原始文件中 frm 文件把表结构恢复回来。接下来就是等数据库的 SQL 执行。 数据库插了三天时间,终于插完。重新部署项目,在这过程中也是搞了快一天。然后到了周一开周会,跟老板汇报了目前的项目情况和进度,然后向全体同事表达歉意等,老板也没说啥,就说我还年轻,要吸取教训,不要有心理压力等。在数据库插完之后,就开始部署项目,开放防火墙端口,设置服务器的 ip,网关那些,并重新配置网闸(网闸是内外网交互的一个中间站,内网外各有一个读取目录和解压文件的路径),就这个网闸,搞了半天 因为网闸配置不了,也就意味着外网和内网不通。到了放假前一天上午,终于把系统部署上去,但有些库还没恢复回来,但不影响系统主业务。然后下午就观察系统,并修复一些残留的 bug。放假前一天晚上,跟项目经理汇报了情况,项目经理说你先回去吧,剩下的放假后再来搞。第二天早上六点接到约顺风车的电话,自己太困了,差点错过了顺风车,然后立马起来洗漱,胡子都没来的及刮,背包装个电脑就搭车坐高铁回家了胡子。终于告一段落,那几天天天熬到凌晨,恢复数据那天还通宵了,真的难,rm 指令太恐怖了,自己也是吸取了很多的教训[捂脸][捂脸][捂脸]。技术组长还调侃我,这次过后你是经历过大场面的人了。我真的很抱歉!![流泪][流泪]
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP