暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

基础备份compress子项的几种新用法

原创 多米爸比 2022-11-08
753

pg_basebackup是一个非常简便快速的备份工具,它可以对整个实例做物理备份(基于二进制数据),常用于搭建流复制环境或恢复新的备份实例。

PostgreSQL 15对pg_basebackup的compress子项做了一些增强,主要包括:

  • 新增lz4和zstd(Zstandard)方法,支持服务端及客户端的lz4和zstd压缩;
  • compress子项可控制压缩方法及压缩选项;
  • zstd压缩可使用多线程workers并行处理;
  • 文本备份方式可在服务端压缩后传输到客户端解压;

compress子项可以指定压缩方法和压缩级别,语法如下:

--compress=[{client|server}-]METHOD[:DETAIL]

PostgreSQL 15之前的版本只能设置压缩级别,压缩级别通过在冒号(:)后直接使用数字或者指定"level=number"来指定,对于zstd压缩,还可以设置"workers=number"并行处理的工作线程数。

具体使用示例如下:

环境准备

本文测试环境使用虚拟机Centos7.6 1G物理内存测试PostgreSQL 15.0,并使用老朋友pgbench进行灌数。

pgbench --initialize --scale=100

初始化因子设置为100, 测试的主表pgbench_accounts数据为一千万行,磁盘空间大约占1.3GB。

下面分别使用不同的备份格式测试不同的压缩方式。

一、使用文本格式,不压缩

$ pg_basebackup  -Fp  --compress=none  -D data

时间花销:56s,空间占用:1.5GB

二、使用tar包格式,gzip压缩

$ pg_basebackup  -Ft  --compress=gzip  -D data

$ pg_basebackup  -Ft  --compress=client-gzip  -D data

时间花销:38s,空间占用:84MB

上面两种方式类似,客户端gzip压缩可以使用"client-gzip",或者简化为"gzip"。

$ pg_basebackup  -Ft  --compress=server-gzip:5  -D data

$ pg_basebackup  -Ft  --compress=server-gzip:level=5  -D data

时间花销:27s,空间占用:100MB

服务端gzip压缩可以使用"server-gzip",压缩级别可以直接在冒号后使用数字,或者使用"level=5"来指定,压缩级别的范围是1到9,数字越大,压缩率越高。

三、使用tar包格式,lz4压缩

lz4压缩比gzip压缩速度更快一些,但压缩率不如gzip,如果期望速度更快,可以使用lz4替代gzip。

$ pg_basebackup  -Ft  --compress=server-lz4:5  -D data

$ pg_basebackup  -Ft  --compress=server-lz4:level=5  -D data

时间花销:26s,空间占用:167MB

服务端lz4压缩可以使用"server-lz4",压缩级别的写法与前面类似,也是两种写法,压缩级别的范围是1到12,数字越大,压缩率越高。

四、使用tar包格式,zstd压缩

zstd压缩结合了gzip与lz4压缩的优点,不仅速度快,压缩率也高,同时还支持使用多个zstd workers并行备份数据,如果CPU比较充足,zstd是很好的性能提升方式。

$ pg_basebackup  -Ft  --compress=server-zstd:level=5,workers=1  -D data

时间花销:26s,空间占用:84MB

五、使用文本格式,lz4压缩

如果不喜欢用tar包格式,因为tar包备份的格式无法直接使用pg_verifybackup来校验备份数据的完整性,使用文本格式备份也能进行服务端压缩,然后客户端自动解压。

$ pg_basebackup  -Fp  --compress=server-lz4  -D data

时间花销:50s,空间占用:1.5GB

使用文本格式备份时虽然压缩并没有给我们带来任何性能收益,但是可以高效的传输数据,加速服务端的备份数据从网络传输到远程客户端存储上。当网络带宽较小时,这种方式会比较有用。

总体来说,服务端的压缩加速比客户端要差一些,但是在网络带宽不好的情况下,可以在服务端压缩后再传输到客户端。

保持联系

从2019年12月开始写第一篇文章,分享的初心一直在坚持,本人现在组建了一个PG乐知乐享交流群,欢迎关注我文章的小伙伴加我微信进群吹牛唠嗑,交流技术。

456.png

最后修改时间:2024-04-07 09:48:08
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论