zoukankan      html  css  js  c++  java
  • mysql回档操作

    误删除数据库操作

    模拟操作

    数据库每天进行一次数据库备份,binglog每天生成一个新文件,三天钱创建了一个数据库,今天删除了其中的一张表,现要求恢复数据

    第一步:

    show binary logs; #获取binlog文件列表
    show master status; #查看当前正在写入的binlog文件 记录当前删除之后的pos点
    flush logs; #刷新  binlog  重新生成binlog文件
    

    第二步:

     将执行删除操作的数据库备份   以备不时之需
    

    第三步:

    将昨天的备份恢复到现存数据库

    第四部查看当天的binlog

    mysqlbinlog --no-defaults  /var/lib/mysql/mysql-bin.000008
    
    
    #其中包含今天新增数据和删除数据的命令
    
    /*!80011 SET @@session.default_collation_for_utf8mb4=255*//*!*/;
    BEGIN
    /*!*/;
    # at 309
    #211011 18:56:33 server id 1  end_log_pos 369 CRC32 0xd6ad0ce6 	Table_map: `zbb`.`t` mapped to number 120
    # at 369
    #211011 18:56:33 server id 1  end_log_pos 429 CRC32 0x7a99aafc 	Write_rows: table id 120 flags: STMT_END_F
    
    BINLOG '
    
    
    /*!*/;
    # at 613
    #211011 18:56:46 server id 1  end_log_pos 673 CRC32 0x6da63852 	Table_map: `zbb`.`t` mapped to number 120
    # at 673
    #211011 18:56:46 server id 1  end_log_pos 733 CRC32 0x5e9ab277 	Delete_rows: table id 120 flags: STMT_END_F
    
    
    
    
    
    mysqlbinlog --no-defaults  --stop-datetime="2021-10-11 18:56:39"  /var/lib/mysql/mysql-bin.000009 -d zbb|mysql  -uroot -p123456  -f
    
    

    企业实战

    昨天删除了2张表 现要求恢复到未删除的状态

    恢复昨天的数据

    从昨天的备份sql中取出那两张表结构和数据

    注mysqldump导出的都是insert语句

    grep -i 'INSERT INTO `www`' all109.sql >> wcmmle.sql
    mysqldump  -uroot -p"123"  -d zbb www  >www.sql
    #-d 是导出表结构  
    #-t 是导出表数据
    
    

    导出binglog增量数据

    mysqlbinlog --no-defaults  --start-datetime="2021-11-09 00:10:00" mysql-bin.000361 |egrep "表1|表2"  >2.sql &
    mysqlbinlog --no-defaults   mysql-bin.000362 |egrep "表1|表2"  >>2.sql &
    mysqlbinlog --no-defaults   mysql-bin.000363 |egrep "表1|表2"  >>2.sql &
    mysqlbinlog --no-defaults   mysql-bin.000364 |egrep "表1|表2"  >>2.sql &
    mysqlbinlog --no-defaults  --stop-datetime="2021-11-09 22:00:00" mysql-bin.000365 |egrep "表1|表2"  >>2.sql &
    
    sed  -i  "s##Q> ##g"  2.sql
    

    重定义文件格式

    # -*- coding: utf-8 -*-
    
    with open("./2.sql") as f:
        with open("./3.sql", "w") as f2:
            for i in f:
                f2.write(str(i.strip()) + ";" + "
    ")
           
    
    

    在测试库中操作

    恢复表结构

    恢复数据

    create    zbb;
    mysql -uroot -p"123"  zbb </www.sql
    mysql -uroot -p"123"  zbb <wcmmle.sql
    

    恢复增量数据

    mysql -uroot -p"123"  zbb <3.sql
    
    热爱技术,享受生活,感谢推荐!
  • 相关阅读:
    cf1100 F. Ivan and Burgers
    cf 1033 D. Divisors
    LeetCode 17. 电话号码的字母组合
    LeetCode 491. 递增的子序列
    LeetCode 459.重复的子字符串
    LeetCode 504. 七进制数
    LeetCode 3.无重复字符的最长子串
    LeetCode 16.06. 最小差
    LeetCode 77. 组合
    LeetCode 611. 有效三角形个数
  • 原文地址:https://www.cnblogs.com/zdqc/p/15422316.html
Copyright © 2011-2022 走看看