一、测试前准备
![](https://www.f11.cn/uploads/allimg/240916/2311044929-0.png)
mysql数据库
端口 |
3306 |
数据文件目录 |
/data/mysql/3306/data
|
安装目录 |
/usr/lcoal/mysql |
配置文件 |
/etc/my.cnf |
创建数据库
testXtra
创建备份目录
备份目录 |
/data/backup/ |
备份恢复数据文件目录 |
/data/mysql/3307/data |
备份恢复配置文件 |
/etc/my_3307.cnf |
二、开始测试
1、全量备份数据库
命令:
xtrabackup --user=root --password=mysql --backup --parallel=10 --target-dir=/data/backup/full
![](https://www.f11.cn/uploads/allimg/240916/231104A32-1.png)
2、全量备份恢复(先准备,再恢复)
(1)准备
xtrabackup --prepare --use-memory=2G --target-dir=/data/backup/full
![](https://www.f11.cn/uploads/allimg/240916/231104MR-2.png)
![](https://www.f11.cn/uploads/allimg/240916/2311046119-3.png)
(2)恢复
恢复的机器必须有my.cnf配置文件,再配置文件中配置好datadir目录即数据问目录,数据目录也必须为空,若不为空则会报错。
测试在本机恢复
vi my_3307.cnf
[client]
socket=/data/mysql/3307/data/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/3307/data
user=mysql
port=3307
socket=/data/mysql/3307/data/mysql.sock
log_error=/data/mysql/3307/data/mysqld.err
log_timestamps=system
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/data/mysql/3307/data/mysqld.err
pid-file=/data/mysql/3307/data/mysqld.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
恢复命令
xtrabackup --defaults-file=/etc/my_3307.cnf --copy-back --parallel=10 --target-dir=/data/backup/full
![](https://www.f11.cn/uploads/allimg/240916/231104K00-4.png)
![](https://www.f11.cn/uploads/allimg/240916/2311041S0-5.png)
![](https://www.f11.cn/uploads/allimg/240916/231104EH-6.png)
(3)授权
chown -R mysql.mysql /data/mysql/3307/data
(4)启动数据库实例
mysqld_safe --defaults-file=/etc/my_3307.cnf &
![](https://www.f11.cn/uploads/allimg/240916/231104C45-7.png)
(5)grep mysql
![](https://www.f11.cn/uploads/allimg/240916/231104J02-8.png)
(6)查看备份文件
![](https://www.f11.cn/uploads/allimg/240916/2311041457-9.png)
三、增量备份
1、先全量备份
xtrabackup --user=root --password=mysql --backup --target-dir=/data/backup/base
![](https://www.f11.cn/uploads/allimg/240916/23110411U-10.png)
2、全量备份之后增加些数据
![](https://www.f11.cn/uploads/allimg/240916/2311044254-11.png)
3、第一次增量备份
增量备份需要获取全量备份的to_lsn。
(1)查看全量备份的to_lsn
cd /data/backup/base
cat xtrabackup_checkpoints
![](https://www.f11.cn/uploads/allimg/240916/2311043564-12.png)
如上图to_lsn=18374406
(2)第一次增量备份的命令
xtrabackup --user=root --password=mysql --backup --target-dir=/data/backup/inc4 --incremental-lsn=18374406
![](https://www.f11.cn/uploads/allimg/240916/23110425B-13.png)
![](https://www.f11.cn/uploads/allimg/240916/2311043108-14.png)
可以看到inc4是第一次增量备份生成的文件
(3)检查下备份文件是否有新增的数据文件
![](https://www.f11.cn/uploads/allimg/240916/2311045547-15.png)
可以看到test2表空间
4、第二次增量备份
(1)添加些数据
![](https://www.f11.cn/uploads/allimg/240916/2311043R8-16.png)
(2)查看第一次增量备份文件的to_lsn
![](https://www.f11.cn/uploads/allimg/240916/2311043114-17.png)
(3)第二次增量备份的命令
xtrabackup --user=root --password=mysql --backup --target-dir=/data/backup/inc5 --incremental-lsn=18411278
![](https://www.f11.cn/uploads/allimg/240916/2311041J2-18.png)
5、增量备份恢复步骤
(1) 全量备份准备
xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base
![](https://www.f11.cn/uploads/allimg/240916/231104Dc-19.png)
(2)第一次增量备份准备
xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base --incremental-dir=/data/backup/inc4
![](https://www.f11.cn/uploads/allimg/240916/2311045351-20.png)
(3)第二次增量备份准备
xtrabackup --prepare --target-dir=/data/backup/base --incremental-dir=/data/backup/inc5
![](https://www.f11.cn/uploads/allimg/240916/2311043614-21.png)
(4)修改配置文件
vi /etc/my_3307.cnf
[client]
socket=/data/mysql/3307/data/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/3307/data
user=mysql
port=3307
socket=/data/mysql/3307/data/mysql.sock
log_error=/data/mysql/3307/data/mysqld.err
log_timestamps=system
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/data/mysql/3307/data/mysqld.err
pid-file=/data/mysql/3307/data/mysqld.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
(5)恢复命令
xtrabackup --defaults-file=/etc/my_3307.cnf --copy-back --target-dir=/data/backup/base
(6)检查备份的数据文件
![](https://www.f11.cn/uploads/allimg/240916/231104A22-22.png)
可以看到第一次增量备份后新增的表空间被恢复了。
(7)启动备份的数据库实例
![](https://www.f11.cn/uploads/allimg/240916/23110434G-23.png)
(8)grep mysql
![](https://www.f11.cn/uploads/allimg/240916/231104K27-24.png)
(9)登录数据库实例
![](https://www.f11.cn/uploads/allimg/240916/2311045132-25.png)