简介

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

  1. mysql binlog恢复错误_mysql通过binlog日志来恢复数据

    简介 在生产的过程中有这么一个业务场景:比如我在2016-11-19 09:30:00 通过mysqldump的方式备份了数据库,但是在2016-11-19 10:30:00的时候数据库崩溃了,如果通 ...

  2. mysql日志恢复数据_Mysql 通过binlog日志恢复数据

    Binlog日志,即binary log,是二进制日志文件,有两个作用,一个是增量备份,另一个是主从复制,即主节点维护一个binlog日志文件,从节点从binlog中同步数据,也可以通过binlog日 ...

  3. mysql 3种报错_MySQL读取Binlog日志常见的3种错误-阿里云开发者社区

    MySQL读取Binlog日志常见的3种错误 mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4' 当我们在my. ...

  4. mysql没开启binlog恢复数据_MySQL:binlog恢复数据

    如果删库了,先别急着跑路. binlog是MySQL的二进制日志,会记录我们的操作.删除的数据可以通过binlog恢复,不过要先开启binlog功能,编辑my.cnf文件完成下面配置后重启. log- ...

  5. mysql重做日志恢复数据_MySQL中重做日志,回滚日志,以及二进制日志的简单总结...

    MySQL中有六种日志文件, 分别是:重做日志(redo log).回滚日志(undo log).二进制日志(binlog).错误日志(errorlog).慢查询日志(slow query log). ...

  6. mysql未开启binlog恢复_mysql 开启binlog,并恢复数据操作

    binlog是二进制日志文件,用于记录mysql的数据变更,数据在恢复的时候binlog日志能起到很大的作用.mysql的主从复制就是利用的binlog原理 本文目录 一.开启binlog 二.测试数 ...

  7. mysql历史日志文件_MySQL 历史 binlog 日志处理

    MySQL 历史 binlog 日志处理 一.问题的引出 MySQL binlog 如果不清理会占用服务器的空间,那么怎么处理binlog日志呢 二.解决办法 1.物理删除 df -Th 查看磁盘空间 ...

  8. mysql根据idb还原数据_mysql通过idb文件,恢复数据库

    原因: 由于一次未知原因,服务器停机后,导致数据库不能启动,由于刚接手项目,对此数据库的配置不是那么清晰,分析了很多,最后还是没发正常启动.由于发现数据idb文件还在,最后就采取了险招,重新安装mys ...

  9. mysql查binlog删除时间_mysql的binlog日志删除查询

    最近发现mysql的binlog日志一直在被删除中...导致从机出错后没法排查问题. 查阅资料后,发现配置文件的expire_logs_days的参数是保存binlog日志的时间参数.mysql> ...

最新文章

  1. centos 安装mysql5.6.20_CentOS 7 安装MySQL 5.6遇到的疑难杂症小结
  2. 【 Vivado 】时钟类型
  3. 【错误记录】Flutter 应用运行卡在 Running Gradle task ‘assembleDebug‘... ( 配置阿里云 Maven 仓库镜像 )
  4. python函数修饰器_Python函数装饰器指南
  5. 设计模式学习笔记十:单例模式(Singleton Pattern)
  6. [DB]mysql 及sql server2005下实现分页效果的sql语句
  7. Unix系统的diff工具程序
  8. 用 TStringList 模拟 将字符串转换为变量的功能 - 回复 flq_00000 和 外来天客 的问题...
  9. KeyRaider:迄今最大规模的苹果账号泄露事件
  10. 3dmax渲染器下载VRay4.1渲染器下载安装教程(支持3dmax2013-2019)
  11. 计算机类专业数学分数,同济大学计算机专业数学分数
  12. 人工智能简史+电子版原文
  13. python对文本的处理_Python 基础 - 对文本的处理
  14. 合天网安实验室-sql注入实验一
  15. 免费录屏软件哪个好用 ? 7 款免费又好用的录屏工具 , 打工人必备
  16. 10个全网最具创意的聊天机器人:漫威和联合国儿童基金会都在尝试使用聊天机器人
  17. VC++图像加密软件设计与实现
  18. css编辑器推荐-Stylizer 与 Stylizer破解
  19. 七日杀服务器怎么修改天数,七日杀游戏里怎么修改天数 | 手游网游页游攻略大全...
  20. ebay 后台HTML有尺寸宽度要求吗,eBay产品尺码问题需要注意的事项

热门文章

  1. 【kafka】kafka 新增节点 报错 InconsistentBrokerIdException Configured broker.id doesn‘t match
  2. 【elasticsearch】elasticsearch 生命周期 resourceAlreadyExistsException
  3. 【java】java中的线程池 ThreadPoolExecutor源码分析
  4. 【MySQL】mysql查看库 表占用存储空间大小
  5. 95-150-020-源码-Sink-PrintSinkFunction
  6. 95-280-037-源码-资源管理-计算资源管理-TaskSlot-ResourceManage 中 Slot 的管理
  7. ORA-28009:connection as SYS should be as SYSDBA OR SYSOPER
  8. 《spring-boot学习》-03-入门
  9. 用了这么久 IDEA,你真熟悉它的自动补全功能吗?
  10. Java多线程学习三十五: CyclicBarrier 和 CountDownLatch 有什么不同