环境:Linux
服务器:1.135
增量备份的恢复主要3个步骤
1、恢复完全备份
2、恢复增量备份到完全备份(开始恢复的增量备份要添加–redo-only参数,到最后一次增量备份去掉–redo-only参数)
3、对整体的完全备份进行恢复,回滚那些未提交的数据
备份
在另外一台测试上面做了一个全量备份和两个增量的备份,把数据传到1.135上开始恢复。
全量备份的文件目录是:/data/mysql_backup/xtrabackup/full/2020-08-19_15-12-39/
增量备份的文件目录是:/data/mysql_backup/xtrabackup/incr/2020-08-19_15-12-39/2020-08-20_10-43-43
/data/mysql_backup/xtrabackup/incr/2020-08-19_15-12-39/2020-08-20_10-53-46
因为备份都是压缩的备份,所以在恢复的时候首先得解压。
#解压全备文件
innobackupex --decompress /data/mysql_backup/xtrabackup/full/2020-08-19_15-12-39/
#解压增备文件
innobackupex --decompress /data/mysql_backup/xtrabackup/incr/2020-08-19_15-12-39/2020-08-20_10-43-43/
innobackupex --decompress /data/mysql_backup/xtrabackup/incr/2020-08-19_15-12-39/2020-08-20_10-53-46/
准备阶段
完全备份的还原
恢复完全备份(注意这里一定要加–redo-only参数,该参数的意思是只应用xtrabackup日志中已提交的事务数据,不回滚还未提交的数据)
innobackupex --defaults-file=/ect/my.cnf --apply-log --redo-only \
/data/mysql_backup/xtrabackup/full/2020-08-19_15-12-39/
注意如果后续必须应用增量备份,则必须加上–redo-only. 否则后续不能应用增量备份。如果在恢复全备时没有应用参数–redo-only ,后面应用增量备份时会报错误。只有当最后一个增量备份时,才不需要–redo-only。
如果分不清增量备份先后顺序,可以在备份文件的目录下可以查看备份的记录信息。查看from_lsn、to_lsn 、last_lsn 的值来判断先后顺序。
[root@135mysqlyd /data/mysql_backup/xtrabackup/full/2020-08-19_15-12-39]# cat xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 17151505
last_lsn = 17151514
compact = 0
recover_binlog_info = 0
增量备份1的还原
准备第一个增量备份的还原,注意需要添加–redo-only 参数
innobackupex --defaults-file=/ect/my.cnf --apply-log --redo-only \
/data/mysql_backup/xtrabackup/full/2020-08-19_15-12-39/ \
--incremental-dir=/data/mysql_backup/xtrabackup/incr/2020-08-19_15-12-39/2020-08-20_10-43-43/
注意:增量备份必须按一定顺序Apply,否则后面的增量备份都无效了!
增量备份2的还原
因为是最后一个增量,所以不需要再添加–redo-only
innobackupex --defaults-file=/ect/my.cnf --apply-log \
/data/mysql_backup/xtrabackup/full/2020-08-19_15-12-39/ \
--incremental-dir=/data/mysql_backup/xtrabackup/incr/2020-08-19_15-12-39/2020-08-20_10-53-46/
恢复
停止mysql的服务,并且清空数据目录
[root@135mysql ~]# service mysql stop
Stopping mysql (via systemctl): [ OK ]
[root@135mysql ~]# rm -rf /data/mysql/mysql3306/data/*
将备份文件拷贝回MySQL数据目录。
innobackupex --defaults-file=/etc/my.cnf --copy-back /data/mysql_backup/xtrabackup/full/2020-08-19_15-12-39/
配置权限
[root@135mysql ~]# chown -R mysql:mysql /data/mysql/
启动数据库检查数据
[root@135mysql ~]# service mysql start