利用备份的日志文件对数据库进行恢复
show variables like 'log_bin';
mysqldump -uroot -p
create table temp like user;
insert temp select * from user;
drop database test;
create database test;
use test;
source d:/mysql/db/test.sql
mysqlbinlog
mysqlbinlog
use test;
source d:/mysql/db/test_diff.sql
1.(1)确保二进制日志开启 (2)将test数据库做一个全备份。查看到有相应的备份数据: test数据库备份在二进制日志中的位置: (3)备份完后,在test数据库下创建一个和users一样的temp表,并将users表的数据复制给temp表。 (4)误操作将test数据库删除了。 (5)用全备和二进制日志恢复test数据库(包括新建的temp表) 用test全备恢复test数据库,这种方法没法恢复temp表: 用二进制日志恢复temp表: 找到结束位置为844 将开始位置与结束位置之间的日志作为增量日志 接下来对数据库进行恢复:恢复成功 注:(user表中数据太多或test数据库中的表太多可能达不到想要的结果),如下图所示:
利用增量日志对修改但没有备份的数据进行恢复
INSERT INTO temp(username,age,sex,addr,married,salary,userDesc)
VALUES('火锅',18,'男','无锡',0,998,'肥牛卷虾滑毛肚');
DELETE FROM temp where id=9;
mysqlbinlog
mysqlbinlog
use test;
source d:/mysql/db/test1_diff.sql
2.(1)刷新二进制日志 (2)在temp表中任意添加一条记录 (3)误操作将刚添加的记录删除了 (4)请利用二进制日志开始位置和结束位置对其进行恢复。 查询二进制日志: 将310与462之间的日志作为增量日志: 恢复成功:
|