千家信息网

Mysql结合备份+binlog恢复误删除操作数据的方法

发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,小编给大家分享一下Mysql结合备份+binlog恢复误删除操作数据的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!结
千家信息网最后更新 2025年11月09日Mysql结合备份+binlog恢复误删除操作数据的方法

小编给大家分享一下Mysql结合备份+binlog恢复误删除操作数据的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

结合备份+binlog恢复数据。

场景:昨天晚上做了全备,今天上午用户不小心误删除某张表。

解决方案:不建议在原生产环境直接恢复,建议在另一台机器恢复全库+日志,然后导入到生产环境。

1) 创建表

select now(); create table itpuxfg1 (`id` int(10) unsigned not null auto_increment,`name` varchar(16) not null,`sex` enum('m','w') not null default 'm',`age` tinyint(3) unsigned not null,primary key (`id`)) engine=innodb default charset=utf8;insert into itpux.itpuxfg1(`name`,`sex`,`age`) values('itpux1','w',21),('itpux2','m',22),('itpux3','w',23),('itpux4','m',24),('itpux5','w',25);commit;select * from itpux.itpuxfg1;

2)做备份 逻辑备份

mysqldump -uroot -p -F -R --all-databases > alldb_bak.sql

3) 模拟上午的业务操作

show master status; -- 154select now(); -- 2018-04-27 06:27:40update itpux.itpuxfg1 set name='itpux04' where id=4;commit;select * from itpux.itpuxfg1;select now(); -- 2018-04-27 06:28:03update itpux.itpuxfg1 set name='itpux05' where id=5;commit;select * from itpux.itpuxfg1;show master status; -- 890

4) 中午的误删除

select now(); -- 2018-04-27 06:29:00drop table itpuxfg1;select * from itpux.itpuxfg1;show master status; -- 1078

5) 在另一台机器恢复(我的案例在本地,生产不要在本地)

show master status;通过这个文件名,向前备份需要的binlog

--记得拷贝binlog日志

show binlog events in 'itpuxdb-binlog.000003';

mysqlbinlog itpuxdb-binlog.000003 |grep "DROP TABLE"

mysqlbinlog itpuxdb-binlog.000003 |grep "itpuxfg1"(注意日志 两个不同的版本 请区分

演示:

把itpux 库删除drop database itpux;

恢复:

先创建数据库:

mysql> create database itpux default character set utf8; -- 如果不清楚条件,建议在原库查询show create database mysql;

mysql -uroot -p -o itpux < alldb_bak.sql

-- 恢复后,查不到今天上午更新的记录

mysql> show tables;

-- 通过binlog 日志增量恢复表删除之前

[root@mysqldb binlog]# mysqlbinlog -vv --start-position=219 --stop-position=913 --database=itpux itpuxdb-binlog.000001 >sa.sql

-- 恢复这张表到原库里面

先从另外的库里备份这张表

mysqldump -uroot -p itpux itpuxfg1 > sa.sql

再把生产库,直接恢复(原来的库中的表是已经被删除掉了)

mysql -uroot -p itpux < sa.sql

mysql> select * from itpuxfg1;

1)恢复到这张表到源库里

mysqldump -uroot -p itpux itpuxfg1 >sa.sql

以上是Mysql结合备份+binlog恢复误删除操作数据的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

备份 数据 日志 生产 建议 方法 内容 机器 环境 篇文章 库里 不同 清楚 不怎么 业务 两个 场景 增量 大部分 拷贝 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 蔚来校招软件开发工程师 网络安全攻击与防护的实现 淄博生产管理软件开发公司 服务器能控制几个led 电子商务网络安全管理论文 用命令oracle数据库 部队网络安全清查报告 linq from数据库 无线传感器网络技术论文英文 数据库组织形式有哪些 安尼卡服务器关闭 在服务器里玩生存游戏 西林林业大学数据库 梦幻西游手游七区全部服务器 青少年网络安全动漫展的形式 嵌入式软件开发系统 桐乡科慧网络技术有限公司 数据库逻辑表存储物理表 华三服务器修改密码 汇丰太古汇软件开发 怎么样 安装数据库时显示无法找到文件 22岁学软件开发晚吗 服务器账号密码怎么更换 linq from数据库 自己软件开发的费用包括哪些 杨浦区互联网络技术服务信息 更好的定制软件开发 起步上海网络技术有限公司 网络技术今后发展的主流方向 软件开发和工程哪个好就业
0