目录

开始场景模拟:

原始数据:test库只有test表

 开始全量备份:

开始模拟正常工作:

模拟一临时工不小心删除了我们的数据库test【不只是test表】

 第一步:开始恢复今天工作之前的数据

第二步:刷新binlog日志记录文件,让之后的数据操作写入到新的日志文件

第三步:开始恢复今天工作一天的数据 

 当然除了全恢复,我们还可以只回复一部分数据:

重新删掉数据库:

编辑然后我们将数据恢复到添加完数据的模样,不要修改的数据:

 修改完成!


开始场景模拟:

原始数据:test库只有test表

mariadb数据库binlog日志文件在哪 mariadb开启binlog_数据

 开始全量备份:

mariadb数据库binlog日志文件在哪 mariadb开启binlog_mysql_02

mariadb数据库binlog日志文件在哪 mariadb开启binlog_mysql_03

  

mariadb数据库binlog日志文件在哪 mariadb开启binlog_数据_04

 备份后刷新的日志:

mariadb数据库binlog日志文件在哪 mariadb开启binlog_数据库_05

mariadb数据库binlog日志文件在哪 mariadb开启binlog_binlog_06

mariadb数据库binlog日志文件在哪 mariadb开启binlog_数据库_07

开始模拟正常工作:

        插入数据:

mariadb数据库binlog日志文件在哪 mariadb开启binlog_binlog_08

         修改数据:【修改了两条】

mariadb数据库binlog日志文件在哪 mariadb开启binlog_mysql_09

mariadb数据库binlog日志文件在哪 mariadb开启binlog_binlog_10

         至此模拟工作结束。

模拟一临时工不小心删除了我们的数据库test【不只是test表】

 

mariadb数据库binlog日志文件在哪 mariadb开启binlog_数据_11

mariadb数据库binlog日志文件在哪 mariadb开启binlog_数据库_12

 第一步:开始恢复今天工作之前的数据

mariadb数据库binlog日志文件在哪 mariadb开启binlog_mysql_13

数据已恢复到早晨开工的模样: 

mariadb数据库binlog日志文件在哪 mariadb开启binlog_binlog_14

第二步:刷新binlog日志记录文件,让之后的数据操作写入到新的日志文件

mariadb数据库binlog日志文件在哪 mariadb开启binlog_binlog_15

第三步:开始恢复今天工作一天的数据 

 看刚刚的musql-bin.000004文件,发现是下图中黄色方框导致的数据删除

mariadb数据库binlog日志文件在哪 mariadb开启binlog_数据_16

 所以我们用重定向这个文件,然后将那句命令删除,开始恢复今天的数据

mariadb数据库binlog日志文件在哪 mariadb开启binlog_binlog_17

mariadb数据库binlog日志文件在哪 mariadb开启binlog_binlog_18

恢复今天的数据: 

 

mariadb数据库binlog日志文件在哪 mariadb开启binlog_mysql_19

发现今天一天的数据终于恢复了! 

 

mariadb数据库binlog日志文件在哪 mariadb开启binlog_mysql_20

 当然除了全恢复,我们还可以只回复一部分数据:

重新删掉数据库:

mariadb数据库binlog日志文件在哪 mariadb开启binlog_binlog_21

 然后恢复到今天开始工作之前的数据:

mariadb数据库binlog日志文件在哪 mariadb开启binlog_数据库_22

mariadb数据库binlog日志文件在哪 mariadb开启binlog_数据_23

然后我们将数据恢复到添加完数据的模样,不要修改的数据:

mariadb数据库binlog日志文件在哪 mariadb开启binlog_mysql_24

开始修改: 

mysqlbinlog --start-position=445 --stop-position=579 --database=test musql-bin.000004 | mysql -uroot -proot123 -v

mariadb数据库binlog日志文件在哪 mariadb开启binlog_mysql_25

 修改完成!

mariadb数据库binlog日志文件在哪 mariadb开启binlog_数据_26

#当然也可以用下面的命令按时间恢复

mysqlbinlog --start-datetime="起始时间" --stop-datetime="终止时间" --database=数据库名称 /var/lib/mysql/musql-bin.000004 | /usr/bin/mysql -u用户 -p密码 -v