一、xtrabackup增量备份
1.增量备份过程
- 每次增量备份都会生成一个以时间命名的备份目录,用以存放所有增量备份的数据。
- 第1次增量备份
--incremental-basedir=
要指向上一次完全备份的路径,而后每一次增量备份--incremental-basedir=
都要指向上一次增量的备份。
- 增量备份目录中的
“xtrabackup_checkpoints”
文件backup_type = incremental
表示当前备份的类型。
- 增量备份仅能应用于InnoDB或XtraDB表,对于MyISAM表而言,执行增量备份实际上进行的是完全备份。
2.第1次增量备份
1 2 3 4 5 6
| innobackupex --defaults-file=/data/mysql_data_3306/my.cnf --user=mysqlbackup --password=76qbg20WV7dk3KUE --incremental /backup/mysql/ --incremental-basedir=/backup/mysql/2018-06-11_07-56-10/
--defaults-file 主配置文件 --incremental 增量备份的存储路径,会生成一个当前系统时间命名的目录 --incremental-basedir 第一次增量备份,指向上一次全量备份的目录
|
xtrabackup_checkpoints 查看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| $ cat xtrabackup_checkpoints backup_type = full-prepared from_lsn = 0 to_lsn = 12868004 last_lsn = 12868004 compact = 0 recover_binlog_info = 0
$ cat xtrabackup_checkpoints backup_type = incremental from_lsn = 12868004 to_lsn = 12892972 last_lsn = 12892972 compact = 0 recover_binlog_info = 0
|
3.第2次增量备份
1 2 3 4 5 6 7 8 9 10 11 12 13
| $ innobackupex --defaults-file=/data/mysql_data_3306/my.cnf --user=mysqlbackup --password=76qbg20WV7dk3KUE --incremental /backup/mysql/ --incremental-basedir=/backup/mysql/2018-06-11_10-31-07/
--incremental-basedir 第二次增量备份,指向上一次增量备份的目录
$ cat xtrabackup_checkpoints backup_type = incremental from_lsn = 12892972 to_lsn = 12896938 last_lsn = 12896938 compact = 0 recover_binlog_info = 0
|
二、xtrabackup增量恢复
1.增量恢复过程
- 恢复增量备份到完全备份(==开始恢复的增量备份要添加
--redo-only
参数,到最后一次增量备份要去掉--redo-only
==)
- 对整体的完全备份进行恢复
--apply-log
,回滚未提交的数据
- 完全备份恢复
--copy-back
2.增量恢复
准备+整合增量
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| innobackupex --apply-log --redo-only /backup/mysql/2018-06-11_07-56-10/
innobackupex --apply-log --redo-only /backup/mysql/2018-06-11_07-56-10/ --incremental-dir=/backup/mysql/2018-06-11_10-31-07/
innobackupex --apply-log /backup/mysql/2018-06-11_07-56-10/ --incremental-dir=/backup/mysql/2018-06-11_10-38-55/
$ du -sh * 647M 2018-06-11_07-56-10
|
把所有合在一起的完全备份整体进行一次--apply-log
操作,回滚未提交的数据
1
| $ innobackupex --apply-log /backup/mysql/2018-06-11_07-56-10/
|
全量恢复
1
| $ innobackupex --defaults-file=/data/mysql_data_3306.201806111057/my.cnf --copy-back /backup/mysql/2018-06-11_07-56-10/
|