zoukankan      html  css  js  c++  java
  • (4.10)mysql备份还原——利用binlog+全备恢复误删表【不推荐使用】

    关键误操作:mysql误删除

    1、备份+binlog恢复数据

    【1.1】场景:不小心误删除某张表

    【1.2】解决方法:在另外一台机器,恢复全库+日志,然后导出删除的表,再插入会生产库。

    【1.3】案例演示:

    案例描述:test1数据库,test1表
      1点全备,3点更新,4点删表。如何恢复?

    模拟案例步骤如下:

    (1)查看全备时的数据
        

    (2)1点:进行全备

    #切换到linux环境(mysqldump参考)

    #备份所有数据库:mysqldump -F -R -uroot -p -A >/tmp/all_db.bak     # -F:刷新binlog日志,-R:存储过程及触发器。 -A:所有数据库

    mysqldump -F -R -uroot -p  test1 >/tmp/test1_db.bak

    (3)3点:更新表

    update test1 set name = '赵更新' where id in (1,2); 

    commit;

    (4)4点:删除表

    drop table test1;

    (5)查看恢复时间点/恢复位置

    a)查看当前binlog日志

    show master status;

        

    b)查阅binlog日志  #切换到linux环境下

      找到删除之前的点,就是567(时间点的话就是:2019-03-12 00:00:28)  

        

    (6)在新机器上进行还原

    【一个错误的假设】还原了test2,基于test1的全备,等下就用这个测试吧

    #想利用全备恢复到本实例一个新的数据库名称,发现不行,binlog重做的时候,使用的还是原本的数据库名称。 #如果是上面的全库备份,可以使用
    -o来指定所需要恢复数据库 mysql -uroot -p -o test2 </tmp/test1_db.bak mysql -uroot -p test2 </tmp/test1_db.bak
    #如果是使用的全备可以用--database=test1,来指定只重做test1库的日志 mysqlbinlog --stop-position=567 --database=test1 binlog.000002 |mysql -uroot -p test2
     mysqlbinlog --stop-position=567 binlog.000002 |mysql -uroot -p test2

      

    【实际可行策略】 

    我这里就没有其他机器,我删掉库重建演示吧,如果有其他实例或者机器,那就不用删除了。

    6.1)删除重建

       drop database test1;

       create database test1 default charset utf8; #一定要和原数据库一样的字符编码

    6.2)还原数据

       mysql -uroot -p test1 </tmp/test1_db.bak

    6.3)重做binlog日志

       mysqlbinlog --stop-position=567 binlog.000002 |mysql -uroot -p test1

    6.4)核验--成功

       

    6.5)备份表

      mysqldump -uroot -p test1 test1 >/tmp/test1_table.bak

    6.6)还原表到test2库看看

      mysql -uroot -p test2 </tmp/test1_table.bak

        

       

      


    
    

      

        

  • 相关阅读:
    2月份热门的 24 个 jQuery 插件
    走近求伯君1 求伯君,1964年11月26日出生于浙江新昌县。
    转CSDN,13原则
    SQL Server数据库如何正确加密?
    Zend Studio提供zend studio教程、zend studio下载等相关资源的公益性站点。 订阅
    高端人才必看,生意人必读
    有速度才有效率,支持Google gear离线的网站和应用
    2009.08.20总结与微软中国开发部经理段老师的通话无锡德立解决方案
    从SOA、SaaS到博科自主配置平台
    MySQL 1045错误的解决方法
  • 原文地址:https://www.cnblogs.com/gered/p/10765341.html
Copyright © 2011-2022 走看看