• ADADADADAD

    MySQL 增量备份与还原[ mysql数据库 ]

    mysql数据库 时间:2024-12-25 09:55:01

    作者:文/会员上传

    简介:

    说明:所谓增量备份,就是备份自上一次备份之后增加或改变的文件或内容。然而MySQL没有提供直接的增量备份方法,但是却可以通过MySQL的二进制日志间接实现增量备份。下面有关操作

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    说明:
    所谓增量备份,就是备份自上一次备份之后增加或改变的文件或内容。然而MySQL没有提供直接的增量备份方法,但是却可以通过MySQL的二进制日志间接实现增量备份。下面有关操作方法进行测试。
    .
    .
    实验环境:装有MySQL 5.7 数据库的CentOS7虚拟机一台
    .
    .
    实验步骤如下:
    .
    .
    1 .进入配置文件添加二进制日志
    vim/etc/my.cnf
    [mysqld]
    在其中插入二进制日志
    log_bin=mysql-bin #二进制日志

    .
    .
    2 . 然后重启数据库,到日志文件目录下查看一下

    .
    .
    3 . 新建数据库,并在其中新建数据表,写入数据

    .
    .
    4 .重新生成一个日志文件,这样刚才的操作步骤都会保存在第一个二进制文件中
    mysqladmin-uroot-pflush-logs#重新生成二进制文件

    .
    .
    5 . 将刚才新建的数据库删除,然后使用恢复命令恢复数据库
    mysqlbinlog--no-defaultsmysql-bin.000001|mysql-uroot-p #日志文件恢复


    .
    .
    6 . 可以查看到数据库已经被恢复好

    .
    .
    7 .接下来,测试误操作之后的恢复(两种方法,一是利用时间点,二是利用位置点)先进行时间点的操作
    在表中插入数据
    下一步,删除表中一条数据(误操作)
    然后再插入一条数据
    这样,误操作的一条命令已经被覆盖

    .
    .
    8 . 重新生成一个二进制日志
    mysqladmin-uroot-pflush-logs#创建新日志

    .
    .
    9 . mysqlbinlog --no-defaults --base64-output=decode-rows -vmysql-bin.000002#64位解码查看日志文件,防乱码
    在其中需要找到两个时间点
    (1) 删除数据的时间点
    (2) 删除之后下一步正确操作时间点


    .
    .
    10 . 找到两个时间点之后,用这两个时间点进行恢复
    mysqlbinlog --no-defaults --stop-datetime='2018-09-03 16:38:08' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#恢复到错误时间点
    mysqlbinlog --no-defaults --start-datetime='2018-09-03 16:39:08' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#从下一个正确时间点恢复

    .
    .
    11 . 这样被误删除的数据就恢复好了

    .
    .
    12 . 下面根据位置点,再进行恢复
    同样把数据恢复到误删除

    .
    .
    13 . mysqlbinlog --no-defaults --base64-output=decode-rows -vmysql-bin.000002 #64位解码查看日志文件,防乱码
    找到错误点执行的命令后,复制上一次可正确执行的位置(at后面就是位置号)
    然后找到下一次可执行的命令,同样复制上一次可正确执行的位置


    .
    .
    14 . 利用位置点进行恢复
    mysqlbinlog --no-defaults --stop-datetime='1950' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#恢复到错误时间点
    mysqlbinlog --no-defaults --start-datetime='2223' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#从下一个正确时间点恢复
    最后查看结果,测试完成

    MySQL 增量备份与还原.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载