mariadb-backup 以前名为 mariabackup。使用 --stream=xbstream 时,它可以把备份流写入标准输出,便于接入常见的加密与压缩工具。下面给出几种组合。
工具参数的完整列表见 mariadb-backup 选项,功能说明见 mariadb-backup 概览。
使用 OpenSSL 加密和解密
下面把备份流以 AES 加密,原例密码为 mypass,并保存为 backup.xb.enc:
mariadb-backup --user=root --backup --stream=xbstream | openssl enc -aes-256-cbc -k mypass > backup.xb.enc
解密并展开到当前目录:
openssl enc -d -aes-256-cbc -k mypass -in backup.xb.enc | mbstream -x
编校:这里的密码是原文示例值。原命令把口令放在命令行,并使用较旧的加密参数组合;不能直接把它当作当前安全配置。使用前需查验工具版本、密钥输入方式和完整性保护。
使用 gzip 压缩和解压
下面只压缩备份,不加密:
mariadb-backup --user=root --backup --stream=xbstream | gzip > backupstream.gz
解压并展开:
gunzip -c backupstream.gz | mbstream -x
先用 gzip 压缩,再用 OpenSSL 加密
这个例子先增加压缩步骤,再加密:
mariadb-backup --user=root --backup --stream=xbstream | gzip | openssl enc -aes-256-cbc -k mypass > backup.xb.gz.enc
恢复时顺序相反:先解密,再用 gzip -d 解压,最后展开 xbstream:
openssl enc -d -aes-256-cbc -k mypass -in backup.xb.gz.enc |gzip -d| mbstream -x
使用 7-Zip 压缩和加密
7-Zip 尤其常用于 Windows。它支持用 -si 从标准输入读取数据,并用 -so 把解压结果写到标准输出,因此可以与备份流组合。原文把读取方向误称为标准输出,这里按参数实际含义说明。
压缩:
mariadb-backup --user=root --backup --stream=xbstream | 7z a -si backup.xb.7z
解压并展开:
7z e backup.xb.7z -so |mbstream -x
7-Zip 也支持 AES-256 加密。原例说明:若使用示例密码 SECRET,可以在上面的压缩命令中增加 -pSECRET。真实密码不要直接照搬此占位值,密钥输入方式应另行核验。
使用 zstd 压缩
压缩:
mariadb-backup --user=root --backup --stream=xbstream | zstd - -o backup.xb.zst -f -1
解压并展开:
zstd -d backup.xbstream.zst -c | mbstream -x
编校:原例压缩输出名为
backup.xb.zst,解压输入却写作backup.xbstream.zst,二者不一致。使用时必须让实际输入文件名与生成的文件一致。
使用 GPG 加密
加密:
mariadb-backup --user=root --backup --stream=xbstream | gpg -c --passphrase SECRET --batch --yes -o backup.xb.gpg
解密并展开:
gpg --decrypt --passphrase SECRET --batch --yes backup.xb.gpg | mbstream -x
交互输入口令
上面多数工具也支持交互输入口令。原文提醒:从标准输入读取备份流时,7-Zip 的交互输入似乎无法良好配合。具体行为应查阅所用工具版本的文档。
额外写出状态文件
默认情况下,xtrabackup_checkpoints 等文件也只写入输出流。如果后续要做增量备份,通常需要先从压缩或加密的流中提取这些状态文件,才能使用它们。
可以增加 --extra-lsndir=...,把这类文件同时写入指定目录,供后续增量备份作为输入。相关主题为“将增量备份与流式输出结合”。
来源:MariaDB 文档贡献者,Using Encryption and Compression Tools With mariadb-backup。原页标注 “CC BY-SA / Gnu FDL”。本文翻译正文并加入明确标示的编校。展开备份不等于已经完成后续准备与恢复验证。











暂无评论内容