mysql增量备份(1/2)
2013-10-23 00:44
218 查看
转自:http://www.centos.bz/2012/11/mysql-incremental-backup/
小量的数据库我们可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,我们就不太可能每天进行一次完整备份了,而且改成每周一次完整备份,每天一次增量备份类似这样的备份策略。增量备份的原理就是使用了mysql的二进制日志,所以我们必须启用二进制日志功能。
在sql文件中我们会看到两行:
第二行包含了我们需要的信息,是指备份后所有的更改将会保存到bin-log.000002二进制文件中。
2、然后在星期一下午11点我们来做一次增量备份:
这时将会产生一个新的二进制日志文件bin-log.000003,bin-log.000002则保存了自星期天下午11点到现在的所有更改,我们只需要把这个文件备份到安全的地方就行了。然后星期二我们又做增量备份,还是执行同样的命令,这时我们保存bin-log.000003文件。
接着我们导入星期一和星期二的增量备份:
这时我们已经恢复了所有备份数据,我们还可以找到bin-log.000004,进一步恢复最新的数据。
小量的数据库我们可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,我们就不太可能每天进行一次完整备份了,而且改成每周一次完整备份,每天一次增量备份类似这样的备份策略。增量备份的原理就是使用了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,进一步恢复最新的数据。
相关文章推荐
- mysql数据库binlog丢失引起的问题
- MySQL性能建议者:mysqltuner.pl
- 解决mysql图形管理器乱码问题
- MySQL 默认校验规则不区分大小写
- 给mysql添加用户,并赋予相应的权限
- MySQL中使用load data命令实现数据导入的方法
- mysql中的load命令使用方法
- MySQl命令行打不开(闪一下消失)的解决办法
- Win7下MySQL解压缩版安装配置
- JSP:连接数据库mysql
- mysql权限管理
- 韩顺平 Mysql数据库优化(一) 优化概述
- 高性能的MySQL(5)索引策略-索引案例分析
- mysql中Duplicate entry '0' for key 1错误。
- Mysql创建的定时器去处理存储过程
- 升级win8.1后---mysql 启动不了 can't connect mysql server on 'localhost' 10061
- Mysql中空间扩展 - 查询你附近的餐厅或酒店
- mysql 日期比较及日期函数用法
- mysql中CONV('6E',18,8)的陷阱
- Mysql安装后简单入门