简介

在生产的过程中有这么一个业务场景:比如我在2016-11-19 09:30:00 通过mysqldump的方式备份了数据库,但是在2016-11-19 10:30:00的时候数据库崩溃了,如果通过我们的备份文件来恢复,也只能恢复到 2016-11-19 09:30:00 这个时间点,而9.30分到10:30分这一个小时的数据恢复不了,这时候我们可以通过mysql的binlog日志来恢复没有备份到的这一小时的数据。

1、开启mysql的binlog日志(默认情况下没有开启)

#vim /etc/my.cnf下添加一行(也可以另外指定binlog日志的路径)
log-bin = mysql-bin

#mysql5.7默认情况下,binlog日志文件默认放在/usr/local/mysql/data/目录下

2、对binlog日志的相关操作命令

2.1用mysqlbinlog可以查看binlog日志里的信息

./mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.000003

2.2刷新binlog日志

mysql> flush logs; #这样就会多出一个最新的binlog日志

2.2查看最新的 binlog日志

mysql> show master status;

2.3清空所有的binlog日志


mysql> reset master;

 

3、根据位置恢复

#mysqlbinlog --start-position=134 --stop-position=330 mysql-binglog.000001 > /root/test1.txt

进入MYSQL导入
mysql> source /root/test1.txt
--start-position  起始位置
--stop-position  结束位置

4、根据日期

#./mysqlbinlog --start-date="2016-11-10 17:30:05"
--stop-date="2016-11-10 18:00:00"
mysql-binlog.000002  >
/root/test2.sql
mysql> source /root/test2.sql

--start-date 起始时间
--stop-date 结束时间
或者
#./mysqlbinlog --start-date="2016-11-10 17:30:05"
--stop-date="2016-11-10 18:00:00" mysql-binlog.000002 | ./mysql -uroot -padmin test
将mysql-bin.000002日志文件中从2016-11-10 17:30:05到2016-11-10 18:00:00截止的sql语句导入到mysql中test
----如果有多个binlog文件,中间用空格隔开,打上完全路径
5、补充mysqldump备份
[root@jacky tmp]# /usr/local/mysql/bin/mysqldump -uroot -padmin test -l -F > /tmp/test.sql   #备份 数据库test到tmpl目录下的test.sql文件中
-l 表示读锁,在备份的过程中mysql不能写入数据,从而保证数据的完整性
-f 表示 flust logs,重新生成新的日志文件,当然也包括bin-log日志
./mysql -uroot -padmin test  -v -f < /tmp/test.sql   #通过/tmp/test.sql文件恢复test数据库
-v 查看导入的详细信息
-f 导入过程中遇到错误,跳过,并继续往下执行

mysql通过binlog日志来恢复数据的更多相关文章

  1. mysql 开启binlog日志,恢复误删的表、数据、mysql库

    linux下开启mysql的binlog日志功能 1.配置mysql配置文件my.cnf(内容如下). #配置文件储存的位置log-bin=mysql-bin#5.7以及以上版本需要配置这一行(保证唯 ...

  2. MYSQL使用二进制日志来恢复数据

    mysqlbinlog工具的使用,大家可以看MySQL的帮助手册.里面有详细的用, 在这个例子中,重点是--start-position参数和--stop-position参数的使用. ·--star ...

  3. 监听MySQL的binlog日志工具分析:Canal

    Canal是阿里巴巴旗下的一款开源项目,利用Java开发.主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费,目前主要支持MySQL. GitHub地址:https://github. ...

  4. 解说mysql之binlog日志以及利用binlog日志恢复数据

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

  5. Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 一 ...

  6. Mysql利用binlog日志恢复数据操作(转)

    a.开启binlog日志:1)编辑打开mysql配置文件/etc/mys.cnf[root@vm-002 ~]# vim /etc/my.cnf在[mysqld] 区块添加 log-bin=mysql ...

  7. 【转】Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

  8. MySQL二进制binlog日志说明以及利用binlog日志恢复数据

    MySQL的binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全量备份+binlog日志恢复增量数据部分). 一.关于 ...

  9. load data 方式导入的数据不可以用binlog日志进行恢复,因为binlog里面不产生insert sql语句。

    QQ群里面有人问起这个问题:    用load data 导入数据的时候,在binlog文件中记录的不是insert 语句,这样的话,如果用load data 导入数据,当需要恢复数据库的时候  bi ...

随机推荐

  1. AB串(上帝都不会,我就没救了)

    [题目分析] 设答案的长度为m,

  2. 【转】JSP总结

    day1 JSP 定义:     1)Java Server Page, Java EE 组件,本质上是 Servlet.     2)运行在 Web Container.接收 Http Reques ...

  3. Cheatsheet: 2013 11.01 ~ 11.11

    Other Back To Basics: Hashtables – Part2 How To Make A Game Part 1:Picking a Framework Modern Garbag ...

  4. Java _ JDK _ Arrays, LinkedList, ArrayList, Vector 及Stack

    (最近在看JDK源码,只是拿着它的继承图在看,但很多东西不记录仍然印象不深,所以开始记录JDK阅读系列.) (一)Arrays Arrays比较特殊,直接继承自Arrays ->List(Int ...

  5. R: NULL, NA, and NaN

    NaN (“Not a Number”) means 0/0 NA (“Not Available”) is generally interpreted as a missing value and ...

  6. GBrowse配置相关资料

    GBrowse配置相关资料(形状.颜色.配置.gff3) http://gmod.org/wiki/Glyphs_and_Glyph_Optionshttp://gmod.org/wiki/GBrow ...

  7. struts2--表单标签

    struts2的表单标签可分为两类:form标签本身和包装HTML表单元素的其他标签.form标签本身的行为不同于它内部的元素. struts2表单标签包括: form.textfield.passw ...

  8. ABAP 内表 详解

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  9. Deep Learning Workbench Installation Notes

    1. ROS Indigo (30 min) Just flow ROSWiki: http://wiki.ros.org/indigo/Installation/Ubuntu NOW simply ...

  10. 【BZOJ】4636: 蒟蒻的数列

    4636: 蒟蒻的数列 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 145  Solved: 71[Submit][Status][Discuss] ...