=======**
物理备份之xtrabackup备份
**======
1、安装xtrabackup
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-/percona-release-0.1-3.noarch.rpm
yum -y install percona-xtrabackup-24.x86_64
A---- 完全备份流程(全量备份)
mkdir /data 存放备份文件
xtrabackup --backup --user=root --password='123' /data
ls /data/backups/2018-09_16-18-57/
可以看见一个xtrabackup_binlog_info文件里边存放的是position(但你需要此文件的话必须在配置文件中开启二进制)
恢复数据:
systemctl stop msyqld
rm -rf /var/lib/mysql/*
innobackupex --apply-log /data/2018-9_16-18-16/
innobackupex --copy-back /data/2018-9_16-18-16/
chown -R mysql.mysql /var/lib/mysql
systemctl restart mysqld
*/
B---- 增量备份流程
先做一个全量备份:
innobackupex --user=root --password='(TianYunYang123)' /data
得到一个文件,例如是2018-09_16-18-57,假设这是今天周一的数据库备份,那么针对明天以及后面的数据进行增量备份
对于后面的每天的数据采取这样方式备份:
innobackupex --user=root --password='123' \
>--incremental /data \
>--incremental -basedir=/data/2018-09_16-18-57/
(记得每一天的基于目录是针对前一天的目录即basedir,在连续进行周二到周日的备份后会得到2018-09_17-18-17,2018-09_18-14-27等等)
恢复数据:
systemctl stop mysqld
rm -rf /var/lib/mysql/*
依次进行重演回滚:
周一:full
innobackupex --apply-log --redo-only /xtrabackup/2018-09_16-18-57/
周二--周四:
innobackupex --apply-log --redo-only /xtrabackup/2018-09_16-18-57/ --incremental-dir=/xtrabackup/2018-09_17-18-17/
依次类推
innobackupex --copy-back /xtrabackup/2016-12-08_10-13-42/
(使用此工具须读取my.cnf的--datadir,而且,datadir目录必须为空目录,其中不能存数据.如果不知道可以使用cp)
[cp -rf /data/2018-09_16-18-57/* /var/lib/mysql,每次恢复始终都是拷贝全量的文件]
chown -R msyql.mysql /var/lib/mysql
systemctl restart msyqld
*****为了了能够正常的恢复数据,我们先确定数据库服务已经停止了,而且对应的数据⽬目录中不不存在数据,然后进行数据还原工作,删除数据⽬目录中的文件与日志