• 手误【删库】 == 跑路,不存在的 ——删瓦辛格


    手误【删库】 ==  跑路,不存在的  ——删瓦辛格

                                                         

    前言

    今天公司服务器的宝塔打不开,让我去修(ps:宝宝委屈

                             

    打开找一下问题所在

    问题:

    发现是宝塔官方的cdn好像挂掉了

    解决思路:

    • (1)本地重新搞个服务器装宝塔,发现没问题
    • (2)比较一下,发现线上的确实cdn有问题
    • (3)把本地的可以用的cdn,放到线上就行。

    解决:

    卧槽,我发下,我根本不了解宝塔的目录结构【ps解决毛线,下班走人

                                                          

    正文

    别眨眼,接下的我sb的操作,真的亮瞎我狗眼【ps:别害怕,也会亮瞎你的狗眼的,嘿嘿。。。】

                                                                            

                                                                                                                       

    常规操作:

    (1)备份要修改的文件,这是职业本能,OK,没毛病,我喜欢。

    (2)删除那个没用的文件        【文件:你才没用,看老子的移魂大法

    重点:

    备份一切over,删除时,我手贱多打了个  *  

    然后没思考,一个回车,那感觉爽啊   

    求德玛得...........................................................................................................雅蠛蝶...............................................................................................................

    对,ctrl +c 你已经看出我的绝望了

    说时迟那时快,掏出手机,抢票一张去往非洲的机票

                           

    我多打一个 *  ,导致把线上环境的  nginx服务,php环境,redis缓存,mysql数据库,全部删掉了

    不多说,赶紧跑路了..........................................................................

     

                                                                       

                                                                         

                                                                

                                              

                                        飞机延时,公司发现

                                         跑路失败,当场被捕

                                                                                      

     

    数据恢复

    • (1)停止对服务器进行一切的写入操作,卸载挂载
    • (2)安装extundelete,进行扫描
    • (3)恢复数据,环境再次重新工作

    PS:因为这个服务器没有搞本地备份和异地本地,所以才有下面这些破事,再不是,直接备份恢复就行了

                                                      

    (1)停止对服务器进行一切的写入操作,卸载挂载

    当发现误删除文件时,为了尽可能的恢复数据,先要关掉所有的正在进行的服务,不要再进行数据的写入,要不然恢复的概率那就低了。我们可以直接

    # killall 进程名

    或者

    # kill -9 pid

    然后把误删除的文件所在分区,重新挂载成只读的

    # mount -o ro /dev/sdb  /data/ 

    (2)安装extundelete

    yum install bzip2 gcc-c++ e2fsprogs* -y
    wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

    tar jxvf extundelete-0.2.4.tar.bz2
    cd extundelte-0.2.4
    

    ./configure
    make &&  make install

    验证安装结果

     extundelete -v

    (3)进行扫描,恢复数据

    恢复指定文件:

    原理:从根节点(inode=2)开始找到被删除文件的i节点,然后recover i节点。

    删除目录:/www/server

    先检测被删除的文件有哪些:

    extundelete /dev/mapper/centos-root --inode 2

    extundelete /dev/mapper/centos-root --inode 1703938

    extundelete /dev/mapper/centos-root --inode 1703940

    extundelete /dev/mapper/centos-root --restore-directory /www/server
    

    #查看能恢复的数据:
    [root@localhost ~]# extundelete /dev/sdc1 --inode 2
    #恢复单个文件
    [root@localhost ~]# extundelete /dev/sdc1 --restore-file somefile
    #恢复目录
    [root@localhost ~]# extundelete /dev/sdc1 --restore-directory /somedir
    #恢复所有文件
    [root@localhost ~]# extundelete /dev/sdb1 --restore-all

    能恢复多少,就靠运气

                                                              

    后记:

    运气较好,恢复了数据

    把生成环境搭建出来,跑上面完全没有问题

                                                                                                                                                                                                 

    切记

    • (1)记得备份
    • (2)不要用rm
    • (3)干啥要三思

    下次更新,“垃圾rm,毁我青春,我直接把你删掉

    预知后事,且听下回分解【关注我,期待下次分享

                             

      

  • 相关阅读:
    UNDO表空间的ORA1122错误解决(二)转
    Oracle 碎片整理
    如何解决Ora00600 4194错误转自eygle
    Oracle维护常用sql语句
    ORA01152: file 1 was not restored from a sufficiently old backup
    oracle的一些信息抽取脚本.sql
    Flash Recovery Area空间不足导致数据库不能打开
    HP—UNIX的信息收集脚本
    详细解读 STATSPACK 报告
    OLTP和OLAP
  • 原文地址:https://www.cnblogs.com/heian99/p/12865373.html
Copyright © 2020-2023  润新知