Linux系统下MySQL 8.4的Percona XtraBackup备份策略详解

一、Percona XtraBackup简介

Percona XtraBackup是MySQL数据库的一款开源热备份工具,特别适用于InnoDB/XtraDB存储引擎,能够在不锁表的情况下执行物理备份。相比逻辑备份工具如mysqldump,XtraBackup具有备份速度快、恢复速度快、对生产系统影响小等优势。

二、下载Percona XtraBackup软件包

下载地址:

https://downloads.percona.com/downloads/Percona-XtraBackup-8.4/Percona-XtraBackup-8.4.0-2/binary/redhat/9/x86_64/percona-xtrabackup-84-8.4.0-2.1.el9.x86_64.rpm(地址可能会变动)

三、使用wget下载软件包

wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.4/Percona-XtraBackup-8.4.0-2/binary/redhat/9/x86_64/percona-xtrabackup-84-8.4.0-2.1.el9.x86_64.rpm

安装下载的软件包

yum install -y percona-xtrabackup-84-8.4.0-2.1.el9.x86_64.rpm

四、进行完整备份

(一) 1.创建一个备份的文件夹:mkdir /mysql_bk
   2.开始备份(备份时不能停止数据库):

xtrabackup --defaults-file=/etc/my.cnf(数据库文件存放的位置)--backup --target-dir=(备份后文件存放的位置) -u root -p'密码' -H localhost -P 3306

最后一行提示ok即可:

3.备份完成后可以查看是否备份完成可以查看下备份文件夹下是否有内容:

ls /mysql_bk

(二)测试

1.清理数据库的内容(不建议这里仅用于测试)

数据库文件内容存放在 /var/lib/mysql/

rm -rf /var/lib/mysql/*

2.删除后可以查看里面是否还有内容

ls /var/lib/mysql/

(三)恢复

1.准备备份文件:xtrabackup --prepare --target-dir=(备份文件夹的路径)

最后一行提示ok即可

2.进行恢复:

xtrabackup --default-file=/etc/my.cnf --copy-back --target-dir=(备份文件夹的路径)

最后一行提示ok即可

3.进行授权

由于是用root账号进行备份的因此备份文件夹已经内容都是属于root,需要将mysql用户进行授权

chown -R mysql.mysql /var/lib/mysql

(四)备份完成进行测试

1.重新启动数据库:systemctl restart mysqld

2.登录数据库:mysql -u root -p

五、增量备份

1.进行增量备份之前需要先做一次完整备份(上面已经做过一次完整备份)

2.在数据库中变更一些数据

4.创建增量备份的文件夹

5.开始做增量备份:

xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=(创建文件夹的路径) --incremental-basedir=(第一次完整备份的路径,如果还要进行下一次的增量备份这个路径就不能填第一次完整备份的路径,需要填上一次增量备份的路径) -u root -p'密码' -H localhost -P 3306

6.恢复增量备份:

准备完整备份: xtrabackup --defaults-file=/etc/my.cnf --prepare --apply-log-only --target-dir=(第一次完整备份路径)

准备增量备份:xtrabackup --defaults-file=/etc/my.cnf --prepare --apply-log-only(最后一个增量备份一定不要加这个) --target-dir=(完整备份路径) --incremental-dir=(第一次增量备份的路径)

恢复到数据目录:关闭数据库:systemctl stop mysqld

删除数据库内容:rm -rf /var/lib/mysql/*(不建议)

将数据拷贝回至数据库:xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=(完整备份路径)

修改权限:chown -R mysql.mysql /var/lib/mysql

重新启动数据库:systemctl restart mysqld

进入数据库查看数据已经恢复

六、差异备份(只需要第一次和最后一次)

1.进行一次完整备份

2.在数据库中变更一些数据

3.开始做增量备份:

xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=(将文件想要存放的路径) --incremental-basedir=(同上一致)  -u root -p'密码' -H localhost -P 3306

4.在数据库中变更一些数据

5.做差异备份:

xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=(将文件想要存放的路径) --incremental-basedir=(第一天完整备份路径,不再是增量备份路径)  -u root -p'密码' -H localhost -P 3306

7.在数据库中变更一些数据

8.做差异备份:

xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=(将文件想要存放的路径) --incremental-basedir=(第一天完整备份路径,不再是增量备份路径)  -u root -p'密码' -H localhost -P 3306

9.恢复:

准备完整备份:

xtrabackup --defaults-file=/etc/my.cnf --prepare --apply-log-only --target-dir=(第一次完整备份路径)

直接准备最后一次:

xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=(完整备份路径) --incremental-dir=(放最后一次备份文件存放的路径)

恢复到数据目录:关闭数据库:systemctl stop mysqld

删除数据库内容:rm -rf /var/lib/mysql/*(不建议)

将数据拷贝回至数据库:xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=(完整备份路径)

修改权限:chown -R mysql.mysql /var/lib/mysql

重新启动数据库:systemctl restart mysqld

进入数据库查看数据已经恢复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值