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

        

       

      


    
    

      

        

  • 相关阅读:
    Silverlight 4.0添加鼠标右键菜单和Silverlight全屏模式的进入退出
    获取天气服务
    Silverlight 数据绑定 (1):怎样实现数据绑定 &&Silverlight 数据绑定 (2):Source to Target
    调用根据IP查看城市WebService
    Silverlight中的Binding使用(一、二、三)
    使用Prism实现的WPF MVVM点餐Demo
    [Silverlight入门系列]实现局部元素全屏(Element部分全屏)
    silverlight 上下标
    动画教程(动态注册/静态注册)
    Silverlight数据验证
  • 原文地址:https://www.cnblogs.com/gered/p/10765341.html
Copyright © 2011-2022 走看看