赞
踩
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)备份myiasm表会阻塞
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)对全备文件进行xtrabackup_log日志回放,并对提交的事务进行重做(redo),同时rollback未提交的事务(undo)。
2)将全备文件复制到mysql下的data目录下。
增量备份是基于上次全备份,拷贝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)恢复增备,对未提交的事务进行rollback
3)对全备与增备合并后的备份文件进行apply_log
4)将备份文件拷贝到mysql的data目录下。
官方文档地址: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'@&#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。