(4.10)mysql备份还原——利用binlog+全备恢复误删表【不推荐使用】
关键误操作:mysql误删除
1、备份+binlog恢复数据
【1.1】场景:不小心误删除某张表
【1.2】解决方法:在另外一台机器,恢复全库+日志,然后导出删除的表,再插入会生产库。
【1.3】案例演示:
案例描述:test1数据库,test1表
1点全备,3点更新,4点删表。如何恢复? 模拟案例步骤如下: (1)查看全备时的数据

(2)1点:进行全备
#切换到linux环境(mysqldump参考)
#备份所有数据库:mysqldump -F -R -uroot -p -A >/tmp/all_db.bak # -F:刷新binlog日志,-R:存储过程及触发器。 -A:所有数据库
mysqldump -F -R -uroot -p test1 >/tmp/test1_db.bak
(3)3点:更新表
update test1 set name = '赵更新' where id in (1,2);
commit;
(4)4点:删除表
drop table test1;
(5)查看恢复时间点/恢复位置
a)查看当前binlog日志
show master status;

b)查阅binlog日志 #切换到linux环境下
找到删除之前的点,就是567(时间点的话就是:2019-03-12 00:00:28)

(6)在新机器上进行还原
【一个错误的假设】还原了test2,基于test1的全备,等下就用这个测试吧 #想利用全备恢复到本实例一个新的数据库名称,发现不行,binlog重做的时候,使用的还是原本的数据库名称。
#如果是上面的全库备份,可以使用-o来指定所需要恢复数据库 mysql -uroot -p -o test2 </tmp/test1_db.bak
mysql -uroot -p test2 </tmp/test1_db.bak
#如果是使用的全备可以用--database=test1,来指定只重做test1库的日志 mysqlbinlog --stop-position=567 --database=test1 binlog.000002 |mysql -uroot -p test2
mysqlbinlog --stop-position=567 binlog.000002 |mysql -uroot -p test2

【实际可行策略】
我这里就没有其他机器,我删掉库重建演示吧,如果有其他实例或者机器,那就不用删除了。
6.1)删除重建
drop database test1;
create database test1 default charset utf8; #一定要和原数据库一样的字符编码
6.2)还原数据
mysql -uroot -p test1 </tmp/test1_db.bak
6.3)重做binlog日志
mysqlbinlog --stop-position=567 binlog.000002 |mysql -uroot -p test1
6.4)核验--成功

6.5)备份表
mysqldump -uroot -p test1 test1 >/tmp/test1_table.bak
6.6)还原表到test2库看看
mysql -uroot -p test2 </tmp/test1_table.bak

(4.10)mysql备份还原——利用binlog+全备恢复误删表【不推荐使用】的更多相关文章
- Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 一 ...
- 解说mysql之binlog日志以及利用binlog日志恢复数据
众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...
- 【转】Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...
- MySQL二进制binlog日志说明以及利用binlog日志恢复数据
MySQL的binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全量备份+binlog日志恢复增量数据部分). 一.关于 ...
- (4.5)mysql备份还原——深入解析二进制日志(1)binlog的3种工作模式与配置
(4.5)mysql备份还原——深入解析二进制日志(binlog) 关键词:二进制日志,binlog日志 0.建议 (1)不建议随便去修改binlog格式(数据库级别) (2)binlog日志的清理 ...
- (4.8)mysql备份还原——binlog查看工具之show binlog的使用
(4.8)mysql备份还原——binlog查看工具之mysqlbinlog及show binlog的使用 关键词:show binlog,mysql binlog查看,二进制文件查看,binlog查 ...
- Mysql利用binlog日志恢复数据操作(转)
a.开启binlog日志:1)编辑打开mysql配置文件/etc/mys.cnf[root@vm-002 ~]# vim /etc/my.cnf在[mysqld] 区块添加 log-bin=mysql ...
- (4.3)mysql备份还原——mysql备份策略
(4.3)mysql备份还原——mysql备份策略 1.指定备份策略时需要考虑的点 [1.1]备份周期:2次备份间隔时长 [1.2]备份方式:在备份周期中,使用什么备份方式.备份模式 [1.3]实现方 ...
- (4.1)mysql备份还原——mysql常见故障
(4.1)mysql备份还原——mysql常见故障 1.常见故障类型 在数据库环境中,常见故障类型: 语句失败,用户进程失败,用户错误 实例失败,介质故障,网络故障 其中最严重的故障主要是用户错误和介 ...
随机推荐
- avalonjs学习笔记之实现一个简单的查询页
官网地址:http://avalonjs.coding.me/ 因为是为了学习js,所以对样式没什么要求,先放效果图: 步骤为:初始页面-------条件查询-------编辑员工1-------保存 ...
- table切换jquery插件 jQuery插件写法模板 流程
通过$.extend()来扩展jQuery 通过$.fn 向jQuery添加新的方法 通过$.widget()应用jQuery UI的部件工厂方式创建 通过$.extend()来扩展jQuery $. ...
- Redis 可视化工具:Web Redis Manager
以前用的:RedisDesktopManager (0.9.3以后需要订阅) https://github.com/uglide/RedisDesktopManager/releases 现在需要订阅 ...
- c++ typeid
简单使用 #include<iostream> #include<string> #include<new> #include<typeinfo> us ...
- Angular路由——路由基础
一.路由相关对象 Router和RouterLink作用一样,都是导航.Router是在Controller中用的,RouterLink是在模版中用到. 二.路由对象的位置 1.Routes对象 配置 ...
- CTeX入门出坑
终于出了入门坑.大致风格可以了.赶紧记下来. \documentclass{ctexbook} \usepackage{amsmath} \usepackage{amsfonts} \usepacka ...
- gdb解决字符串打印果断措施
在我们进行gdb动态调试的时候,很多时间可能会遇到无法完全显示的情况 关于这种方法网上已经有解决方法 https://blog.csdn.net/shuizhizhiyin/article/detai ...
- 【JavaScrpt】JS之数组去重
var arr = [] var peoples = [ {id:1,name:'wang'}, {id:2,name:'zhang'}, {id:2,name:'zhang'}, ] for(let ...
- 第三篇 request篇
每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...
- Linux和window的区别
免费与收费 最新正版Windows10官方售价¥888 Linux几乎免费(更多人愿意钻研开源软件,而收费的产品出现更多的盗版) 软件与支持 Windows平台:数量和质量的优势,补过大部分为收费软件 ...