1. Percona XtraBackup工具集的组成

Percona XtraBackup是由以下几个二进制文件组成的:

  • xtrabackup:一个已编译的C语言二进制文件,提供了备份包括MyISAM、InnoDB和XtraDB表在内的整个MySQL数据库实例的功能。
  • xbcrypt:用于加密和解密备份文件的实用工具。
  • xbstream:一个实用工具,允许在xbstream格式与文件之间进行流式传输和提取。
  • xbcloud:用于从云端下载和上传xbstream存档的部分或全部内容的实用工具。

推荐的备份方式是使用xtrabackup。

1.1 xtrabackup

xtrabackup二进制文件是一个已编译的C程序,它与InnoDB库和标准MySQL客户端库链接在一起。

xtrabackup使得可以进行InnoDB/XtraDB表的按时间点备份,同时包括了模式定义、MyISAM表以及服务器的其他部分。

InnoDB库提供了将日志应用到数据文件的功能。MySQL客户端库用于解析命令行选项和配置文件。

该工具在--backup模式或--prepare模式下运行,对应于它执行的两个主要功能。有几种不同的变体来完成不同的任务,还有两种不常用的模式,--stats--print-param

1.2 xbcrypt

为了支持备份的加密和解密,Percona XtraBackup引入了一个名为"xbcrypt"的新工具。

Percona XtraBackup 8.0.28-20版本实现了"XBCRYPT_ENCRYPTION_KEY"环境变量。该变量仅在代替"–encrypt_key=name"选项的位置使用。您可以使用环境变量或命令行选项。如果两者都使用,则命令行选项优先于环境变量中指定的值。

这个工具的设计灵感来自于"xbstream"二进制工具,用于在Percona XtraBackup之外执行加密和解密操作。“xbcrypt"具有以下命令行选项:

-d, --decrypt():解密输入数据到输出。

-i, --input(=name):可选的输入文件。如果未指定,将从标准输入读取输入。

-o, --output(=name):可选的输出文件。如果未指定,输出将写入标准输出。

-a, --encrypt-algo(=name):加密算法。

-k, --encrypt-key(=name):加密密钥。

-f, --encrypt-key-file(=name):包含加密密钥的文件。

-s, --encrypt-chunk-size(=#):加密工作缓冲区的大小(以字节为单位)。默认值为64K。

--encrypt-threads(=#):该选项指定用于并行加密/解密的工作线程数。

-v, --verbose():显示详细状态输出。

1.3 xbstream

为了支持同时压缩和流式传输,除了TAR格式外,Percona XtraBackup还引入了一个名为"xbstream"的新自定义流式传输格式。这是为了克服传统归档格式(如tar、cpio等)的一些限制,这些格式不允许流式传输动态生成的文件,例如动态压缩文件。与传统流式传输/归档格式相比,xbstream的其他优势包括能够同时流式传输多个文件(因此可以将xbstream格式的流式传输与”–parallel"选项一起使用),以及更紧凑的数据存储。

该工具具有类似于tar命令的接口:

  • 使用"-x"选项,它从从标准输入读取的流中提取文件到当前目录,除非通过"-c"选项另有指定。Percona XtraBackup 2.4.7中实现了支持使用"–parallel"选项进行并行提取。

  • 使用"-c"选项,它将命令行上指定的文件流式传输到标准输出。

  • 使用"–decrypt=ALGO"选项指定,当从输入流中提取文件时,xbstream将自动解密加密文件。此选项支持的值为:AES128、AES192和AES256。必须指定"–encrypt-key"或"–encrypt-key-file"选项之一以提供加密密钥,但不能同时使用两者。此选项在Percona XtraBackup 2.4.7中实现。

  • 使用"–encrypt-threads"选项,您可以指定用于并行数据加密的线程数。默认值为1。此选项在Percona XtraBackup 2.4.7中实现。

  • 使用"–encrypt-key"选项来指定将要使用的加密密钥。它不能与"–encrypt-key-file"选项一起使用,因为它们是互斥的。此选项在Percona XtraBackup 2.4.7中实现。

  • 使用"–encrypt-key-file"选项来指定包含加密密钥的文件。它不能与"–encrypt-key"选项一起使用,因为它们是互斥的。此选项在Percona XtraBackup 2.4.7中实现。

该工具还尝试通过在可用时使用适当的posix_fadvise()调用来减少对操作系统页面缓存的影响。

当使用xtrabackup启用压缩时,所有数据都会被压缩,包括事务日志文件和元数据文件,使用指定的压缩算法。

1.4 xbcloud

“xbcloud"的目的是从云端下载或上传完整或部分的xbstream归档。xbcloud不会用相同名称覆盖备份。xbcloud通过管道接受来自xbstream的输入,这样它就可以与xtrabackup一起作为流水线调用,直接将数据流式传输到云端,而无需本地存储。

例如需要将备份存储到s3时,可以使用xbcloud。

2. 安装

Percona官方建议使用适用于系统的适当的软件包管理器从官方的Percona软件仓库安装Percona XtraBackup 8.0:

Percona还提供以下安装方法:

使用上述任何方法安装Percona XtraBackup之前,建议先查看release notes服务器版本以及备份版本的比较

在离线环境下,可以使用下载软件包安装的方式,软件包下载地址位于https://www.percona.com/downloads,在页面上找到Percona XtraBackup,选择版本和具体平台的安装包下载。

参考