新版xtrabackup完全,增量备份以及还原

著名运维专家,王老师说过:一般完全备份是一周一次,增量备份是一天一次!
我一直有一个不成熟的想法,在生产中、写一个脚本,让他定时的备份!当然,目前以及未来很长一段时间将处在菜鸟阶段的我来说,这个想法,还很漫长!

实验前准备:
准备:两台主机,我这用的都是centos8,一台IP: 10.0.0.8 另外一台ip:10.0.0.18
两台都需要安装xtrabackup 软件(安装方法,详阅我上篇文章: https://blog.csdn.net/Lcongming/article/details/117064804)
建立backup文件夹 mkdir /backup/
安装msyql : yum -y install mysql-server (注意:8主机上的mysql要启用,而18主机上的mysql要关闭,并且要确保18主机里的 /var/lib/mysql下没有数据, 最好是没有/backup/这个文件夹,当然生产中的话肯定是有,这里实验环境,为了方便理解,不建议添加)
最后需要准备一个数据;我这里是直接将数据hellodb 上传到系统,,各位如果有需要的,可以私聊我一下;
上传后 将这个数据 重定向到mysql里 执行 mysql < hellodb_innodb.sql
在这里插入图片描述
在这里插入图片描述

=================================================================================================
第一步: 执行完全备份:xtrabackup -uroot --backup --target-dir=/backup/base
看到最后结果如图所示才是操作完成:
在这里插入图片描述

第二步:第一次修改数据 进入mysql
需要说明的是,修改数据可以直接
执行mysql hellodb 进入修改
或者直接运行mysql 进入后 执行use hellodb

表格原来信息:
在这里插入图片描述
执行添加: (需要注意的是,添加的命令是insert 删除是drop 查询select)
insert teachers values(null,‘wangcai’,33,‘M’);
insert teachers values(null,‘xiaoqiang’,33,‘M’);
添加后数据如下:
在这里插入图片描述
第三步:第一次执行增量备份 添加了数据就要操作,还等什么,等不了啦。。
xtrabackup -uroot --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/base
(建议:命令都手动输入,为什么,因为复制黏贴容易出错,著名运维专家王老师如是说)
在这里插入图片描述
备份后查看ll /backup/ 已经有两个文件夹了
第一个base是完全备份,第二个inc1是增量备份;

在这里插入图片描述
第四步:第二次修改数据
insert teachers values(null,‘shan xiongxin’,22,‘M’);
insert teachers values(null,‘jiang xin’,33,‘F’);
(生产中,每一天数据的更改不止这么一点,这里是做实验,所以,大家不要产生误解)
在这里插入图片描述
第五步:第二次执行增量备份** 添加了数据就要操作,还等什么,等不了啦。。
xtrabackup -uroot --backup --target-dir=/backup/inc2 --incremental-basedir=/backup/inc1

在8的主机上完成操作,现在我们要在18的主机上操作咯;
要再次确保18主机上 没有backup的文件夹 并且确保ll /var/lib/mysql/是空的
在这里插入图片描述
第一步:在8主机上执行scp -r /backup/ 10.0.0.18:/ 将数据拷贝到18
在这里插入图片描述
在18主机上查看:在备份过程生成三个备份目录
在这里插入图片描述
第二步:在18的主机上 还原过程;
步骤如下:

1)预处理,此选项–apply-log-only 阻止回滚未完成的事务
xtrabackup --prepare --apply-log-only --target-dir=/backup/base

2)合并第1次增量备份到完全备份
xtrabackup --prepare --apply-log-only --target-dir=/backup/base --incremental-dir=/backup/inc1

3)合并第2次增量备份到完全备份:最后一次还原不需要加选项–apply-log-only
xtrabackup --prepare --target-dir=/backup/base --incremental-dir=/backup/inc2

4)复制到数据库目录,注意数据库目录必须为空,MySQL服务不能启动
xtrabackup --copy-back --target-dir=/backup/base

5)还原属性:
chown -R mysql:mysql /var/lib/mysql
查看
6)启动服务:
systemctl enable --now mysqld
执行mysql 后进入 查看
在这里插入图片描述
谢谢观赏

Xtrabackup是Percona公司开发的一款MySQL备份和恢复工具,它支持增量备份,可以大大缩短备份时间,并且可以快速地进行数据恢复。下面是使用Xtrabackup进行增量备份及快速恢复的步骤: 1. 安装Xtrabackup工具:首先需要在备份服务器上安装Xtrabackup工具,可以使用yum或者apt-get等包管理器进行安装。 2. 进行全量备份:使用Xtrabackup进行全量备份,可以使用如下命令: ``` xtrabackup --backup --user=root --password=<password> --target-dir=/path/to/backup ``` 3. 进行增量备份:在进行增量备份时,需要先生成备份的binlog文件名和位置,可以使用如下命令: ``` mysql -uroot -p -e "SHOW MASTER STATUS\G" | grep File mysql -uroot -p -e "SHOW MASTER STATUS\G" | grep Position ``` 然后使用Xtrabackup进行增量备份,可以使用如下命令: ``` xtrabackup --backup --user=root --password=<password> --target-dir=/path/to/backup --incremental-dir=/path/to/incremental --incremental-basedir=/path/to/last/full/backup --slave-info ``` 其中,--incremental-basedir参数指定上一次全量备份的目录,--incremental-dir参数指定增量备份的目录。 4. 进行数据恢复:在进行数据恢复时,可以使用Xtrabackup进行快速恢复。具体的步骤如下: - 停止MySQL服务:停止MySQL服务,以便进行数据恢复。 - 恢复全量备份:使用Xtrabackup进行全量备份的恢复,可以使用如下命令: ``` xtrabackup --copy-back --target-dir=/path/to/backup ``` - 恢复增量备份:使用Xtrabackup进行增量备份的恢复,可以使用如下命令: ``` xtrabackup --apply-log --redo-only --target-dir=/path/to/backup --incremental-dir=/path/to/incremental ``` - 启动MySQL服务:启动MySQL服务并验证数据是否已经还原成功。 需要注意的是,在进行数据恢复时,需要保证备份的全量数据和增量备份的一致性和完整性,否则可能会导致数据还原失败或者数据丢失。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值