简介

在生产的过程中有这么一个业务场景:比如我在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恢复错误_mysql通过binlog日志来恢复数据相关推荐

  1. MySQL数据库——5分钟带你了解日志管理、数据备份与恢复!!!

    MySQL数据库--5分钟带你了解日志管理.数据备份与恢复!!! 前言 一.MySQL日志管理 1.1 日志的分类 1)错误日志 2) 通用查询日志 3) 二进制日志(binlog) 4) 慢查询日志 ...

  2. mysql binlog 恢复 表_MySQL通过Binlog恢复删除的表

    查看log-bin是否开启: mysql> show variables like '%log%bin%'; +---------------------------------+------- ...

  3. mysql binlog sql统计_mysql的binlog详解

    binlog是mysql记录操作的二进制日志文件,有三种格式可选,但是老旧的SBR已经不适合现在大多数业务需求,所以大多数都建议用MBR和RBR,即mixed或row,而解析他的原因,几乎都只有一个, ...

  4. mysql每一步花费时间_MySQL之:日志

    日志: 事务日志:transaction log 中继日志:reley log 错误日志:error log 通用日志:general log 慢查询日志:slow query log 二进制日志:b ...

  5. mysql异机还原_MySQL innobackupex全量备份恢复

    转自 http://blog.itpub.net/27099995/viewspace-1295099/ 先简单介绍一下这个工具:innobackupex innobackupex比xtarbacku ...

  6. mysql 报1055错误_MySQL数据库报1055错误

    有点坑啊,当初装MySQL数据库的时候没有整配置文件,结果MySQL报1055错误的时候,网上的解决办法都说如果需要永久生效的话,只能通过改配置文件实现,but,我没有配置文件,蜜汁尴尬啊 1.已安装 ...

  7. mysql数据库实验任务二_MySQL数据库实验:任务二 表数据的插入、修改及删除

    任务二 表数据的插入.修改及删除 @[toc] 班级 姓名 软件工程16-9班 洪燕妮 [实训目的与要求] 1.利用MySQL命令行窗口进行增.删.改数据操作: 2.利用界面工具进行增.删.改数据操作 ...

  8. mysql 后10条_Mysql 保留最新的10条数据

    Mysql每天执行计划,保留最新的10条数据,其余的删除 1.Mysql 保留最新的10条数据 sql语句: DELETE tb FROM tbname AS tb,( SELECT id FROM ...

  9. mysql 创建重复数据库_MySQL数据库,如何处理重复的数据?

    前言 这是一个基本问题,这篇文章是我很早之前遇到的一种情况,后来在学习视频的时候又遇到了一次,因此给出一个总结.其实解决能否插入重复数据的问题,一般情况下是有两个思路,就像治水一样,第一个就是从源头, ...

最新文章

  1. 2020年高等数学方法与提高(上海理工大学)学习笔记汇总
  2. 以太坊节点布置(3) 启动geth客户端
  3. pycharm 怎么查看函数信息?
  4. .net framework处理xml
  5. 离线安装 Android 4.0 SDK
  6. UserWarning: Matplotlib is currently using agg,which is a non-GUI backend, so cannot show the figure
  7. eclipse jstl包_我的Java Web之路41 - JSTL初步使用
  8. mac系统安装python(2.7)requests库
  9. English Resources
  10. Python_装饰器精讲_33
  11. mysql碎片data free_浅析MySQL数据碎片的产生(data free)
  12. Navicat安装配置
  13. 常见病饮食宜忌速查手册
  14. 褚时健去世,柳传志发悼词:我非常钦佩褚老
  15. 我的世界java怎么自制皮肤_我的世界手机版皮肤怎么做 自己做皮肤教程
  16. 桌面支持--skype登陆不上
  17. php mysql 家谱_mysql家谱表查询某人所有后代
  18. linux读写mac HFS+
  19. Springboot游戏道具在线交易平台毕业设计源码171956
  20. JavaScript中函数里的arguments属性

热门文章

  1. 使用python爬取视频
  2. 三菱触摸屏usb驱动安装_2020年三菱EXPRESS SWB和LWB:竟然是日系中唯一没有屏幕的面包车...
  3. 区分HPUX是Itanium还是PA-RISC
  4. 内核方式挂载cephfs
  5. day 2 基本类型和函数
  6. URI、URL以及URN的区别
  7. (转)Unity3D - 性能优化之Draw Call
  8. C#动态加载DLL(转)
  9. PHP安装与使用VLD查看opcode代码【PHP安装第三方扩展的方法】
  10. PHP源代码分析-字符串搜索系列函数实现详解