xtrabackup做全量备份和增量备份

安装xtrabackup开源备份工具

1、上传相应的软件包和依赖库

2、安装依赖库

[root@localhost ~]# rpm -ivh libev-4.15-3.el7.x86_64.rpm

3、安装xtrabackup软件,出错,是因为有些依赖包没有安装。

[root@localhost ~]# rpm -ivh libev-4.15-3.el7.x86_64.rpm

可以使用yum安装

[root@localhost ~]# yum -y install  percona-xtrabackup-24-2.4.7-2.el7.x86_64.rpm

使用 admin 用户名和 123456 密码连接到数据库,并执行全量备份操作,将备份文件保存到 /full_xtrabackup 目录下。

innobackupex --user=admin --password=123456 /full_xtrabackup

使用xtrabackup做全量备份

mysql8.0版本不适用

1、准备数据

2、准备一个数据库备份账号,并开通相应的权限

创建admin备份用户,并授予相应权限

mysql> grant reload,process,lock tables,replication client on *.* to 'admin'@'localhost' identified by '123456';

replication client  用于获取二进制文件的

process   显示有关在服务器中执行的线程信息

3、使用innobackupex工具进行备份

[root@localhost ~]# innobackupex --user=admin --password=123456 /full_xtrabackup

报错,错误原因是

原因1,可能是/etc/my.cnf文件影响innobackupex的执行

原因2,innobackupex拥有自己的默认配置,默认读取了/var/lib/mysql/mysql.sock文件

解决方案:

方案一,将你的套接字文件创建一个软连接,放置于/var/lib/mysql/mysql.sock文件中

mkdir /var/lib/mysql

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

方案二,在innobackupex中添加一个-S选项,执行套接字

innobackupex -S /tmp/mysql.sock --user=admin --password=123456 /full_xtrabackup

重启一下mysql

service mysql_3306 restart

再执行以下

innobackupex --user=admin --password=123456 /full_xtrabackup

4、预备阶段,把备份这段时间内产生的日志整合到全量备份中

[root@localhost ~]# innobackupex --user=admin --password=123456 --apply0-log /full_xtrabackup/2024-12-20_06-47-46

5、模拟数据库故障

[root@localhost mysql_3306]# rm -rf /mysql_3306/data/*

[root@localhost mysql_3306]# pkill mysqld 

6、快速的恢复数据库中的数据

[root@localhost ~]# innobackupex --copy-back /full_xtrabackup/2024-12-20_06-47-46

出现以上问题的主要原因在于,innobackupex工具无法找到MySQL中的数据目录

解决方案:把my.cnf配置文件传递给innobackupex,让其自动识别这个文件中的 datadir

[root@localhost ~]# innobackupex --defaults-file=/mysql_3306/my.cnf --copy-back /full_xtrabackup/2024-12-20_06-47-46

7、恢复数据时,一定要记得更改/mysql_3306/data目录下的文件拥有者以 及所属组权限,否则mysql无法启动

[root@localhost ~]# chown -R mysql.mysql /mysql_3306/data

8、启动MySQL,测试是否正常

service mysql_3306 start

mysql -p

使用xtrabackup做增量备份

1、准备数据

2、准备一个数据库备份账号,并开通相应的权限

创建admin备份用户,并授予相应权限

mysql> grant reload,process,lock tables,replication client on *.* to 'admin'@'localhost' identified by '123456';

replication client  用于获取二进制文件的

process   显示有关在服务器中执行的线程信息

3、使用innobackupex工具进行全量备份

[root@localhost ~]#rm -rf /full_xtrabackup/*

[root@localhost ~]# innobackupex --user=admin --password=123456 /full_xtrabackup

4、把全备过程中产生的日志进行整合

[root@localhost ~]# innobackupex --user=admin --password=123456 --apply-log- --redo-only /full_xtrabackup/2024-12-20_06-47-46

--apply-log 表示整合日志

--redo-only 表示只应用以及提交的事务,不回滚未提交的事务(12:00~12:30产生很多事务操作,事务处理=>开启事务,成功了提交事务,写入磁盘,失败了回滚事务,不写 入硬盘)

5、修改数据(进行增删改操作,让其产生增量数据)

插入了两条数据

insert into db_sql.t1 values (2,'王朗');

insert into db_sql.t1 values (3,'貂蝉');

6、开始做增量备份

[root@localhost ~]# innobackupex --user=admin --password=123456 --incremental /incre_backup --incremental-basedir=/full_xtrabackup/2024-12-20_06-47-46

--incremental 增量备份目录

--incremental-basedir 这个增量是相对于哪个全量的

7、把增量备份产生的数据以及日志文件整合到全量备份中

[root@localhost ~]# innobackupex --user=admin --password=123456 --apply-log- --redo-only /full_xtrabackup/2024-12-20_06-47-46 --incremental-dir=/incre_backup/2024-12-20_22-42-54

1.--redo-only除了最后一个不用加之外,其他的增量应用都要加,最后一个应用的时候可

以直接进入回滚未提交事务阶段;如果加了也没事,服务启动的时候会进入recovery过

程,来回滚

2.应用增量备份的时候只能按照备份的顺序来应用。如果应用顺序错误,那么备份就不可

用。如果无法确定顺序,可以使用xtrabackup-checkpoints来确定顺序。

周天做了一个全量,周一、周二、周三、周四、周五、周六全部做增量,到此,增量备份就全部结束了。

使用xtrabackup进行数据恢复

模拟数据库故障

[root@localhost ~]# rm -rf /mysql_3306/data/*

[root@localhost ~]# pkill mysqld

恢复数据

[root@localhost ~]# innobackupex --defaults-file=/mysql_3306/my.cnf --user=admin --password=123456 --copy-back /full_xtrabackup/2024-12-20_06-47-46/

如果出现以下错误,是/mysql_3306/data 目录下面的数据没有删除干净,在删除一次,再执行上面指令

[root@localhost ~]# rm -rf /mysql_3306/data/*

同时再赋予这个目录的读权限

chown -R mysql.mysql /mysql_3306/data

启动数据库测试是否正常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值