美文网首页
Mysql全量备份加binlog日志恢复数据

Mysql全量备份加binlog日志恢复数据

作者: 君子愁 | 来源:发表于2019-11-27 15:08 被阅读0次

    一天,不小心删除了一个表。drop table student;  (非gtid主从)

    此时主从mysql的这个表都被删除了,此时怎么恢复。

    1.先停止数据库再写入数据,可以停了应用,或者启动服务器上的防火墙

    2.在每天凌晨0点,备份前天的全量备份数据


    做个全量备份数据模拟:

    /usr/local/mysql/bin/mysqldump -uroot -p123456 --master-data=2 --single-transaction -R -B --triggers --databases mei > 20191127.txt

    先查看一下student表的内容

    然后今天往这个表里插入了几条数据

    然后手贱,把student表删除了

    下面开始来进行恢复。

    先查看一下备份文件,head  -n 30   20191127.txt

    找到上一次备份的时候,备份到哪个binlog的哪个位置了

    然后获取从这个binlog文件的这个位置开始的内容
    /usr/local/mysql/bin/mysqlbinlog --no-defaults -vv -d mei --start-position=7546 /data/mysql/datanode1/bin-log-mysqld5.000005 > 20191127all.sql

    如果内容被插入到了两个binlog文件,那么这语句执行两次就可以了

    /usr/local/mysql/bin/mysqlbinlog --no-defaults -vv -d mei --start-position=7546 /data/mysql/datanode1/bin-log-mysqld5.000005 > 20191127all.sql

    /usr/local/mysql/bin/mysqlbinlog --no-defaults -vv -d mei  /data/mysql/datanode1/bin-log-mysqld5.000006 >>20191127all.sql

    把20191127all.sql里面的drop table mei;这一句删除

    grep -n  "drop table mei"  20191127all.sql;    #通过grep找到需要删除的语句位于第几行

    sed -i '87,93d' 20191127all.sql      #删除87到93行

    开始恢复内容

    先恢复全备数据

    /usr/local/mysql/bin/mysql -uroot -p123456 <20191127.txt 

    然后恢复增量的数据

    /usr/local/mysql/bin/mysql -uroot -p123456 <20191127all.sql 

    查看内容


    相关文章

      网友评论

          本文标题:Mysql全量备份加binlog日志恢复数据

          本文链接:https://www.haomeiwen.com/subject/qpypwctx.html