CentOS9中MySQL8数据库备份--差异备份

1.关于备份:

MySQL中有完全备份、增量备份和差异备份三种常见的备份策略,这次使用差异备份

定义:差异备份备份自上一次完全备份以来发生变化的数据。
特点:也依赖于完全备份,但与增量备份不同,它只关注自上一次完全备份以来的变化,不考虑增量备份。
优点:备份文件相对较小,比完全备份节省空间。恢复过程相对增量备份简单,因为只需结合最近一次完全备份和差异备份
缺点:恢复时需要结合完全备份和差异备份,可能稍慢于完全备份恢复。浪费一定空间,因为每次差异备份都会包含自上次完全备份以来的所有变化。

2.下载备份软件percona-xtrabackup80(mysql80)

官网

安装yum仓库
YUM安装perconna仓库

yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm

如果无法直接安装,可以尝试先下载,再安装

wget https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install -y percona-release-latest.noarch.rpm

安装之前先启用perconna仓库

percona-release enable-only tools release

注意:xtrabackup8.0只支持mysql8.0以上的版本,mysql5.7或以下需要使用xtrabackup8.0以下的版本

yum install percona-xtrabackup-83

3.差异备份

不管是什么备份,首先都要进行一次完整备份

只需准备第一次和最后一次即可

1、清理之前的备份内容

  rm -rf /data/backup/ 

2、进行完整备份

   mkdir  -p   /data/backup/
    xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup/base/  -uroot -pLiuDeHua@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 -pLiuDeHua@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 -pLiuDeHua@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 -pLiuDeHua@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

登录msqyl,查看数据库

msyql -uroot -p'密码'
show databases;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值