• 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
    
    热爱技术,享受生活,感谢推荐!
  • 相关阅读:
    可编辑的div -> 编辑框
    图片的缩放处理
    枚举转换成字典集合的通用方法
    SQLPrompt_9.5.5.9830破解版含注册机_永久激活不掉线
    配置阿里云docker镜像地址
    Virtualbox设置固定IP
    史上最全的 vi 命令大全,建议手册
    ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了
    vue Slot理解
    windows上pip安装及使用详解
  • 原文地址:https://www.cnblogs.com/zdqc/p/15422316.html
Copyright © 2020-2023  润新知