一、Percona Xtrabackup概述

Percona XtraBackup是世界上唯一一款开源的免费MySQL热备份软件,可以为InnoDB和XtraDB数据库执行非阻塞备份。

使用Percona XtraBackup,您可以获得以下好处:             

快速可靠地完成备份             

备份期间不间断的事务处理             

节省磁盘空间和网络带宽             

自动备份验证             

由于恢复时间更快,正常运行时间更长             

Percona XtraBackup对所有版本的Percona Server for MySQL和MySQL进行MySQL热备份。它执行流式、压缩和增量MySQL备份。

注意:

随着Percona XtraBackup 8.0的推出,Percona XtraBackup 2.4将继续支持MySQL和Percona Server 5.6和5.7数据库。由于新的MySQL重做日志和数据字典格式,Percona XtraBackup 8.0.x版本将只与MySQL8.0.x和即将推出的用于MySQL8.0.x的Percona服务器兼容

1、支持的存储引擎             

Percona XtraBackup可以与MySQL和Percona Server for MySQL协同工作。它支持InnoDB、XtraDB和MyRocks存储引擎的完全无阻塞备份。此外,它还可以通过在备份结束时短暂暂停写入操作来备份以下存储引擎:MyISAM、Merge和Archive,包括分区表、触发器和数据库选项。             

注意:             

MyRocks存储引擎的支持在版本8.0.6中添加。             

Percona XtraBackup 8.0不支持TokuDB存储引擎。

2、MySQL备份工具特性比较

FeaturesPercona XtraBackupMySQL Enterprise backup
License GPL Proprietary
Price Free Included in subscription at $5000 per Server
Streaming and encryption formats Open source Proprietary
Supported MySQL flavors MySQL, Percona Server for MySQL, Percona XtraDB Cluster, MySQL
Supported operating systems Linux Linux, Solaris, Windows, OSX, FreeBSD.
Non-blocking InnoDB backups [1] Yes Yes
Blocking MyISAM backups Yes Yes
Incremental backups Yes Yes
Full compressed backups Yes Yes
Incremental compressed backups Yes  
Fast incremental backups [2] Yes  
Incremental backups with archived logs feature in Percona Server Yes  
Incremental backups with REDO log only   Yes
Backup locks [7] Yes (LOCK TABLE FOR BACKUP) Yes (LOCK INSTANCE FOR BACKUP)
Encrypted backups(加密备份) Yes Yes [3]
Streaming backups Yes Yes
Parallel local backups Yes Yes
Parallel compression Yes Yes
Parallel encryption Yes Yes
Parallel apply-log Yes  
Parallel copy-back   Yes
Partial backups Yes Yes
Partial backups of individual partitions Yes  
Throttling [4](限流) Yes Yes
Backup image validation(备份映像验证)   Yes
Point-in-time recovery support Yes Yes
Safe slave backups Yes  
Compact backups [5] Yes  
Buffer pool state backups Yes  
Individual tables export(个别表导出) Yes Yes [6]
Individual partitions export Yes  
Restoring tables to a different server Yes Yes
Data & index file statistics Yes  
InnoDB secondary indexes defragmentation(InnoDB二级索引碎片整理) Yes  
rsync support to minimize lock time(支持最小化锁定时间) Yes  
Improved FTWRL handling Yes  
Backup history table Yes Yes
Backup progress table   Yes
Offline backups   Yes
Backup to tape media managers(备份到磁带介质管理器)   Yes
Cloud backups support   Amazon S3
External graphical user interfaces to backup/recovery(用于备份/恢复的外部图形用户界面) Zmanda Recovery Manager for MySQL MySQL Workbench, MySQL Enterprise Monitor

[1]复制非InnoDB数据时,InnoDB表仍然被锁定。             

[2]Percona Server for MySQL支持快速增量备份,支持XtraDB更改页面跟踪。             

[3]Percona XtraBackup支持对任何备份进行加密。MySQL企业备份只支持对单个文件备份进行加密。             

[4]Percona XtraBackup根据每秒IO操作数执行限制。MySQL企业备份支持操作之间的可配置睡眠时间。             

[5]Percona XtraBackup跳过辅助索引页,并在准备压缩备份时重新创建它们。MySQL Enterprise Backup跳过未使用的页并重新插入到准备阶段。             

[6]Percona XtraBackup甚至可以从完整备份中导出单个表,无论InnoDB版本如何。MySQL Enterprise Backup仅在执行部分备份时使用InnoDB 5.6可移植表空间。             

[7]备份锁是用Percona Server for MySQL中的读锁刷新表的轻量级替代方法。Percona XtraBackup使用它们自动复制非InnoDB数据,以避免阻塞修改InnoDB表的DML查询。

3、Percona XtraBackup有什么特点? 

在不暂停数据库的情况下创建热的InnoDB备份             

对MySQL进行增量备份             

将压缩的MySQL备份流式传输到另一台服务器             

