MySQL数据库全量备份的实现
两种备份方式的比较
增量备份:只备份在上次备份以来新修改的部分:当用户修改文件时,被修改的文件会加上修改标记,而增量备份就对有修改的标记的部分进行备份,当增量备份完成后会将修改标记清除,直到下一次用户修改产生新的修改标记
全量备份:将所有选择的数据库进行备份,无论是否发生修改
备份方式 | 增量备份 | 全量备份 |
---|---|---|
源数据1 | 备份操作 | 备份操作 |
备份文件 | log1(数据1) | log1(数据1) |
插入数据2 | 备份操作 | 备份操作 |
备份文件 | log2(记录插入数据2) | log2(备份数据1、2) |
不进行数据库操作 | 备份操作 | 备份操作 |
备份后 | log3(无) | log3(备份数据1、2) |
插入数据3 | log4(记录插入数据3) | log4(数据1、2、3) |
思路
1.每1小时进行增量备份操作
2.每天0点进行全量备份操作并删除前一天的所有增量备份文件
3.每一个星期删除最久的全量备份文件,即备份文件只保留一个星期
实现
1.配置
1.创建备份文件夹,day目录下保存增量备份文件
root@vultr:/home/blog# mkdir -p /home/blog/mysql/backup/day
2.编辑/etc/my.cnf文件添加如下信息,log-bin 和 log-bin-index路径按照自己的路径填写
注意配置文件中是否有其他相同配置项,如果有就进行注释不然以下配置可能会覆盖
#backup properties
log-bin = "/home/blog/mysql/logbin.log"
binlog-format = ROW
log-bin-index = "/home/blog/mysql/logindex"
binlog_cache_size=32m
max_binlog_cache_size=512m
max_binlog_size=512m
server-id=1
3.加入mysql组
一定要指定此步,否则my