wpabbs 2018-10-08
在MySQL数据库中,备份支持增量备份的。如果每次都使用全量备份,很消耗性能不说,还占用磁盘空间。
增量备份是依靠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
备份很重要,主要经过多次测试再上线。不然数据丢失,就只能跑路了。