mysql利用binlog恢复数据
需求:需要给开发提供一个2018年9月30号的数据,按照我们公司正常备份策略来说,直接找到对应时间的备份数据,解压导入即可,恰好这个时间节点的数据没有,只备份到2018年9月25号的,糟糕了吧
咋办呢,咱们利用binlog日志来恢复吧,如果二进制日志都没有,那还恢复啥呢,运维咋当滴
话不多说,进入正题
一、导入数据
我的源数据:baodian_2018-09-25_.tar.bz2 #这一串数字是pos节点位置,等下利用二进制恢复的时候需要用到,时间:9月 25 01:08
随便在哪个mysql数据库解压导入即可,根据自己的需求就行
二、找到对应的binlog
知道的时间节点:
1.开始pos位置:329010659
2.结束时间:2018-10-01 00:00:00
# 二进制日志分析
2018-09-22 12:34:23.459540935 2018-09-29 15:54:20.554318725 mysql-bin.000163
2018-09-29 15:54:20.554318725 2018-10-04 00:09:50.238484899 mysql-bin.000164
三、数据恢复
利用binlog恢复,一条命令搞定
/usr/local/mysql/bin/mysqlbinlog --start-position=329010659 --stop-datetime='2018-10-01 00:00:00' --database=baodian --set-charset=utf8 mysql-bin.000163 mysql-bin.000164 |mysql -h127.0.0.1 -P3036 -uroot -p123456 baodian
温馨提示:
1.mysqlbinlog分析多个文件的时候,不能分开写,否则导入的时候会报语法错误,如图

2.尽量加上字符集编码参数,否则中文是乱码
我的是: --set-charset=utf8
3. mysqlbinlog分析分时候,不要加这个参数,--base64-output=decode-rows,否则数据导不进去 #当然是根据我的环境来说的
其实我觉得一般是可以的,可能是我my.cnf里面设置了格式为row
4.如果导数据的时候,出现如下两种报错信息
1)ERROR 1609 (HY000): The BINLOG statement of type `Table_map` was not preceded by a format description BINLOG statement. #直接在数据库source的时候
2) ERROR 2006 (HY000) at line xx: MySQL server has gone away #出现这个原因有很多种,其他原因的解决办法参考:https://www.cnblogs.com/fnlingnzb-learner/p/5984795.html
这里的原因是,sql操作时间过长,传送的数据太大,可以设置max_allowed_packed来避免
解决:在my.cnf里面添加一行参数
max_allowed_packed=16M #如果不行将16M再加大
mysqlbinlog其他用法,参考:
https://www.cnblogs.com/kevingrace/p/5907254.html
mysql利用binlog恢复数据的更多相关文章
- mysql利用binlog恢复数据详细例子
模拟数据恢复的案例 有些时候脑瓜就会短路,难免会出错 场景:在生产环境中,我们搭建了mysql主从,备份操作都是在从备份数据库上 前提:有最近一天或者最近的全备 或者最近一天相关数据库的备份 最重要的 ...
- 不小心删除数据--利用MySQL的binlog恢复数据
MySQL Binary Log也就是常说的bin-log, ,是mysql执行改动产生的二进制日志文件,其主要作用有两个: * 数据回复 * 主从数据库.用于slave端执行增删改,保持与maste ...
- 利用mysql的binlog恢复数据
MySQL Binary Log也就是常说的bin-log, ,是mysql执行改动产生的二进制日志文件,其主要作用有两个: * 数据回复 * 主从数据库.用于slave端执行增删改,保持与maste ...
- 【转】【MySQL】mysql 通过bin-log恢复数据方法详解
mysql中bin-log在mysql默认状态下是没有打开的,我们要先打开mysql 开启bin-log功能,然后再通过备份的bin-log进行数据库恢复了. 具体的操作是通过mysqlbinlog这 ...
- Mysql使用binlog恢复数据解决误操作问题的两种方法
为保证没有其他参数配置影响,重新安装配置了一台最小化安装的CentOS7虚拟机 1. 基础知识 安装mysql5.6数据库Mysql binlog初步理解 2. 配置mysql 开启binlog.修 ...
- MySQL利用binlog恢复误操作数据(python脚本)
在人工手动进行一些数据库写操作的时候(比方说数据订正),尤其是一些不可控的批量更新或删除,通常都建议备份后操作.不过不怕万一,就怕一万,有备无患总是好的.在线上或者测试环境误操作导致数据被删除或者更新 ...
- mysql通过binlog恢复数据
如果mysql不小心操作失误导致数据错误或者丢失这时候binlog起到了很大的作用 恢复有几种方式 1.按时间恢复--start-datetime 如果确定了时间点,那么按时间恢复是一个再好不过的 ...
- MySQL 5.7 - 通过 BINLOG 恢复数据
日常开发,运维中,经常会出现误删数据的情况.误删数据的类型大致可分为以下几类: 使用 delete 误删行 使用 drop table 或 truncate table 误删表 使用 drop dat ...
- mysql利用binlog进行数据恢复
目录 mysql利用binlog进行数据恢复 binlog基本配置和格式 binlog基本配置 查看binlog状态 binlog的三种格式 转换成sql mysql自带的mysqlbinlog 利用 ...
随机推荐
- c++中static的全部用法
要理解static,就必须要先理解另一个与之相对的关键字,很多人可能都还不知道有这个关键字,那就是auto,其实我们通常声明的不用static修饰的变量,都是auto的,因为它是默认的,就象short ...
- Visual Studio 中使用的正则表达式 说明
Visual Studio 中使用的正则表达式 说明 2013-10-11 21:10:12| 分类: VB和VBA知识|举报|字号 订阅 参考:详解Visual Studio正则替换大 ...
- 单选框 复选框 隐藏之后,绑定的change事件在ie中失效的问题
有时候需要对单选框和复选框进行美化,就需要在<input type="radio">和<input type="checkbox">元素 ...
- jqGrid Bootstrap
<!DOCTYPE html> <html lang="en"> <head> <!-- The jQuery library is a ...
- 仿照 QQ 的 cell 的左滑删除、置顶、标记未读效果
侧滑删除.置顶.取消关注,在iOS8之前需要我们自定义,iOS8时苹果公司推出了新的API,UITableViewRowAction类,我们可以使用该类方便的制作出如下图的效果. 下面是实现的主要代码 ...
- E20180421-hm
ambiguous adj. 模棱两可; 含糊的,不明确的; 引起歧义的; 有两种或多种意思的; simple adj. 简单的; 单纯的; 易受骗的; 天真的; simplify vt. 简化 ...
- redis 发布订阅实现异步实时发短信
redis 中发布和订阅可以实现消息的实时传输,这里我只是用它的事件驱动,当客户端发送了消息,服务器端立马可以接收指令处理相应的业务逻辑. 客户端 client.php <?php //发布 $ ...
- gvim 常用键
按i 切换到插入模式,ESC退出 命令模式下 dd 删除一行 dw 删除一个字 x 删除一个字符 :set num 设置行号 :reg 查看寄存器 p 粘贴 y 复制 "*p 不同环境下 ...
- django网页渲染
模板标签种类 {% for blog in blog_list %} <h2>{{ blog.title }}</h2> <p>{{ blog.timestamp ...
- 组合数+容斥原理 UVALive 7040 Color(14西安F)
题目传送门 题意:n盆花涂色,相邻不能涂相同的颜色,从m中颜色选取k种颜色涂,保证正好有k种颜色 分析:从m中颜色选取k种就是C (m, k),然后第一个有k种选择,之后的都有k-1种选择,这样是不超 ...