在MySQL数据库中,备份支持增量备份的。如果每次都使用全量备份,很消耗性能不说,还占用磁盘空间。

mysql-bin

增量备份是依靠mysql-bin日志生成增量数据,因此,需要打开mysql-bin日志

[mysqld]

binlog_format = MIXED #binlog日志格式

log_bin = /data/mysql/log/mysql-bin.log #binlog日志名

expire_logs_days = 7 #binlog过期清理时间

全量备份

全量备份是增量备份的基础,增量备份需要依赖与全量备份才能恢复。

mysqldump -uroot -ppassword –all-databases –flush-logs –delete-master-logs –single-transaction | gzip >> /data/backup/2018_10_07/all_dbs_2018_10_07.sql.gz

–flush-logs 为结束当前日志,生成新日志文件;

–delete-master-logs 清除之前的日志,注意,备份之前最好讲日志也增量备份一下

–single-transaction 保证备份的一致性 ,采用会话隔离。

增量备份

在全量备份的时候,已经之前的日志清楚,因此只要备份mysqlbin日志就可以 。

rsync -avy /data/mysql/log/mysql-bin.log* /data/backup/2018_10_07/

备份恢复

先全量恢复,将全量压缩文件解压,然后使用mysql命令进行导入

mysql > source /data/backup/2018_10_07/all_dbs_2018_10_07.sql

然后在使用mysqlbin将日志解析成sql语句导入

mysqlbin /data/backup/2018_10_07/mysql-bin.000006 | mysql -u root

总结

备份很重要,主要经过多次测试再上线。不然数据丢失,就只能跑路了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注