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

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

时间:2023-06-22 13:03:06浏览次数:59  
标签:15 target 压缩 数据库 pg backup 备份 basebackup


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关参考文字

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

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

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

标签:15,target,压缩,数据库,pg,backup,备份,basebackup
From: https://blog.51cto.com/u_14150796/6534687

相关文章

  • POSTGRESQL 存储过程--如何写出新版本PG的存储过程的小案例
    随着问问题的同学越来越多,公众号内部私信回答问题已经很困难了,所以建立了一个群,关于各种数据库的问题都可以,目前主要是POSTGRESQL,MYSQL,MONGODB,POLARDB,REDIS,SQLSERVER等,期待你的加入,最近在开始研究POSTGRESQL的存储过程,主要的原因有以下几个1因为要开发适合目前公司中......
  • PostgreSQL 15 stats collector 在取消后是如何实现的原有功能的
    开头还是介绍一下群,如果感兴趣polardb,mongodb,mysql,postgresql,redis等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。在POSTGRESQL15有一个重要的功能去掉了statscollector在说为什么去掉这个statscollector的问题前,我们先得弄清出statscoll......
  • PostgreSQL 15 让多年被DISS的PG 安全画上圆满的句号
    开头还是介绍一下群,如果感兴趣polardb,mongodb,mysql,postgresql,redis等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。提起POSTGRESQL中的安全问题其中最容易被人Diss的最大BUG并不是autovacuum 之类的部分,排在首位的被DISS的最大的问题是安全的......
  • POSTGRESQL 再说 PGBOUNCER 如何部署的问题
    开头还是介绍一下群,如果感兴趣polardb,mongodb,mysql,postgresql,redis等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。最近得到与PGBOUNCER的一个问题,问题大体上是这样描述的,一台POSTGRESQL的服务器,2000个maxconnection,同时安装了4个pgbouncer在......
  • ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes
    今天在批量伪造测试数据时,MySQL收到下面异常:ERROR1153(08S01):Gotapacketbiggerthan'max_allowed_packet'bytes。这是因为没有调整mysql的默认配置,默认最大只能处理16M的文件,而我要导入的伪造数据有50M的一个SQL。于是调整配置文件:/etc/my.cnf修改mysql的最大允许包大小......
  • 6轮面试辛苦拿到阿里Android开发offer,却从22k降到15k,在逗我?
    一小伙工作快3年了,拿到了阿里云Android开发岗位P6的offer,算HR面一起,加起来有6轮面试了,将近3个月的时间,1轮同级+1轮Android用人部门leader+1轮Android组leader+1轮项目CTO+1轮HR+1轮HRBP。一路上各种事件分发机制、自定义View、handler原理、多线程、hashmap、手写算法、......
  • 字节跳动总监封神之作《Android11.0最新Framework解析》,1595页,限时免费下载高清PDF文
    Framework始终穿插在App整个研发生命周期中,不管是从0到1的建立阶段,还是从1到N打磨阶段,都离不开Framework。成为一名AndroidFramework高手,就会成为招聘中非常稀缺的人才,可以成为你的敲门砖。很多同学都表示在面试时必问Framework相关问题。因为目前大公司的app开发都要基......
  • 字节总监用了半个月整理出的1595页《Android11.0 最新Framework解析》高清PDF开发下载
    作为过来人,发现很多学习者和实践者都在AndroidFramework上面临着很多的困扰,比如:工作场景中遇到难题,往往只能靠盲猜和感觉,用临时性的补救措施去掩盖,看似解决了问题,但下次同样的问题又会发作,原因则是缺乏方法论、思路的指引以及工具支持;能力修炼中,缺乏互联网项目这一实践环境,对Fram......
  • 写给女*友的中级Android面试秘籍(含详细答案,15k级别)
    前言本篇文章,献给我家女朋友,祝她在杭州找一个965的好公司!因为Android面试考点众多,而网上各个知识点的博客文章又太多,看的眼花缭乱……所以便整理了一下常见考点的精华回答,尽量覆盖该知识点的下容易被面试到的所有内容。面试题都整理成了PDF文档,包含Java基础、Android基础、UI控件篇......
  • FPGA加速技术在人机交互界面中的应用及优化
    目录引言随着人工智能、云计算、大数据等技术的发展,人机交互界面的重要性也越来越凸显。作为用户与计算机之间的桥梁,人机交互界面的性能和效率直接影响用户的体验和使用效果。为了优化人机交互界面的性能,我们需要考虑很多因素,其中FPGA加速技术是一个比较新兴的话题。在本文中,......