Mysqlbackup 8全备增量备份还原案例

                            Mysqlbackup 8增量备份还原图解

声明

本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理。

:1 当前验证环境CentOS 8 X86 64、mysql 8.0.23、mysqlbackup 8.0.23

        2 部分操作详见代码处注释

        3 Mysqlbackup 8.0.23 备份还原图解

        4 当然备份时也可以采用image的形式--backup-image

前期准备

增量备份,又称为差异备份是基于某个全备而作的备份。它相对于全备份而言备份量较小,但备份和还原时必须依附这个全备。

首先创建个表以验证增量(差异)备份,思路见下:

  1. 在全备前建立一张表,并插入一条数据;然后做全备;
  2. 插入第二条数据,然后基于之前全备做增量(差异)备份
  3. 插入第三条记录后还原数据库以验证差异备份的效果。
#在trial数据库内新建立表
use trial;
create table test_04251019
(id int,
name varchar(10),
addr varchar(12),
memo varchar(40)
)

INSERT INTO test_04251019 VALUES(1,'test_incr','Guangzhou','Fullbakup');
commit;

全备

#命令行执行全备命令
#这里的 -- backup-dir即备份的目录,因有with-timestamp则会自动生成时间戳对应的文件夹)
mysqlbackup --defaults-file=/etc/my.cnf --socket=/var/lib/mysql/mysql.sock --user=mysqlbak --password='root@1234T5' --backup-dir=/root/workspace/mysqlbackup/bakSpace_0425 --with-timestamp backup

增量备

-- 再次插入增量的数据,一条id为2的数据。
INSERT INTO test_04251019 VALUES(2,'test_incr','Guangzhou','in increament');
commit;
# 执行增量备份的命令
# 其中--incremental-base对应上一步全备的路径
# 增量 (差异)备份的路径--incremental-backup-dir可以直接指定,无需实现创建。
mysqlbackup --defaults-file=/etc/my.cnf --socket=/var/lib/mysql/mysql.sock --user=mysqlbak --password='root@1234T5' --with-timestamp --incremental --incremental-backup-dir=/root/workspace/mysqlbackup/bakSpace_0425/incre/ --incremental-base=dir:/root/workspace/mysqlbackup/bakSpace_0425/2021-04-25_14-08-15/ backup

增量备后

-- 增量备份后(此步为验证增量备份还原的效果):
INSERT INTO test_04251019 VALUES(3,'test_incr','Guangzhou','after increament');
commit;
-- 增量备份后当前数据库的数据状态:
SELECT * FROM test_04251019

还原

还原前

-- 关闭mysql数据库服务
mysqladmin -uroot -p'root1234' shutdown

还原中

# Step 1 首先对全备应用apply_log
mysqlbackup --backup-dir=/root/workspace/mysqlbackup/bakSpace_0425/2021-04-25_14-08-15/ apply-log

# Step2 对在全备的基础对增量进行恢复
mysqlbackup --backup-dir=/root/workspace/mysqlbackup/bakSpace_0425/2021-04-25_14-08-15/ --incremental-backup-dir=/root/workspace/mysqlbackup/bakSpace_0425/incre/2021-04-25_14-22-21 apply-incremental-backup

# Step 3 覆盖现有数据库数据文件还原
mysqlbackup --defaults-file=/etc/my.cnf --force --backup-dir=/root/workspace/mysqlbackup/bakSpace_0425/2021-04-25_14-08-15/ --datadir=/data/mysql copy-back-and-apply-log

:这里的错误是因为copy-back-and-apply-log参数有误,不影响结果,问题分析见文末处。

还原后

Step 1 重启mysql数据库服务

#重启mysql数据库服务
service mysqld start

Step 2 还原前后对比,还原后:

--  查看数据库还原后当前表数据
SELECT * FROM test_04251019

由此可见数据库已经还原到增量(差异)备份时的状态。 

问题

命令参数错误

Issue 1:该问题是因为还原中环节mysqlbackup命令参数使用不当导致。

 解决方法: 将参数copy-back-and-apply-log修改成copy-back。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShenLiang2025

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值