Mysql误删除,使用binlog日志恢复

1.查看是否开启策略  应该返回 ON

SHOW VARIABLES LIKE 'log_bin';

 

2.查看二进制文件地址及大小

SHOW VARIABLES LIKE 'log_bin_basename';

SHOW VARIABLES LIKE 'max_binlog_size';

3.查看所有二级制文件

SHOW BINARY LOGS;

4.注意文件夹命名如果有空格,需要引号

mysqlbinlog --start-datetime="2024-07-30 14:00:00" --stop-datetime="2024-08-09 16:00:59" "D:\MySQLData\MySQL\MySQL Server 8.0\data\DATA-MYSQL-bin.000004" > restore_part2.sql

得到sql文件(这个时间段插入的数据)

5.创建测试数据库(必须是一个单独的服务器,数据库命名要与正式库一致),将正式数据库的表结构复制出来,在测试环境创建,然后数据库命名为原名称procost,要一致。

导出数据库表结构(在正式库使用)

mysqldump -u root -p procost  --no-data > no.sql

6.将4中得到的文件复制到测试服务器,并在文件所在的目录下使用cmd

7.进入mysql

输入mysql -u root -p   

再source 绝对路径(不要直接在文件夹所在路径用cmd 然后mysql -u -p恢复,这种方式出错就立刻中断;一定进入数据库后用source)

如:source  d:\restore_part2.sql

日志记录里的恢复一定要在测试数据库中,因为里面的数据库名表名都是写死的,即使在同一个数据库服务器中建立两个不同的数据库也不行,必须在测试库执行!否则即使使用D:\MySQL\MySQL Server 8.0\Data>mysql -u root -p test_db < restore_part2.sql   也会导致数据运行进了正式库!

切记,时间区间要选对,而且不同服务器时间会存在误差,如果时间选成了备份数据执行后的,那就会导致回到备份数据的状态,一定要选到刚出错之前的时间,也就是在日志中还没有删除时。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值