(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.常见故障类型 在数据库环境中,常见故障类型: 语句失败,用户进程失败,用户错误 实例失败,介质故障,网络故障 其中最严重的故障主要是用户错误和介 ...
随机推荐
- rsyslog队列说明文档
常规队列参数 用法 队列参数可与以下语句一起使用: 行动() 规则集() main_queue() 需要在应该影响的操作或规则集中配置队列.如果未配置任何内容,则将使用默认值.因此,默认规则集仅具有默 ...
- SqlServer数据库重命名报错误:5030
无法重命名 KLENN 无法用排他锁锁定该数据库,以执行该操作(错误:5030) 解决办法: 将数据库设置为单用户模式 (单用户模式指定一次只有一个用户可访问数据库,该模式通常用于维护操作. ) 1. ...
- Linux--奇思淫才
根据进程号找到可执行的文件路径 [ec2-user@baolin ~]$ ll /proc/<pid>/exe lrwxrwxrwx 1 ec2-user ec2-user 0 May 3 ...
- Windows上安装nodejs版本管理器nvm
nvm最新的下载地址 Node版本管理器--nvm,可以运行在多种操作系统上.nvm for windows 是使用go语言编写的软件. 我电脑使用的是Windows操作系统,所以我要记录下在此操作系 ...
- IntelliJ IDEA 中 Web项目 目录结构
--src 应用程序源代码和测试程序代码的根目录 --main --java 应用程序源代码目录 --resources 应用程序用到的资源文件(一般都是配置文件) --webapp web项 ...
- 安装elasticsearch-7.0.0(centos)
云主机上需设置root密码 sudo passwd root 回车后出入密码两次 jdk11页面 https://www.oracle.com/technetwork/java/javase/down ...
- 美团小程序框架mpvue蹲坑指南
美团小程序框架mpvue(花名:没朋友)蹲坑指南 第一次接触小程序大概是17年初,当时小程序刚刚内侧,当时就被各种限制折腾的死去活来的,单向绑定, 没有promise,请求数限制,包大小限制,各种反人 ...
- Hexo主题yilia增加gitalk评论插件
虽然gitment可以实现评论功能,但是适配方面做的并不好,这里借用GitHub上的gitalk项目用来优化个人博客的评论功能 下面记录自己从gitment到gitalk的替换过程: 1.在layou ...
- POJ 1515 Street Directions (边双连通)
<题目链接> 题目大意: 有m条无向边,现在把一些边改成有向边,使得所有的点还可以互相到达.输出改变后的图的所有边(无向边当成双向的有向边输出). 解题分析: 因为修改边后,所有点仍然需要 ...
- Linux安装RocketMQ
本文介绍Linux安装RocketMQ. 1.RocketMQ简介 RocketMQ是阿里巴巴中间件开发的分布式消息系统,曾经经历过很多阿里巴巴大型项目的实际检验.在去年已经正式捐献给Apache开源 ...