(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.常见故障类型 在数据库环境中,常见故障类型: 语句失败,用户进程失败,用户错误 实例失败,介质故障,网络故障 其中最严重的故障主要是用户错误和介 ...
随机推荐
- Sleep和wait
sleep()和wait()的区别及wait方法的一点注意事项 一.查看API sleep是Thread类的方法,导致此线程暂停执行指定时间,给其他线程执行机会,但是依然保持着监控状态,过了指定时 ...
- 用什么方法给PDF添加页眉页脚
我们所看到的书本中都会设置好有页眉页脚,那么电子书想要添加页眉页脚要怎么操作呢,用什么方法可以在PDF中添加页眉页脚呢,今天就为大家分享一下,如何在电子文件中添加页眉页脚,想知道的小伙伴们就一起来看看 ...
- Connet Scanning
1.connect scanning with Scapy, Tools that perform Tcp scans operate by performing a full there-wa ...
- MySQL基本操作练习
-- 数据的准备 -- 创建一个数据库 create database python_test charset=utf8; -- 使用一个数据库 use python_test; -- 显示使用的当前 ...
- 关于CentOS
dd if=/dev/cdrom of=centos72.iso 自动挂载镜像: vi /etc/fstab /root/centos72.iso /mnt/cdrom iso9660 de ...
- select2 api参数的文档
具体参数可以参考一下: 参数 类型 描述 Width 字符串 控制 宽度 样式属性的Select2容器div minimumInputLength int 最小数量的字符 maximumInputLe ...
- ERROR: invalid byte sequence for encoding "UTF8": 0x00
1.使用kettle批量导入数据的时候,数据出现了下面的错误.ERROR: invalid byte sequence for encoding "UTF8": 0x00 关键点: ...
- MongoDB超级简明入门教程
1.概念篇 MongoDB和MySQL分别作为非关系型数据库和关系型数据库的代表,通过它们之间的对比可以很快的建立起对MongoDB的认知. MongoDB MySQL 数据库(Database) 数 ...
- 树莓派做coolpy服务器
安装前需要了解的 1. coolpy是一个基于NodeJS的物联网平台(官网http://icoolpy.com). 注:国内物联网平台有乐联网,yeelink等,但只有coolpy是开源的. 2. ...
- 在vue2中隐藏elementUI的tab栏
<template> <el-tabs v-model="activeName" @tab-click="handleClick" ref=& ...