Percona XtraBackup 8.0工具集的简介和安装
📅 2023-08-22 | 🖱️
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还提供以下安装方法:
- 使用下载的DEB软件包安装Percona XtraBackup
- 使用下载的RPM软件包安装Percona XtraBackup
- 从包含所有所需文件和二进制文件的二进制tarball中安装Percona XtraBackup以进行手动安装
- 从源代码编译并安装Percona XtraBackup
- 在Docker容器中运行Percona XtraBackup
使用上述任何方法安装Percona XtraBackup之前,建议先查看release notes和服务器版本以及备份版本的比较。
在离线环境下,可以使用下载软件包安装的方式,软件包下载地址位于https://www.percona.com/downloads,在页面上找到Percona XtraBackup,选择版本和具体平台的安装包下载。