傍晚六点左右一不小心将一重要数据表清空,这可是我三个月的积累啊,如果不能恢复真是人间餐具啊。幸好日志文件已开启,于是准备用mysqlbinlog恢复数据,哪知日志文件里面根本没有我所需要的数据,最后一条记录还是今天上午的。我分析了一下原因,上午的系统是正常的,所以记录也是正常的,而傍晚我操作数据库的时候已经把系统时间更改为17日了,由于傍晚的操作一条都没有记录。是不是我的数据恢复不了了?哎~真是命苦啊~高手救救我吧~

解决方案 »

  1.   

    binlog的记录,应该跟系统时间无关吧,先把已有的binlog恢复看呢?
      

  2.   

    没看懂,你做了什么操作? 怎么改的数据库日期? 什么时候改的。建议详细描述,否则别人看了也是云时雾里。
    你最近一次的全备份是什么时候做的?你有多少BINLOG文件?从什么时候到什么时候的?
      

  3.   

    不好意思。心里很急啊。现在说得更清楚些。从2010年8月18日开始就没有做过备份。目前暂有256个BINLOG文件,从08月18日到10月25日。今天傍晚六点左右做了清空数据表的操作,在这之前我更改了系统时间为17日。查看最后一个日志文件,最后一条记录是今天上午10点左右的操作。而傍晚的更改了系统时间之后的数据库操作记录一条都没有。是不是描述更清楚了?高手救救啊~谢谢~
      

  4.   

    dir 列出你所有的BINLOG文件,还有你的BINLOG INDEX文件的内容。
      

  5.   

    ACMAIN_CHM老师好,我刚才仔细检查了下,原来我傍晚的操作是有记录的,(TRUNCATE TABLE `xxxxxx`)这条就是清空数据表的记录,是不是mysqlbinlog就能恢复数据啊?我现在不敢测试,准备明天到公司用备用电脑测试!
      

  6.   

    ACMAIN_CHM老师,加我QQ好吗,已经发你短消息了。帮帮我啊,谢谢。
      

  7.   

    binlog数据全的话,就可以恢复。你truncate的只是一个表,
    把binlog解开,过滤出这个表的所有操作,删掉TRUNCATE那句话,再执行就可以了。