xtrabackup模拟增量备份与恢复

--增量备份语句:
innobackupex --defaults-file=/etc/my.3306.cnf --user=root --password= --socket=/tmp/mysql_3306.sock --incremental /database/3306/xtrabak2/  --incermental-basedir=/database/3306/xtrabak/2018-01-27_06-50-31


--no-timestamp阻止自动创建以时间命名的目录(认为参数意义不大)
如果有多个增量备份,依次类推把全量的备份更换成上一次的增量备份。

--检查两个备份的xtrabackup_checkpoints
备份完成之后查看全量备份和增量备份的xtrabackup_checkpoints比对里面的lsn号码
##全量备份
[root@localhost 2018-01-12_09-04-45]# cat xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 2641072
last_lsn = 2641081
compact = 0
recover_binlog_info = 0

##增量备份
[root@localhost 2018-01-12_09-14-07]# cat xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 2641072
to_lsn = 2646834
last_lsn = 2646843
compact = 0
recover_binlog_info = 0

##
增量备份的from_lsn是从全量备份的to_lsn = 2641072开始即为增量备份成功。

--模拟数据的损坏
mv data/ data_bak/


--准备恢复数据
##准备全量备份
innobackupex --defaults-file=/etc/my.3306.cnf --apply-log --redo-only --user=root --password='' /database/3306/xtra-full/2018-01-10_16-01-52/

##准备增量备份
innobackupex --apply-log /database/3306/xtra-full/2018-01-12_09-04-45/  --incremental-dir=/database/3306/xtra-incremental/2018-01-12_09-14-07/

##关于--redo-only选项有说最后一次加的,有说最后一次不加的,没有测试两个的区别,所以在此没做测试,我没加。 ##--redo-only 只有一次增备,所以不需要加这个参数,如果有N次增备,依次恢复增备,除了最后一个每次都要加 --redo-only的参数
##准备工作做好后查看完全备份的xtrabackup_checkpoints是否和增量备份里面的xtrabackup_checkpoints保持相同。相同为准备成功。

--恢复
 innobackupex --defaults-file=/etc/my.3306.cnf  --copy-back /database/3306/xtra-full/2018-01-12_09-04-45/


--改变恢复回来数据目录的属主属组
chown -R mysql.mysql daatabase/3306/



##测试恢复时应该关闭mysql数据库。我测试的时候没有关闭mysql测试库,一切的操作过程都有session窗口在连入,备份回来之后我也没有改变属主属组,查询变更后的数据是恢复回来了,但是应该再关闭mysql服务就起不来估计会。
##增量备份只针对innoDB。对于MyISAM表,其实就是全量备份(因为不支持事务);

你可能感兴趣的:(xtrabackup模拟增量备份与恢复)