前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >POSTGRESQL 15 pg_basebackup 新功能,LOCAL backup 与 数据强力压缩

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

作者头像
AustinDatabases
发布2022-12-12 18:49:51
8490
发布2022-12-12 18:49:51
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

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

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

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

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

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

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

除了可以在数据库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

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

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

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

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

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

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

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

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

以下命令均为 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 为进行数据处理时的限速

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

相关参考文字

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档