zoukankan      html  css  js  c++  java
  • 阿里云mysql数据库恢复总结,mysql binlog日志解析

    由于意外。。阿里云mysql中有一张表被全部删除了,深吸三口气候,开始解决。

    首先用凌晨的自动备份的,进行全量恢复,然后找binlog日志(见下文),查找从全量备份到数据删除之间的记录

    这导致了一个问题,为了恢复那一张表,其他的表的数据也回滚到了凌晨备份的事后。。。

    由于当时比较紧张,而且时间有限,所以考虑不周,事后总结:

    应该在数据库实例中新建一个新的临时库,将备份恢复到临时库中,然后在临时库导出被误删的表的数据,然后再将数据导入到正式的数据库中对应表中。

    最后再从binlog日志文件中只寻找删除的表,从凌晨到删除这几个小时之间的数据。

    数据丢失对任意一个网站来说都是灾难性的,在开发过程中,update和delete操作一定要跟上条件,而且条件中坚决杜绝出现类似where 1=1  恒等的情况,以免后面的and条件因为逻辑或者外星人入侵等问题没有组装上,从而导致悲剧产生。

    mysql binlog3种格式,row,mixed,statement. 解析工作

    mysqlbinlog --base64-output=DECODE-ROWS -v mysql-bin.000144 |more

    --base64-output=DECODE-ROWS: 会显示出row模式带来的sql变更。

    -v :显示statement模式带来的sql语句

    outous-MacBook-Pro:bin user$ ./mysqlbinlog --base64-output=DECODE-ROWS -v /Users/dir/mysql-bin.000186 > /Users/dir/log.txt
    outous-MacBook-Pro:bin user$ pwd
    
    /usr/local/mysql/bin
  • 相关阅读:
    swift关键字
    Swift开发注意点
    Mac上安装lua
    Runtime运行时机制
    ios开发中如何选择图片的加载方式
    ios开发中的静态内存分析
    loadrunner-2-9添加事务
    loadrunner-2-8HTML和URL模式
    loadrunner-2-7设置关联
    loadrunner中Windows Resource没有数据或不可用
  • 原文地址:https://www.cnblogs.com/walter371/p/4184468.html
Copyright © 2011-2022 走看看