zoukankan      html  css  js  c++  java
  • mysql增量备份(1/2)

    转自:http://www.centos.bz/2012/11/mysql-incremental-backup/

    小量的数据库我们可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,我们就不太可能每天进行一次完整备份了,而且改成每周一次完整备份,每天一次增量备份类似这样的备份策略。增量备份的原理就是使用了mysql的二进制日志,所以我们必须启用二进制日志功能。

    一、增量备份

    1、比如我们在星期天下午11点做一次完整备份:

    mysqldump --single-transaction --flush-logs --master-data=2 --all-databases > fullbackup_sunday_11_PM.sql

    在sql文件中我们会看到两行:

    -- Position to start replication or point-in-time recovery from
    -- CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000002', MASTER_LOG_POS=107;

    第二行包含了我们需要的信息,是指备份后所有的更改将会保存到bin-log.000002二进制文件中。
      2、然后在星期一下午11点我们来做一次增量备份:

    mysqladmin flush-logs

      这时将会产生一个新的二进制日志文件bin-log.000003,bin-log.000002则保存了自星期天下午11点到现在的所有更改,我们只需要把这个文件备份到安全的地方就行了。然后星期二我们又做增量备份,还是执行同样的命令,这时我们保存bin-log.000003文件。

    二、恢复备份

    比如星期三中午12点出现了故障,这时需要恢复,我们首先导入星期天的完整备份:

    mysql < fullbackup_sunday_3_AM.sql

      接着我们导入星期一和星期二的增量备份:

    mysqlbinlog bin-log.000002 bin-log.000003 | mysql

      这时我们已经恢复了所有备份数据,我们还可以找到bin-log.000004,进一步恢复最新的数据。

  • 相关阅读:
    模糊查询(排除%等通配符并支持不连续关键字查询)
    ideal中运行manven常用操作
    ideal项目启动及问题
    FastJSON 转换List<T> ,Map<T,T>泛型失败 处理方法
    MySQL的SELECT ...for update
    CouchDB客户端开发—Java版
    Spring Data JPA 实例查询
    第一章 计算机网络概述
    第二章 物理层(二)
    Java常考面试题(一)
  • 原文地址:https://www.cnblogs.com/tv151579/p/3383437.html
Copyright © 2011-2022 走看看