背景
在进行开发的时候,本来是想删除一张废弃表,结果删表的时候没有进行对比,导致删错了数据 表,在此记录一下恢复数据的过程
一、初识binlog
1、我们知道mysq有一个专门的日志记录,叫binlog,mysql-binlog是MySQL数据库的二进制日志,用于记录用户对数据库操作的SQL语句,它记录了所有的DDL和DML语句(除了数据查询语句select),可以使用mysqlbin命令查看二进制日志的内容。运行服务器时若启用二进制日志则性能大约慢1%。但是,二进制日志的好处,即用于恢复并允许设置复制超过了这个小小的性能损失。mysqld在每个二进制日志名后面添加一个数字扩展名。每次你启动服务器或刷新日志时该数字则增加。如果当前的日志大小达到max_binlog_size,还会自动创建新的二进制日志。如果你正使用大的事务,二进制日志还会超过max_binlog_size:事务全写入一个二进制日志中,绝对不要写入不同的二进制日志中,为了能够知道还使用了哪个不同的二进制日志文件,mysqld还创建一个二进制日志索引文件,包含所有使用的二进制日志文件的文件名。默认情况下与二进制日志文件的文件名相同,扩展名为'.index'。你可以用--log-bin-index[=file_name]选项更改二进制日志索引文件的文件名。当mysqld在运行时,不应手动编辑该文件;如果这样做将会使mysqld变得混乱。
2、binlog使用场景
1、用于主从复制,master通过像从服务器发送binlog文件进行数据同步
2、恢复使能够最大可能地更新数据库
3、MySQL binlog格式
binlog的格式也有三种:STATEMENT、ROW、MIX