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.增量备份1

mysql -uroot -p'LiuDeHua@123'
create database inc1;
create table inc1.t1 (id int,name varchar(10));
use inc1;
insert into t1 values (1,'增量备份'),(2,'增量备份');
select * from t1;
\q

2.开始增量备份

xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup/inc1 --incremental-basedir=/data/backup/base -uroot -p'LiuDeHua@123' -H localhost -P 3306 --no-server-version-check
--defaults-file 		默认文件
--backup        		备份
--target-dir    		备份存放的目录,要单独存放 此时为/data/backup/inc1/
						注意此时就不要放在完全备份的文件夹(data/backup/base)中
						如果还放在这里,无法进行区分,会产生冲突
incremental-basedir  	增量备份参照的文件(参照谁进行增量)

查看备份是否成功

ls /data/backup/inc1

3.增量备份2
修改数据

mysql -uroot -p'LiuDeHua@123'
use inc1;
insert into t1 values (3,'增量备份'),(4,'增量备份');
select * from t1;
\q

开始备份

xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup/inc2 --incremental-basedir=/data/backup/inc1 -uroot -p'LiuDeHua@123' -H localhost --no-server-version-check
--target-dir=/data/backup/inc2/ 			用了存储第二次的增量备份文件
incremental-basedir=/data/backup/inc1/  	第二次要参照第一次进行备份(增量备份参照上一次)

查看备份是否成功

ls /data/backup/inc2

4.恢复增量备份

  • 还原的时候,要先准备好完整备份
  • 然后再还原增量备份,这样数据才是完整的

注意最后一次把增量备份恢复到全部不要加 --apply-log-only(表示后面还有备份)

应用完整备份

xtrabackup --defaults-file=/etc/my.cnf --prepare --apply-log-only --target-dir=/data/backup/base --no-server-version-check

应用增量备份1

xtrabackup --defaults-file=/etc/my.cnf --prepare --apply-log-only --target-dir=/data/backup/base --incremental-basedir=/data/backup/inc1 --no-server-version-check

应用增量备份2 注意此时不需要加–apply-log-only

xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/backup/base --incremental-basedir=/data/backup/inc2 --no-server-version-check

恢复到数据目录
全库级恢复要先停止数据库并清空数据目录
如果不这样做,当前数据库内有某张表,又还原进同样的表,会产生冲突

systemctl stop mysqld
rm -rf /var/lib/msyql/*
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/data/backup/base  

将备份文件的文件属主属组设为msyql

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

启动msyql

systemctl start msyqld

获取默认密码,修改密码

awk '/password/ {print $NF}' /var/log/mysqld.log
mysqladmin -uroot -p"获取的默认密码" password "新密码"

登录msqyl,查看数据库

msyql -uroot -p'密码'
show databases;
use inc1;
show tables;
select * from t1;
  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值