惊心动魄的数据恢复之旅

站点被攻击了,数据表丢了两张,而且是很重要的明细表,真是魂淡啊!没办法了,必须先恢复数据,平息老板+客户的怒气。

万幸的是,数据库有做差异备份,备份了一天之前的数据。先把这部分数据提取,恢复了,心率和血压顿时下降了一半。最多最多就丢了半天的数据,应该不会卖身也赔不起了。

接下来,才是重头戏,恢复这半天的数据,从早上4点到下午16点,这12个小时的数只能从bin-log上想办法。首先,找到这一天的日志文件(因为这一天日志文件涉及好几个,这边简化过程,只以一个文件来说,暂且命名为bin-log-0821)。

第一步:先们bin-log-0821转为可视明文:

mysqlbinlog --set-charset=utf8 --database=db_name --start-datetime="2016-8-21 4:00:00" --stop-datetime="2016-8-21 16:00:00" bin-log-0821 > log.sql

第二步:得到了log.sql,我们要把log.sql中,我们需要的两张表(暂且命名table1和table2)相关的sql语句提取出来。可是就在这一步,本菜遇到了一个麻烦事。就是INSERT和UPDATE语句,有可能跨行,无法很便提取出来。如果用grep -i table1 log.sql > log_result.sql,一碰到跨行的记录只有UPDATE `table1` SET 没下文了。。。

加上本菜的Shell功能又不强,所以在这个环节卡了好久。最好,通过网上一顿狂搜,搜到了以下办法:

sed -n ‘/^INSERT /,/;/p‘ log.sql > log_insert.sql

sed -n ‘/^UPDATE /,/;/p‘ log.sql > log_update.sql

最后得到的结果格式是:

UPDATE `table1` SET

//此处省略字段设置

WHERE ...

/*!*/;

第三步:看到上面的格式,曙光终于在眼前了。本菜用PHP写了段代码,把需要的SQL都过滤了出来:

$fp=fopen(‘log_insert.sql‘,‘rb+‘);
if(!$fp) exit(‘file err‘);

