ITPub博客

首页 > 数据库 > 数据库开发技术 > 使用XtraBackup备份MySQL 8.0 Part 7 对增量备份进行恢复

使用XtraBackup备份MySQL 8.0 Part 7 对增量备份进行恢复

原创 数据库开发技术 作者:ibsbforever 时间:2020-05-15 21:27:00 0 删除 编辑

 

往期专题请查看
这是一个坚持Oracle,Python,MySQL原创内容的公众号



实验环境

前面我们介绍了Xtrabackup 2.4版本的介绍,这个专题说8.0版本

大体上差不多,不过8.0版本移除了innobackupex命令且只能备份8.0版本的MySQL


此次实验的环境如下

  • MySQL 8.0.19

  • Redhat 7.4

  • 操作系统账号:mysql

  • 数据库备份账号:backup

1. prepare阶段

上节我们介绍了如何使用xtrabackup对数据库进行增量备份,分别为base,incr1以及incr2

结束后我们得到了非一致性的备份文件,即需要对未提交的事务进行回滚以及对提交的事务进行前滚

这个过程在xtrabackup中叫做准备阶段(prepare stage)

这个阶段完成后该备份文件就可被使用

你可以在任何机器上prepare


2. prepare 备份

通过上一节内容我们有如下备份内容

第一次全备第一次增量备份第二次增量备份我们同样使用--apply-log进行恢复动作,相当于Oracle的recover动作

我们需要依次进行prepare,即按照如下步骤进行

prepare第一次全备prepare第一次增量备份prepare第二次增量备份还有需要注意的是和prepare全备不一样,除了最后一步,我们需要加上--apply-log-only

该参数使prepare只对commit过的语句进行提交,而不是回滚未提交的语句,这样做是为了能够继续prepare

如果没有加上--apply-log-only则prepare过的数据文件为一致状态,无法继续prepare

如果内存有空闲,可使用--use-memory加快速度

2.1 prepare全备

xtrabackup使用“embedded InnoDB”来进行实例恢复

xtrabackup --prepare --apply-log-only --use-memory=1G  --target-dir=/data/mysql/backup/base

结束后会出现如下提示

Shutdown completed; log sequence number 21071372
200401 15:59:13 completed OK!

这时数据文件处于非一致状态

2.2 prepare 第一次增量备份

xtrabackup --prepare --apply-log-only --use-memory=1G  --target-dir=/data/mysql/backup/base  --incremental-dir=/data/backups/inc1

这时已经将第一次增量备份的内容附加到了全备的数据文件上了

这时数据文件处于非一致状态

2.3  prepare 第二次增量备份

由于我们只有2个增量备份,所以这是最后一次prepare,所以不需要加--apply-log-only参数

xtrabackup --prepare  -use-memory=1G  --target-dir=/data/mysql/backup/base  --incremental-dir=/data/backups/inc2

3. copy 数据文件

这个阶段我们使用--copy-back将prepare过的数据文件拷贝至需要还原的服务器的datadir目录

我们需要注意如下几点

  • xtrabackup 读取my.cnf文件获取数据文件(datadir)位置

  • datadir目录必须为空

  • 命令允许用户必须对datadir目录有读写权限

  • 使用datadir目录的数据库实例必须关闭

xtrabackup --copy-back  --target-dir=/data/mysql/backup/base

如何磁盘空间不大,我们可以使用--move-back参数在拷贝完成后删除备份文件

同样结束后会显示completed OK字样

4. 启动数据库

首先我们需要注意下文件的权限,如果不是使用mysql账号执行的备份和恢复,首先要更改权限

$ chown -R mysql:mysql /var/lib/mysql

最后我们启动数据库即可

systemctl start mysqld


到这里我们完成使用xtrabackup进行完全备份和还原


4. 参考资料

本专题所有内容翻译子Percona XtraBackup的官方文档

可通过如下链接下载http:///mysql/xtrabackup8/tutorial1/


点击阅读原文获得更好的阅读体验,推荐在PC端阅读

也可在公众站内搜索中回复  MySQL 搜索相关内容

或直接打开个人网页搜索


http://


往期专题包括:


  • Python 自动化运维

  • MySQL  安装

  • mysqldump命令详解

  • mysqlbinlog命令详解

  • xtrabackup工具详解

  • 打造属于自己的监控系统

  • Python爬虫基础

  • Oracle awr报告全解析

  • Oracle ASM全解析

  • Oracle Data Guard全解析

  • Oracle ClusterWare全解析

  • Oracle常见参数解析

  • Oracle常见故障处理

  • Oracle SQL优化案例


觉得文章不错的欢迎关注,转发,收藏,点赞~

原文作者:宅必备;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
Oracle,MySQL DBA,Python自动化运维

注册时间:2019-01-29

  • 博文量
    245
  • 访问量
    243879