zoukankan      html  css  js  c++  java
  • 记一次生产mysql数据误操作恢复过程

    提示:建议每次对数据库进行修改时都做下备份

    注意:以下Mysql开启的是row格式的binlog日志,确定到误操作具体时间可能有些麻烦,默认的格式就能很快找出来。这里开启row的原因是还有一种更快的方法实现误操作数据回滚(binlog2sql工具或用python脚本生成反向sql语句),以下介绍的为最常规方法

    1.发现生产主页打不开,并确定是数据库误操作更新了某个表格引起,大概误操作时间为2018-04-03 15:49——2018-04-03 15:55(每次数据库操作前都通过脚本进行了备份,记录的备份时间后面一段大概就是误操作时间,此处备份时间在15:48)

    2.vim /etc/my.cnf 注释binlog日志,防止数据恢复时再次被记录

    #binlog_do_db=xxx
    #max_binlog_size = 100M
    #binlog_format = row
    #binlog_row_image = full

    3.先恢复误操作之前的备份xx.sql

    mysql -uroot -p  -S /var/lib/mysql/mysql.sock <xxx.sql

    4.导出当前binlog日志以便确定具体误操作时间

    mysqlbinlog --start-datetime='2018-04-03 15:49:00' --stop-datetime='2018-04-03 15:55:00' mysql-bin.000014 >test.txt

    5.vim test.txt 确认具体误操作位置时间(红色部分)

    # at 192
    #180403 15:50:13 server id 1  end_log_pos 242 CRC32 0x1b094e96  Table_map: `xxx`.`xxx` mapped to number 70
    # at 242
    #180403 15:50:13 server id 1  end_log_pos 299 CRC32 0xa5ba6d25  Update_rows: table id 70 flags: STMT_END_F
    
    BINLOG '
    NTLDWhMBAAAAMgAAAPIAAAAAAEYAAAAAAAEABHNwMnAABHRlc3QAAgMPAi0AA5ZOCRs=
    NTLDWh8BAAAAOQAAACsBAAAAAEYAAAAAAAEAAgAC///8AwAAAAVkYW5uefwDAAAABGxvbmclbbql
    '/*!*/;
    # at 299
    #180403 15:50:13 server id 1  end_log_pos 330 CRC32 0xad17ed0c  Xid = 13
    COMMIT/*!*/;
    # at 330
    #180403 15:51:05 server id 1  end_log_pos 402 CRC32 0x6a703d5a  Query   thread_id=2     exec_time=0     error_code=0
    SET TIMESTAMP=1522741865/*!*/;

    6.恢复binlog增量记录部分(15:50:13为误操作时间,从15:51:05开始为后续正常操作),增量恢复分两个部分,15:48:00——15:50:05(日志上看误操作之前最新数据时间)和15:51:00——现在

    mysqlbinlog --start-datetime='2018-04-03 15:48:00'  --stop-datetime='2018-04-03 15:51:05'  mysql-bin.000xxx |mysql -uroot -p
    
    mysqlbinlog --start-datetime='2018-04-03 15:51:00' mysql-bin.000xxx |mysql -uroot -p

    7.确认数据恢复情况,重新开启binlog日志再重启Mysql

  • 相关阅读:
    poj2942 点-双联通+二分图染色
    poj1523割顶-点双联通
    poj3694 边-双连通分量+lca
    poj3177边-双连通分量
    poj3352 边-双联通分量
    Codeforces Round #377 (Div. 2) F
    Educational Codeforces Round 30D. Merge Sort
    洛谷p3369 treap
    hdu3572线性欧拉筛
    HYSBZ
  • 原文地址:https://www.cnblogs.com/dannylinux/p/8709147.html
Copyright © 2011-2022 走看看