zoukankan      html  css  js  c++  java
  • mysql的binlog恢复数据库经历

    朋友公司的数据库坏了,幸运的是mysql开启了binlog日志,详细的记录了从建库以来的所有操作,最后有惊无险的使用binlog日志恢复了。

    以下为处理过程:

    事发原因:

      使用delete语句误删了一个用户的所有数据记录,大概联合有十多张表吧。

    恢复过程:

      1.先咨询了一些数据恢复的网站和业内人士,说是可以恢复,造价从几千到上万不等(PS,还是自己来吧)

      2.第一条路走不通,多复杂多难巴拉巴拉的唬谁啊,干脆自己动手,自己试验。

      3.百度科普了一下基础知识,使用mysql提供的binlog恢复工具可以使用。

        这里有一个坑:

          恢复的时候,stop-position需要设置成最早执行delete语句之前的最后一个position,否则会重复执行delete语句(希望我已经解释的很明白了)

      4.(这个很重要)修改mysql的innodb_flush_log_at_trx_commit的值为0, sync_binlog的值为0, 因为这样会显著的提高你恢复的速度。

          至于为什么,推荐阅读http://blog.csdn.net/codepen/article/details/52160715

      5. 数据库恢复后,记得将第4步中的两个参数修改成合适的值,推荐innodb_flush_log_at_trx_commit=2, sync_binlog=500(主要是根据数据的安全性和使用性能上)

    删除数据须谨慎!

    另外,注意修改一下binlog的单文件大小上限,因为恢复的时候,一个文件太大不好查找。

  • 相关阅读:
    HTML转换成word文档
    泛型的导入导出的公用方法
    封装的分页jq
    用泛型做的分页类
    EntityFramework小知识
    泛型连接数据库
    在博客园看的一些小技巧
    渗透之路基础 -- SQL注入
    第一篇博客就这么开始了?!稍微介绍一下。
    正则基础用法
  • 原文地址:https://www.cnblogs.com/ld1226/p/8072492.html
Copyright © 2011-2022 走看看