while(!feof($fp))
{
    $sql=‘‘;
    $str=fgets($fp,1024);
    if(strstr($str,‘table1‘) || strstr($str,‘table2‘))
    {
        $sql.=$str;
        while(!feof($fp))
        {
            $str=fgets($fp,1024);
            if(strstr($str,‘/*‘))
            {
                break;
            }
            $sql.=$str;
        }
        $db->query($sql);
    }

}

fclose($fp);

至此,万事大吉矣。终于恢复了需要的数据,一个周日血压升高后又回降,真心好刺激啊。

时间: 2024-10-01 04:41:34

惊心动魄的数据恢复之旅的相关文章

艰苦的RAW格式数据恢复之旅

艰苦的RAW格式数据恢复之旅 1.RAW 格式形成原因 2.RAW 格式的解决的方法 经验之谈: 1.RAW 格式形成原因 关于形成的原因,在网上搜索了下,千奇百怪的都有,就不一一诉说了,可是有果必有因. 在网上搜索到正确的说法是硬盘的DBR损坏导致的,个人不懂硬件,就引用前辈的解释了. 2.RAW 格式的解决的方法 写在前面的话,我差点儿能够是说没有一丁点关于硬盘数据恢复方面的经历,所以这次纯粹是摸着石头过河,摸出来的经验,终于给自己摸着攻克了,算是牛年中不幸中的大幸.因为变成RAW格式的硬盘

大数据是什么?华为云学院带你探索大数据之旅

大数据是什么?华为云学院带你探索大数据之旅我们首先从大数据是什么开始讲起,!下面由我来带领大家!展开我们本次的大数据学习之旅!大数据是什么,内容将包括大数据的产生,发展大数据的基本概念.首先我们来追溯一下大数据的产生与发展,大数据的产生和发展主要经历了三个阶段. 第一个阶段,我们称为是萌芽期!自上世纪九十年代至本世纪初,随着数据挖掘理论和数据库技术的逐步成熟,一批商业智能工具和知识的管理技术也开始得到应用,比如数据仓库,专家系统知识管理系统等等.第二阶段我们称为是成熟期.本世纪的前十年Web2.

破解百词斩单词数据之旅

作为一位英语爱好者,百词斩是我每天都会用的一款APP,这款应用可以自测词汇量,并巩固你的单词量,确实是一款用心的产品.作为一名雅思7分选手,个人觉得里面的发音和例句,对于口语还是有很大的帮助,可以边听边读,做到碎片化的学习.总言而之,推荐大家都体验一下. 再完美的产品也会有瑕疵,我的词汇量在1.3万左右,大多数单词都能比较熟悉,直接斩掉,但也会有零星的生僻词,我会收藏起来,每天专门巩固这部分词汇.用了两年之久,收藏了八九百个单词了,对于我而言,这些单词属于Panic Zone,需要重点强化的.所

数据恢复之开盘篇

什么是开盘,什么是开盘数据恢复我们说的开盘恢复数据是针对机械硬盘,而且要在在无尘室进行开盘操作.?固态硬盘没有开盘恢复的说法,它是有多个存储芯片组合在一起的,要恢复数据需要通过设备一个芯片一个芯片地读取,再通过手工重组数据底层开盘数据恢复是硬盘物理故障数据恢复的一种特殊情况.当硬盘的磁组件的任何一个部件(如磁头.前置放大器.音圈.驱动臂等)损坏.老化或偏移时,将导致硬盘不能正常识别,表现出来的现象为:有明显异响.马达不转或者一切表现正常但不认盘等.对于此类故障就需要拆开硬盘进行数据恢复.开盘前我

读完这100篇论文,你也是大数据高手!

引言 PayPal高级工程总监Anil Madan写了这篇大数据的文章,一共有100篇大数据的论文,涵盖大数据技术栈,全部读懂你将会是大数据的顶级高手.当然主要是了解大数据技术的整个框架,对于我们学习大数据有莫大好处. 开 源(Open Source)用之于大数据技术,其作用有二:一方面,在大数据技术变革之路上,开源在众人之力和众人之智推动下,摧枯拉朽,吐故纳新,扮演着非常重要的 推动作用.另一方面,开源也给大数据技术构建了一个异常复杂的生态系统.每一天,都有一大堆“新”框架.“新”类库或“新”

贵州全民大数据之体验

?? 近日有机会随广东省云计算应用协会的专家们到贵州贵阳市.毕节市黔西县.遵义市进行了云计算大数据之旅,参观交流了政府相关部门.高新区.经济开发区.软件园.大数据交易所.大数据应用展览中心.智慧社区.电子商务区.相关企业单位以及企业家创业者等等,可以说收获颇多感受颇深,贵州真正地实现了全民大数据热潮,从政府管理人员.企业家.创业者到普通老百姓开口闭口都是大数据,而且很多人的理解还真是到位,令我等书到用时方恨少,汗流直下三英尺. 然后思考为什么?个人观点:除了贵州本身拥有的天然条件适合建立大数据中

PayPal 高级工程总监:读完这 100 篇文献,就能成大数据高手

原文地址 开源(Open Source)对大数据影响,有二:一方面,在大数据技术变革之路上,开源在众人之力和众人之智推动下,摧枯拉朽,吐故纳新,扮演着非常重要的推动作用:另一方面,开源也给大数据技术构建了一个异常复杂的生态系统.每一天,都有一大堆"新"框架."新"类库或"新"工具涌现,乱花渐欲"迷"人眼.为了掌控住这些"新玩意",数据分析的达人们不得不"殚精竭虑"地"学而时习之

读完这100篇论文 就能成大数据高手(附论文下载)

100 open source Big Data architecture papers for data professionals. 读完这100篇论文 就能成大数据高手 作者 白宁超 2016年4月16日13:38:49 摘要:本文基于PayPal高级工程总监Anil Madan写的大数据文章,其中涵盖100篇大数据的论文,涵盖大数据技术栈(数据存储层.键值存储.面向列的存储.流式.交互式.实时系统.工具.库等),全部读懂你将会是大数据的顶级高手.作者通过引用Anil Madan原文和CS

Data Lake Analytics,大数据的ETL神器!

0. Data Lake Analytics(简称DLA)介绍 数据湖(Data Lake)是时下大数据行业热门的概念:https://en.wikipedia.org/wiki/Data_lake.基于数据湖做分析,可以不用做任何ETL.数据搬迁等前置过程,实现跨各种异构数据源进行大数据关联分析,从而极大的节省成本和提升用户体验.关于Data Lake的概念. 终于,阿里云现在也有了自己的数据湖分析产品:https://www.aliyun.com/product/datalakeanalyt