POSTGRESQL 15 pg_basebackup 新功能,LOCAL backup 与 数据强力压缩

95fe922e6ee8a8c7b267cebe60d1cd68.png

与MYSQL 不一样,开源XTRABACKUP 的备份软件无法跟上MYSQL 版本的更迭,PG 这点做的是一贯的好。从来没有让人失望过。

所以POSTGRESQL 数据的备份一直就不是一个问题,众多的工具以及pg_basebackup 良好的功能,让POSTGRESQL 备份起来速度与硬件有关。

但基于POSTGRESQL 本身的原理,数据库表的体积与他存储的数据之间的比率一直不是很好看,所以PG 15 在备份中,引入了数据压缩的功能来加大pg_basebackup 备份后的数据的数据的压缩比。同时除此之外还有一些新的选项。

其中第一个最大的变化就是,你的备份只能产生在运行pg_basebackup的主机上,参见下图 PG 15 与之前的版本不同在于,备份文件的目标位置可以被锁定到非命令执行的机器中,而是定位到正在执行数据备份工作的目标机器。

4b1ffd41bb756a4bde6b171f0d353f12.png

匹配的命令也很简单,通过target来完成,并匹配

 pg_basebackup -h 127.0.0.1 -p 5432 -U postgres --target=server:/home/postgres/backup -Xnone

743b121b8f5756bec4f51e94975c342b.png

除了可以在数据库LOCAL 的地方进行备份以外,数据压缩的部分也得到加深,同时基于 target 的参数的加入会产生如下的压缩的变化。

变化如下

1 压缩在服务端进行,还是在客户端进行,这二者产生压缩的对数据库和硬件会有不同的压力 ,如果选择在服务端,或者说数据库端进行压缩,将节省带宽,但会影响数据库端的CPU ,如果是选择在客户端进行相关的压缩,则带宽会使用过度。

2  压缩的模式支持 GZIP, LZ4,ZSTD 或者不压缩, 举例我们通过GZIP 在服务器端进行压缩方式的备份

pg_basebackup -h 192.168.198.100 -p 5432 -U admin  -Xnone --target=server:/home/postgres/backup -Z gzip:9

0120b947404d2e584ed2556a24da7cec.png

但如果此时我们选择 LZ4 或者 ZSTD的方式进行数据压缩备份,则你的PG 在编译安装时必须有相关的选择项加入,否则是无法进行相关的压缩备份的工作。

d592020d478408ff79f698d231159ea0.png

这里为了掩饰,我们重新安装 POSTGRESQL 15 并在编译的环节加入 lz4 和 zstd  

pg_basebackup -h 192.168.198.100 -p 5432 -U admin  -Xnone --target=server:/home/postgres/backup -Z lz4:9

8bbade6065c7d431848d9ca368320093.png

pg_basebackup -h 192.168.198.100 -p 5432 -U admin  -Xnone --target=server:/home/postgres/backup -Z zstd:9

7efe8a987e067e0fed8b20b128223dd2.png

相比较,三种备份和数据压缩的方式,那种压缩的比率更高,这里ZSTD 在通用比率的压缩下,文件最小在 2.4mb , gzip 紧随其后 2.9mb , 而LZ4 则在 3.5mb  .  .0ea36cc97292043bf97484908a553dfb.png

5826fb6759135898d1687d3fe6313c1f.png

在备份中,实际上我们建议是,在数据库服务器上进行备份的产生,在网络是数据传输瓶颈和丢包的罪魁祸首的情况下,先将备份文件产生于数据库服务器本身,是一个好的办法,

a11072676eccdfaf8b7b993e43e68ff6.png

下面就总结一个,在远程运行备份命令,但是在数据库本地产生备份数据,并进行压缩的同时包含WAL 日志的方法。

备份完毕后,会产生一个压缩文件和整体备份文件的说明。

2f43df930ab177a67df32a8dc4a42a0e.png

以下命令均为 PG15 中在备份主机目录下,产生备份压缩文件的方法。

pg_basebackup -h 192.168.198.100 -p 5432 -U admin  -P --checkpoint=fast -Xf --target=server:/home/postgres/backup -Z lz4:9 -v -r 0.1M

pg_basebackup 

-h 192.168.198.100       此位置为数据库主机的位置IP

-p 5432                         此位置为数据库主机的端口号

-U admin                       此位置为具有SUPERUSER的数据库登陆账号名

-Xnone                           此位置为不备份  write-ahead logs 

-Xfetch                            与上面的方式互换,这里在整体数据库拷贝完毕后,在备份日志, 在本地备份的情况下 -Xstream 的方式将不能被使用

 --target=server:/home/postgres/backup   指定备份的在数据库所在位置的备份文件存储位置

-Z zstd:9    压缩模式指定并且指定相关的压缩方式和压缩的等级,使用zstd进行压缩

-Z lz4:9      使用lz4  进行压缩

-Z gzip:9    使用gzip 进行压缩

-r 01.MB    为进行数据处理时的限速

outside_default.png

8cdee3d214d4b184d4c4c7ef2851c1d0.png

数据库恢复,则需要根据选择的压缩模式,在数据库主机上安装 LZ4 或者 ZSTD 命令对数据备份文件解压后,在拷贝到原数据库目录就可以解决问题了。

相关参考文字

https://www.dbi-services.com/blog/new-options-for-pg_basebackup-in-postgresql-15/

注:每种压缩模式的等级不同,请自行查询 ZSTD ,LZ4 的压缩等级上限和默认值

d7283918d2b2aae4eff89a7de6a29f36.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值