mysql在没开启binlog时没有备份数据,在binlog开启之后删除几条数据,这样不能恢复数据是吗?

解决方案 »

  1.   

    能   但是需要binlog是row格式
      

  2.   

    不开启binlog就是没戏
      

  3.   

    binlog 中能查到的是开 binlog 后的操作
    所以,如果你要恢复开启 binlog 后删除的几条数据,那是可以的,如果你是要从 binlog 恢复所有的数据(也就是开启前的数据),那是不可能的
      

  4.   

    在binlog开启之后删除几条数据,能恢复数据
    前提是开启前必须有个全备。
      

  5.   

    我在开启之前没做全备,开启之后恢复执行删除的事物区间,或日志区间,这个区间是个delete语句,怎么恢复??
      

  6.   

    需要binlog是row格式 
    mysqlbinlog 日志文件名 -v --base64-output=decode-rows
    这个可以把你的 delete 语句解析出来,你可以看到类似这样的东东
    ### DELETE FROM `xx`.`xx`
    ### WHERE
    ###   @1=1
    其中 WHERE 部分包含了所有的列值 ,得到这个之后,把语句改成
    INSERT xx
    SET 
    就行了,写个小程序或小脚本实现还是容易的