在MySQL服务器之间在线移动表             

轻松创建新的MySQL复制从属服务器             

在不向服务器添加负载的情况下备份MySQL

二、Percona XtraBackup备份工作原理             

1、Percona XtraBackup备份工作原理

Percona XtraBackup基于InnoDB的崩溃恢复功能。它复制您的InnoDB数据文件,这会导致数据在内部不一致;但随后它会对这些文件执行崩溃恢复,使它们再次成为一致的、可用的数据库。             

这是因为InnoDB维护一个重做日志,也称为事务日志。它包含对InnoDB数据的每次更改的记录。当InnoDB启动时,它检查数据文件和事务日志,并执行两个步骤。它将提交的事务日志条目应用于数据文件,并对修改数据但未提交的任何事务执行撤消操作。             

Percona XtraBackup的工作原理是在启动时记住日志序列号(LSN),然后复制数据文件。这样做需要一些时间,因此如果文件正在更改,那么它们将反映数据库在不同时间点的状态。同时,Percona XtraBackup运行一个后台进程来监视事务日志文件,并从中复制更改。PerconaXtrabackup需要不断地这样做,因为事务日志是以循环方式编写的,并且可以在一段时间后重用。Percona XtraBackup自开始执行以来,每次对数据文件的更改都需要事务日志记录。             

Percona XtraBackup使用备份锁(如果有的话)作为一种轻量级的替代方法来使用读锁刷新表。Percona Server for MySQL 5.6+中提供了此功能。MySQL 8.0允许通过lock instance FOR backup语句获取实例级备份锁。             

只有在Percona XtraBackup完成对所有InnoDB/XtraDB数据和日志的备份后,才会对MyISAM和其他非InnoDB表执行锁定。Percona XtraBackup会自动复制非InnoDB数据,避免阻塞修改InnoDB表的DML查询。

注意          

为了要有效地使用LOCK INSTANCE FOR BACKUP or LOCK TABLES FOR BACKUP,需要BACKUP_ADMIN权限才能查询performance_schema.log_status。

当实例只包含InnoDB表时,xtrabackup试图避免使用备份锁并用读锁刷新表。在这种情况下,xtrabackup从performance_schema.log_status获取二进制日志坐标。使用--slave info启动xtrabackup时,MySQL 8.0中仍然需要使用FLUSH TABLES WITH READ LOCK。Percona Server for MySQL8.0中的log_status表被扩展为包含中继日志坐标,因此即使使用--slave info选项也不需要锁。

2、Percona XtraBackup备份步骤

1)当服务器支持备份锁时,xtrabackup首先复制InnoDB数据,运行LOCK TABLES FOR BACKUP,然后复制MyISAM表。

2)完成后,将开始备份文件。它将备份.frm、.MRG、.MYD、.MYI、.ARM、.ARZ、.CSM、.CSV、.sdi和.par文件。             

3)在此之后,xtrabackup将使用LOCK BINLOG FOR BACKUP,以阻止所有可能更改二进制日志位置或Exec_Master_log_Pos或Exec_Gtid_Set(即,主二进制日志坐标对应于复制从机上的当前SQL线程状态)的操作,如SHOW Master/slave STATUS所报告的。然后,xtrabackup将完成复制重做日志文件并获取二进制日志坐标。完成后,xtrabackup将解锁二进制日志和表。             

4)最后,二进制日志位置将被打印到STDERR,如果所有操作都正常,则返回0。

请注意,xtrabackup的STDERR没有写入任何文件。您必须将其重定向到一个文件,例如xtrabackup OPTIONS 2>backupout.log。

三、Percona XtraBackup恢复工作原理     

 

一、Percona Xtrabackup概述

Percona Xtrabackup是一个开源的热备份工具,用于基于MySQL的服务器,在备份过程中不会锁定数据库。             

无论是24x7高负载的服务器还是低事务量的环境,Percona XtraBackup都旨在使备份成为一个无缝的过程,而不会中断服务器在生产环境中的性能。提供商业支持合同。             

Percona XtraBackup可以备份MySQL8.0服务器上InnoDB、XtraDB、MyISAM和MyRocks表的数据,也可以备份带有XtraDB的MySQL Percona服务器、MySQL8.0的Percona服务器和Percona XtraDB集群8.0的数据。

注意:             

1、MyRocks存储引擎的支持在版本8.0.6中添加。             

2、Percona XtraBackup 8.0不支持TokuDB存储引擎。

3、Percona XtraBackup 8.0不支持对MySQL 8.0之前版本、Percona Server for MySQL或Percona XtraDB Cluster中创建的数据库进行备份。由于MySQL8.0在数据字典、重做日志和撤消日志中引入的更改与以前的版本不兼容,目前Percona XtraBackup 8.0不可能同时支持8.0之前的版本。

 posted on 2019-12-31 11:07  xibuhaohao  阅读(131)  评论(0编辑  收藏  举报