当前位置:   article > 正文

xtrabackup简介及使用_xtrabackup和innobackupex区别

xtrabackup和innobackupex区别

xtrabackup简介及使用

一、简介

Xtrabackup 是 MySQL 社区唯一一款开源物理热备工具,早期xtrabackup包含两个主要的工具,即xtrabackup和innobackupex。

  • 二者区别如下:

    1)xtrabackup 2.3 只能备份innodb和xtradb两种引擎的表,而不能备份myisam引擎的表,2.3版本以后支持myisam引擎表;

    2)innobackupex是一个封装了xtrabackup的Perl脚本,支持同时备份innodb和myisam,但在对myisam备份时需要加一个全局的读锁。myisam不支持增量备份

  • 2.4版本后innobackupex被集成到了xtrabackup ,并从产品中删除innobackupex指令

  • Xtrabackup 2.4 适用于 MySQL 5.6 和 MySQL 5.7。

  • Xtrabackup 8.0 适用于 MySQL 8.0。

  • Xtrabackup 8.1 适用于 MySQL 8.1。

注意,三个版本不能混用,因为 MySQL 8.0 版本 redo log 和数据字典格式都发生了变化,可能会出现不兼容的情况。

二、特点

  • 优点:
1)支持官方mysql、Percona、MariaDB.
2)支持在线热备,不会影响正在执行的事务,对服务器不会带来性能问题。
3)备份速度快
4)支持压缩
5)支持加密
6)支持自动实现备份检验
7)恢复速度快
8)支持在线迁移表
9)支持创建一个slave从库
10)支持并行
11)支持全备、增量
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 缺点:
1)不支持脱产备份
2)不支持备份到磁带设备
3)不支持云备份
4)备份myiasm表会阻塞
  • 1
  • 2
  • 3
  • 4

三、流程

  • 3.1、 完全备份流程
	1)start xtrabackup_log
innobackupex开启xtrabackup_log监控线程,实时监测redo log文件的变化,将新备份过程中新写入到事务日志中的日志拷贝至innobackup_log中;同时开启xtrabackup拷贝线程,开始拷贝innodb文件。

​	2)copy .ibd,ibdata1/2/3……开始拷贝innodb文件。

​	3)复制innodb文件结束后,flush tables with read lock;

​	4)拷贝非innodb文件,copy .frm;.MYD;MYI;misc等非innodb类型的文件。

​	5)记录当前binlog log position

​	6)将表解锁unlock tables;

​	7)停止xtrabackup_log线程
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 3.2、全备恢复流程
	1)对全备文件进行xtrabackup_log日志回放,并对提交的事务进行重做(redo),同时rollback未提交的事务(undo)。

​	2)将全备文件复制到mysql下的data目录下。
  • 1
  • 2
  • 3
  • 3.3 增量备份流程
增量备份是基于上次全备份,拷贝innodb页中有变更的页(LSN大于xtraback_checkpoints中的LSN号)。
第一次增量备份是基于全备的,之后每一次备份都是基于上一次的增备,最终达到一致性的备份。增备与全备的过程类似,区别在于第2 步:

​	1)innobackupex开启xtrabackup_log监控线程,实时监测redolog文件的变化,将新备份过程中新写入到事务日志中的日志拷贝至innobackup_log中;同时开启xtrabackup拷贝线程,开始拷贝innodb文件。

​	2)开始拷贝自上次innodb备份后,变化的数据页,即当前LSN > xtrabackup_checkpoints中的LSN。

​	3)复制innodb文件结束后,flush tables with read lock

​	4)拷贝非innodb文件,copy .frm;.MYD;MYI;misc等非innodb类型的文件。

​	5)记录当前binlog及position

​	6)将表解锁unlock tables

​	7)停止xtrabackup_log线程
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 3.4 增备恢复流程
	1)恢复全备

​	2)恢复增备,对未提交的事务进行rollback

​	3)对全备与增备合并后的备份文件进行apply_log

​	4)将备份文件拷贝到mysql的data目录下。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

四、下载地址

官方文档地址:https://www.percona.com/software/documentationhttps://www.percona.com/downloads

官方下载地址:Software Downloads - Percona

在这里插入图片描述

需要注意的是 Percona XtraBackup 编号在 8.0.14 版本之后发生了变化,以使 Percona XtraBackup 版本与 MySQL 保持一致。

所以在备份前,请确保 Percona XtraBackup 的版本等于或高于正在备份的数据库版本。

参考: Aligning Percona XtraBackup Versions with Percona Server for MySQL

五、备份所需的权限

## 开启二进制日志(binlog)

## 创建专用备份用户或使用ROOT用户
#8.0
CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cr%T';
GRANT BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
GRANT SELECT ON performance_schema.log_status TO 'bkpuser'@'localhost';
GRANT SELECT ON performance_schema.keyring_component_status TO bkpuser@'localhost';
GRANT SELECT ON performance_schema.replication_group_members TO bkpuser@'localhost';
FLUSH PRIVILEGES;

#5.7
CREATE USER 'bkpuser'@&#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/666288
推荐阅读
  

闽ICP备14008679号