MySQL 增量备份详解:轻松实现数据备份与恢复(mysql 如何增量备份)
MySQL 增量备份是一种将MySQL在一定周期内数据发生变化的部分(Incremental changes)记录在离线的备份介质中的备份形式。由于只备份发生改变的数据,因此所需的备份空间更小,更有利于恢复,也可以更快的完成备份工作,因此在备份策略方面成为必选之一。
MySQL 增量备份有很多种方式:其中最常用的是利用 MySQL binary log 文件(MySQL数据库操作记录日志)来实现。此方法可以使我们轻松实现数据备份与恢复功能,而不需要改变任何客户端的设置。当然 MySQL目前还有其他的备份方式:xtrabackup 、mysqldump等。
MySQL binlog 实现增量备份需要先启用binlog日志,并且指定其记录哪些SQL语句,一般情况下我们会选择’row-based’ 模式,这样binlog按行记录发生变化的数据行,这也是恢复最简单的办法。
src/main/mysql/binlog.cnf
server_id=1
log_bin=/var/lib/mysql/binlog.logbinlog_format=row
MySQL 通过两个函数可以实现增量备份:
1. SHOW BINLOG EVENTS
该函数可以查询添加、删除、更新的增量变更信息,可以用来将变更迁移到另一个数据库中,这样可以支持多个数据库的同步:
SHOW BINLOG EVENTS IN 'binlog.log' FROM 192291 TO 192460
2. SHOW MASTER STATUS
该函数可以查询最新的一次binlog的变更记录,包括binlog文件名称,文件大小,变更记录号等,我们可以用来判断最新的一次备份,这样就可以使用更快的方式实现备份:
SHOW MASTER STATUS;
因此MySQL增量备份非常实用,可以用它更加高效的执行数据备份与恢复,非常适合大数据量且频繁变更的数据库。