只需准备第一次和最后一次即可
1、清理之前的备份内容
rm -rf /data/backup/*
2、进行完整备份
# mkdir -p /data/backup/
# xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup/base/ -uroot -pLixinyi@123 -H localhost -P 3306 --no-server-version-check
3、添加数据
做数据修改
use add1;
insert into t1 values (5,'差异1'),(6,'差异1');
4、开始差异1:
# xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup/inc1/ --incremental-basedir=/data/backup/base/ -u root -pLixinyi@123 -H localhost -P 3306 --no-server-version-check
差异和增量备份的区别:
增量参照的目标文件是上次备份的文件
差异参照的目标文件永远是完全备份的文件
5、再次修改数据
use add1;
insert into t1 values (7,'差异2'),(8,'差异2');
6、开始差异2
只需修改备份的位置,参照文件不变
# xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup/inc2/ --incremental-basedir=/data/backup/base/ -u root -pLixinyi@123 -H localhost -P 3306 --no-server-version-check
7、第三次修改数据
use add1;
insert into t1 values (9,'差异3'),(10,'差异3');
8、开始差异备份3
只需修改备份的位置,参照文件不变
# xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup/inc3/ --incremental-basedir=/data/backup/base/ -u root -pLixinyi@123 -H localhost -P 3306 --no-server-version-check
# ls /data/backup/
base inc1 inc2 inc3
恢复差异备份
差异备份恢复,只需准备第一次的,和要恢复的那次备份
1、应用完整备份:
xtrabackup --defaults-file=/etc/my.cnf --prepare --apply-log-only --target-dir=/data/backup/base/ --no-server-version-check
2、应用最后一次的差异备份(此处以恢复最后一次为例):
–apply-log-only不要写这个
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/backup/base/ --incremental-dir=/data/backup/inc3/ --no-server-version-check
3、清库
删库
# systemctl stop mysqld
# rm -rf /var/lib/mysql/*
开始恢复
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/data/backup/base/
授权
chown -R mysql.mysql /var/lib/mysql
重启并登录数据库
systemctl restart mysqld
mysql -uroot -p'Lixinyi@123'
标签:--,backup,备份,MySQL,data,差异,dir
From: https://blog.csdn.net/l_789rty/article/details/140447462