简介

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

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

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

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

  3. mysql binlog elk_利用MySQL的binlog日志文件恢复数据库

    一.新建一个数据库test 在库里新建一个数据表test ,并插入几条数据 mysql>create database test CHARSET utf8; Query OK, 1 row af ...

  4. mysql二进制日志转sql_MySQL使用二进制日志来恢复数据(转)

    MySQL使用二进制日志来恢复数据(转) mysqlbinlog工具的使用,大家可以看MySQL的帮助手册.里面有详细的用, 在这个例子中,重点是--start-position参数和--stop-p ...

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

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

  6. 使用MySQL的binlog日志恢复误删数据

    使用binlog日志恢复误删数据 1.查看binlog是否开启并锁表 # 进入mysql mysql -uroot -proot#查看binlog是否开启 show variables like '% ...

  7. Mysql基于binlog日志恢复数据

    Mysql基于binlog日志恢复数据 1.Linux安装mysql https://blog.csdn.net/qq_44981526/article/details/126717005 可能遇到的 ...

  8. mysql binlog 过滤表_mysql日志恢复指定表【从binlog日志过滤恢复指定数据表】

    很多时候,MYSQL数据库由于一些误操作,需要恢复指定表,或某个表指定时间点的数据,这个时候需要根据MYSQL的binlog日志做时间点的恢复,下面将介绍这个方案的具体步骤: 一.登录数据库刷新bin ...

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

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

最新文章

  1. 规则引擎 drools_为什么要用规则引擎?
  2. 十五天精通WCF——第十四天 一起聊聊FaultException
  3. 1.9 Java 9增强的自动资源管理
  4. 比较 Excel 中两列的差异,并用箭头标识和指向匹配结果
  5. 腾讯暑期日常实习前端面试
  6. linux安装了vnc服务器,Linux安装VNC服务及配置
  7. python中startswith()函数的用法
  8. mysql——逗号分割字段情况
  9. linux向用户发送消息,Linux终端中向记录的用户发送消息
  10. Visual Studio 2008 可扩展性开发(八):关于用户界面的种种(上)
  11. PathProber:基于暴力破解方法探测和发现HTTP路径名
  12. 曲线与曲面积分公式整理
  13. 计算机培训机构年终总结范文,2020老师培训年终工作总结范文5篇
  14. 算法注册机编写扫盲---第五课
  15. Mono.Cecil使用示例之给UnityEditor.dll中的ConsoleWindow添加双击委托
  16. 在任意文件夹下以管理员的身份运行powershell
  17. 3dmax渲染软件有哪些?哪个好用
  18. android 页面边框设置
  19. Linux 下Nginx开启status用以监控状态信息
  20. php中电话号码输入框,php中固定电话号码和手机号码正则表达式验证

热门文章

  1. ITK:从二进制图像中的对象计算距离图
  2. VTK:Utilities之DiscretizableColorTransferFunction
  3. VTK:PolyData之IntersectionPolyDataFilter
  4. Qt将应用程序部署到Android设备
  5. C语言实现线索二叉树Threaded Binary Tree (附完整源码)
  6. QT的QAssociativeIterable类的使用
  7. C++继承中的普通函数,纯虚函数、虚函数
  8. C++11- const, const expression和constexpr
  9. C语言中的一维数组和二维数组
  10. alexnet训练多久收敛_卷积神经网络之AlexNet