mysql数据库自动化完整备份和增量备份

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库自动化完整备份和增量备份相关的知识,希望对你有一定的参考价值。

mysql数据库自动化完整备份和增量备份

 

 

增量备份,为了增强mysql数据库的安全性和完整性,需要对数据进行备份。这里我们采用的策略是每周五下午5:30进行一次完整备份;每天的6:00、12:10、17:00进行增量备份。

1.完整备份脚本如下:(备份之后并打包存储)

    技术分享

2.增量备份脚本如下(将生成的二进制文件内容读取出来并导入一个新的sql文件中)

  技术分享

   增量备份的前提时,要在mysql的配置文件里打开二进制功能:

     log-bin=mysql

3.将这两个加进计划任务里

   技术分享

4.执行结果:

数据库备份全部文件存放路径:/backup/mysqldb_full

数据库增量备份存放路径:/backup/mysqldb_add

 完整备份的文件: (路径在/backup/mysqldb-full/20150525,以每天的日期作为文件名,*full.sql为完整备份文件,*add.sql为增量备份文件)

技术分享 

 

打包的备份文件:(路径在 /backup/mysql_backup)

技术分享 

生成的二进制文件:

技术分享 

5.数据恢复:

 1)恢复完整备份方式;

     

mysql -p  < full.sql


  (2) 恢复增量备份

     

mysqladmin bin-log.000001 | mysql -uroot -p


基于时间点的恢复
如果误删了一张表,使用完全恢复是没有用的,因为日志里同样也保留着删除的sql语句,所以我们需要恢复到误操作前的状态,然后跳过误操作的语句。
假如我在20:00误删了一张表,可以使用以下语句恢复:

mysqlbinlog --stop-date=‘2012-06-05 19:59:59‘ /var/log/mysql-bin.000001 | mysql -uroot -p


跳过误删除的时间点,再执行:

mysqlbinlog --start-date=‘2012-06-05 20:01:00‘ /var/log/mysql-bin.000001 | mysql -uroot -p


基于位置点的恢复
基于位置点的恢复可以得到更为精确的数据。
技术分享如上图,drop table test这条语句的起始位置是889107,终止位置是889189,那么我们可以使用于以下语句进行恢复:

mysqlbinlog --stop-position=‘889107‘ /var/lib/mysql/mysql-bin.000001|mysql -uroot -p
mysqlbinlog --start-position=‘889189‘ /var/lib/mysql/mysql-bin.000001|mysql -uroot -p



本文出自 “清淼淡写” 博客,请务必保留此出处http://qingmiao.blog.51cto.com/7286083/1936828

以上是关于mysql数据库自动化完整备份和增量备份的主要内容,如果未能解决你的问题,请参考以下文章

Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)

Windows MySql增量备份完整备份采坑之路

MySQL备份与还原

MySQL的备份与还原,非常规备份,全量备份,增量备份

MySQL增量备份与恢复实例

Mysql增量备份与恢复实例