生产级mysql双写_生产级Mysql物理增量备份-Xtrabackup

percona-xtrabackup

xtrabackup工具既支持全量备份也支持增量备份,前面文章我们讲解了全量备份的实现,本文继续讲解如何实现增量备份。创建的目录和数据库复用前面的【生产级Mysql物理量备份-Xtrabackup】文章。

https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/incremental_backup.html

备份和恢复

1、先执行全量备份,可以复用前面章节的全量备份

xtrabackup --backup --target-dir=/opt/backup/mysql/physical/full/first

可以通过less /opt/backup/mysql/physical/full/first/xtrabackup_checkpoints查看检查点信息。注意backup_type为full-backuped,from_lsn是备份的起始LSN,to_lsn是结束LSN,下一次增量备份的from_lsn正确应该和上一次的to_lsn相同。

9c0a0f5529e1b08b2432233067c4e826.png

2、模拟往数据库test_backup的sys_log表先插入数据

use test_backup;select * from sys_log;insert into sys_log(log_id)values(1);

9238822e1487dafa1cddff9f542db4dd.png

3、基于全量备份进行inc1增量备份

xtrabackup \--backup \--target-dir=/opt/backup/mysql/physical/increment/inc1 \--incremental-basedir=/opt/backup/mysql/physical/full/first

--incremental-basedir:基于某个全量备份目录

可以通过less /opt/backup/mysql/physical/increment/inc1/xtrabackup_checkpoints查看检查点信息。

8cfca1eb5e36261be9bb7229c0de2dc5.png

注意它们的backup_type是不同的,另外from_lsn和之前全量备份的to_lsn是相同的。

4、继续模拟插入第二条数据

use test_backup;select * from sys_log;insert into sys_log(log_id)values(2);

9dd94342ae066282d5615b7429d0b3ab.png

5、基于上一次inc1增量备份进行新的inc2增量备份

xtrabackup \--backup \--target-dir=/opt/backup/mysql/physical/increment/inc2 \--incremental-basedir=/opt/backup/mysql/physical/increment/inc1

可以通过less /opt/backup/mysql/physical/increment/inc2/xtrabackup_checkpoints查看检查点信息。

e7cc8b84187cae6a6c56b2d28609c266.png

第二个增量备份的from_lsn和第一个增量备份inc1的to_lsn是相同的。

6、模拟误删除包含在增量备份后的新增那两条数据

delete from sys_log where log_id = 1;delete from sys_log where log_id = 2;

b564d4394b3b6f8e2fe90703309eafeb.png

可以看到两条数据被误删除了。

7、准备增量恢复

现在我们备份顺序是这样的:

/opt/backup/mysql/physical/full/first/opt/backup/mysql/physical/increment/inc1/opt/backup/mysql/physical/increment/inc2

因为所有增量备份都是基于某个全量备份,所以准备增量备份前要先准备那个全量备份,注意增量恢复需要使用--apply-log-only选项阻止回滚阶段,如果不使用该选项来阻止回滚阶段,那么增量备份将毫无用处。发生回滚事务后,无法应用进一步的增量备份:

xtrabackup --prepare \--apply-log-only \--target-dir=/opt/backup/mysql/physical/full/first

将增量备份inc1应用到全量备份first中:

xtrabackup \--prepare \--apply-log-only \--target-dir=/opt/backup/mysql/physical/full/first \--incremental-dir=/opt/backup/mysql/physical/increment/inc1

8、先恢复第一次增量,确认log_id为1的那条数据是否恢复成功

service mysql stoprm -rf /usr/local/mysql/data/*xtrabackup --copy-back --target-dir=/opt/backup/mysql/physical/full/firstchown mysql:mysql -R /usr/local/mysql/service mysql start

可以看到,第一条误删的数据已还原。

e8b40607c878e518bf3284eddae2c2e9.png

9、继续将增量备份inc2应用到增量备份inc1中。

xtrabackup \--prepare \--apply-log-only \--target-dir=/opt/backup/mysql/physical/full/first \--incremental-dir=/opt/backup/mysql/physical/increment/inc2

10、参照第8个步骤恢复第二个增量备份,然后可以看到第二条误删的数据也回来了

service mysql stoprm -rf /usr/local/mysql/data/*xtrabackup --copy-back --target-dir=/opt/backup/mysql/physical/full/firstchown mysql:mysql -R /usr/local/mysql/service mysql start

736f489853215ad79a8b446c89d6747e.png

上面我们演示了如何使用Percona-Xtrabackup工具实现物理增量热备份。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值