1、备份并查看完整备份的LSN(log sequence number):
[root@mysql mysql]# innobackupex --user=root --password=Liang.123com /backup/mysql/
#备份
[root@mysql mysql]# cat /backup/mysql/2023-11-03_20-50-37/xtrabackup_checkpoints
#查看LSN
2、以全备创建增量备份:
[root@mysql ~]# mysql -pLiang.123com
#登录数据库
mysql> create database test_db;
#创建test_db的数据库
mysql> use test_db;
#进入数据库
mysql> create table user_tb(id int,name varchar(20));
#创建user_tb的表
mysql> insert into user_tb values(1,'Liang');
#插入数据
[root@mysql ~]# innobackupex --user=root --password=Liang.123com --incremental
/backup/mysql/ --incremental-basedir=/backup/mysql/2023-11-03_20-50-37
#--incremental 使用增量备份
#--incremental-basedir 指定上一级备份的地址来做增量备份
[root@mysql 2023-11-03_20-59-15]# cat xtrabackup_checkpoints
[root@mysql 2023-11-03_20-59-15]# cat ../2023-11-03_20-50-37/xtrabackup_checkpoints
#查看2023-11-03_20-59-15和2023-11-03_20-50-37的LSN
3、用第一次增量备份到全量备份:
[root@mysql mysql]# innobackupex --apply-log --redo-only /backup/mysql/2023-11-03_20-50-37/ --incremental-dir=/backup/mysql/2023-11-03_20-59-15
#增量备份到全量备份
#--apply-log --redo-only 先合并全备数据目录数据,确保全备数据目录数据的一致性
#--incremental-dir 指定全备目录
4、查看全量备份的 xtrabackup_checkpoints:
[root@mysql mysql]# cat 2023-11-03_20-50-37/xtrabackup_checkpoints
#查看
可以看到last_lsn 已经被应用和第一次全量备份的位置相同了
5、停止 mysql 服务、移除数据目录、恢复数据:
[root@mysql mysql]# systemctl stop mysqld
#停止mysql服务
[root@mysql mysql]# rm -rf /var/lib/mysql/*
#移除数据目录
[root@mysql mysql]# innobackupex --copy-back /backup/mysql/2023-11-03_20-50-37
#恢复数据
6、验证数据还原:
[root@mysql mysql]# ls /var/lib/mysql
7、授权并启动MySQL:
[root@mysql mysql]# chown -R mysql.mysql /var/lib/mysql
#授权
[root@mysql mysql]# systemctl start mysqld
#重启数据库
8、验证数据是否完整:
[root@mysql mysql]# mysql -uroot -p'Liang.123com'
#登录数据库
mysql> show databases;
#查看所有数据库
mysql> use test_db;
#进入test_db数据库
mysql> select * from user_tb;
#查看user_tb表