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的单文件大小上限,因为恢复的时候,一个文件太大不好查找。

  • 相关阅读:
    Chapter 2: 随机变量
    数据集
    Chapter 1: 随机事件及其概率
    概率论与数理统计每周教学内容及作业
    概率论与数理统计教学内容
    Entity Framework search sequnce
    Runtime Complexity of .NET Generic Collection
    update the UI property cross thread
    打通技术的任督二脉
    windbg symbol path
  • 原文地址:https://www.cnblogs.com/ld1226/p/8072492.html
Copyright © 2011-2022 走看看