为 mariadb-backup 备份流加密和压缩

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”。本文翻译正文并加入明确标示的编校。展开备份不等于已经完成后续准备与恢复验证。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容