zoukankan      html  css  js  c++  java
  • mysql通过binlog日志来恢复数据

    简介

    在生产的过程中有这么一个业务场景:比如我在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 导入过程中遇到错误,跳过,并继续往下执行
  • 相关阅读:
    Android 自定义android控件EditText边框背景
    Android安全问题 静音拍照与被拍
    Android 自绘TextView解决提前换行问题,支持图文混排
    Android EditText属性
    Android invalidate()自动清屏,屏幕刷新
    Cocos2d-x 3.0final 终结者系列教程12-Vector&amp;map&amp;value
    思维方式--SMART原则
    从.net复制源代码中国农历阵列,必要做日历
    POJ 3071-Football(可能性dp)
    mongodb group包(最具体的、最受欢迎、最容易理解的解释)
  • 原文地址:https://www.cnblogs.com/520playboy/p/6081599.html
Copyright © 2011-2022 走看看