首页 > 数据库 >PostgreSQL pgbackrest 参数与优化 与 “小作文和售货员”

PostgreSQL pgbackrest 参数与优化 与 “小作文和售货员”

时间:2023-12-28 14:01:24浏览次数:31  
标签:PostgreSQL -- backup 备份 pg1 pgbackrest 售货员 archive

最近热度最大的新闻,可能就是“小作文”和“售货员”,这里我特别想对曾经的某“售货员”曾经不经意说的一句话进行转载:

“有些人很好奇,他们问我,谁给你写的那些小作文,我想说的是,如果公司能写好这样的句子,让我读的话,那么为什么公司不找一个长得比我更好看的主播来这里读,人们好像更愿意相信那些东西是可以设计的,人们好像很难接受那些东西其实是你这么多年以来读过很多的书,去过很多的地方,生活也并没有善待你,因此遭受了很多的苦后,你内心仍然对于美,对于真诚,对于幸福的向往不经意的流露,人们更愿意相信一切都是刻意为之!”

首先对于“售货员”,我很喜欢他,我也曾被问过,为什么你会多种数据库,你为什么早上6点发文,你为什么发那么多的文,你写的那个问题怎么可以预先避免,我特别想用上面售货员的思路,总结成自己的话,如四季一样,那么的平常,经历风吹雨打,雨雪冰霜 !

PostgreSQL  pgbackrest 参数与优化  与  “小作文和售货员”_数据库

正文,此文为以下三篇关于 pgbackrest 的第四篇

PostgreSQL  pgbackrest 参数与优化  与  “小作文和售货员”_服务器_02

PostgreSQL  pgbackrest 参数与优化  与  “小作文和售货员”_postgresql_03

这已经是关于pgbackrest 的第四篇了,在单机,远程备份都可以进行后,需要对这个备份的软件的一些细节进行研究,所以本篇的主题是针对基础备份都成功的后续。

本期将针对参数这个部分进行学习,这里参数被进行了挑选,个人觉得有实际作用的被撰写在下面,这里pgbackrest 的参数主要分为  

General options  

log options  

maintaniner options 

backup options 

archive options   这几大类。

1  Gerneral options 

1.1 --buffer-size  buffer size 是针对在执行备份命令中,可以使用的缓冲大小,对于数据库系统中采用的IOPS较高的系统,提高BUFFER SIZE 有利于提高备份的速度,但是在设置的时候,这个部分默认是根据备份端的内存进行动态设置,但基于备份系统不知道目的主机的磁盘系统的性能,可以调高这个部分,来提升整体的数据库备份的速度。

另外这个部分是在[global] 部分来进行调整,针对的是所有的备份的数据库进行的设置,所以设置期间,注意相关的大小  可以调整的为16KB的倍16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB, and 16MiB

1.2 ssh 命令指定位置 这个参数主要针对的是ssh  不在默认目录无法直接调用的情况下,指定SSH的命令的目录位置 

cmd-ssh=/usr/bin/ssh

1.3  compress 在备份中,需要对备份的数据进行压缩的情况下,默认使用哪种压缩方式   bz2  gz  lz4  zst  

compress = gz

1.4  config =  这个部分是指定备份文件的位置,这里如果不指定位置默认的位置是 /etc/pgbackrest/pgbackrest.conf

1.5 db-timeout  这个部分属于一个可以控制你备份最长可以容忍时间的设置,这里默认是1800 秒,实际上如果一个备份长时间无法完成,一般我们是要禁止掉的,防止影响下次的备份,在这样的情况下,这里设置多少秒,超过后备份控制端和数据库的链接会被kill,防止过长时间的备份

1.6 process-max = 4  这个参数是针对备份控制端发送命令中,每个使用的CPU最大可以处理的工作进程数。

2  log options 

2.1 log-level-stderr=error  根据备份中日志的记录登记,有多种,error  ,warn  等可以被选择,其他的部分如果是需要了解更详细的备份过程可以选择 detail 

2.2 log-path  如果不设置这个参数,则默认的pgbackrest的日志目录位置在/var/log/pgbackrest/ 目录下,如果需要更换目录需要在这里写如新的日志的位置

3  maintaner 维护选项

pg-version-force = 15  这里的版本不是一个过滤项,默认情况下pgbackrest 会判断备份的数据库的版本是什么,但是如果你在这里写入这个部分,则pgbackrest 不会在判断,而是就按你写的版本认定你的数据库是什么版本。

4  stanza 维护选项

pg1-database=postgres  这个参数是针对备份程序链接到数据库中的默认数据库的名字进行的设置,一般情况下这个名字是 PGDATABASE 的变量所指定的名字,一般为postgres,但是如果你给定的账号没有权限链接postgres 这个位置需要写上你默认可以链接的数据库名字 

pg1-host= 这位置主要的配置信息主要是在备份的控制端进行的配置,需要指定你需要备份的主机的IP 或域名,方便在备份控制端上对需要备份的主机进行备份。

pg1-host-cmd = 这个命令主要是指的在数据库服务端的pgbackrest的命令的目录在哪里基于上一篇的关于备份的说明,备份的软件需要在控制端和数据库的服务器端都进行安装。

pg1-host-config= 这个配置的部分是指定数据库服务器端的pgbackrest 的配置文件的目录在哪里,默认也是 /etc/pgbackrest/pgbackrest.conf

pg1-host-port = 这个配置的部分是指的SSH 的端口号,在默认的情况下,应该是22 但是数据库的服务器的端口号SSH 是否被变动了,如果变动了这个部分是需要进行设置的。

pg-host-type = ssh or tls 

pg1-path = 这个指向的是数据库的数据目录的位置必须进行配置在数据库和控制端均需要进行配置

pg1-port= 这个是配置数据库的端口号

pg1-socket-path = 这是配置数据库的socket的目录位置

pg1-user= 这里配置是用于备份软件访问数据库的用户是那个

pg1-pgpass  这个配置是在官方文档中也无法查到的,这里如果你的数据库用户密码设置的pgpass 文件不在默认的位置,就需要在这里进行设置

5  Archive options 

5.1 archive-async=y  在数据库归档中,pgbackrest 是支持异步的回馈的,也就是异步归档可以提高归档的性能,特别是当归档目标是远程存储位置时。在发送归档文件到远程位置时,网络延迟可能会成为性能瓶颈。使用异步归档,pgBackRest可以立即返回控制权,而归档操作在后台进行。这样,PostgreSQL服务器不必等待归档操作完成,可以更快地继续处理新的事务。

5.2 archive-get-queue  pgBackRest的一个配置选项,用于配置归档获取队列的最大大小,需要在pgBackRest中配置归档获取队列的最大大小。归档获取队列用于存储等待从归档存储中检索的归档文件列表。当一个或多个备用服务器正在从归档存储中获取归档文件时,pgBackRest会按照队列的顺序返回文件,默认对于队列是没有限制的。

archive-get-queue-max = 100

5.3  archive-timeout  归档的超时主要在归档的时间设置,在归档的超时时间内,可以进行归档的等待,同样默认情况这个部分不做超时的设置

archive-timeout = 120

基于以上的参数,下面列出控制端的配置文件

pgbackrest@pgbackrest:~$ pgbackrest --stanza=test check
WARN: configuration file contains invalid option 'pg1-pgpass'
2023-12-07 09:55:21.010 P00   INFO: check command begin 2.48: --archive-timeout=120 --buffer-size=16MiB --exec-id=50800-3201493f --log-level-console=info --log-level-file=debug --pg1-host=192.168.198.101 --pg1-path=/pgdata/data --pg1-port=5432 --pg1-socket-path=/tmp --pg1-user=backup --repo1-path=/pgbackrest/backup --stanza=test
2023-12-07 09:55:21.810 P00   INFO: check repo1 configuration (primary)
2023-12-07 09:55:22.476 P00   INFO: check repo1 archive for WAL (primary)
2023-12-07 09:55:24.382 P00   INFO: WAL segment 000000010000000700000012 successfully archived to '/pgbackrest/backup/archive/test/14-1/0000000100000007/000000010000000700000012-05cbf351481d6d1809600435764389dc3fec6769.gz' on repo1
2023-12-07 09:55:24.489 P00   INFO: check command end: completed successfully (3482ms)
pgbackrest@pgbackrest:~$ pgbackrest --stanza=test --log-level-console=info backup
WARN: configuration file contains invalid option 'pg1-pgpass'
2023-12-07 09:55:40.859 P00   INFO: backup command begin 2.48: --archive-timeout=120 --buffer-size=16MiB --compress-type=gz --exec-id=50902-18a827ed --log-level-console=info --log-level-file=debug --pg1-host=192.168.198.101 --pg1-path=/pgdata/data --pg1-port=5432 --pg1-socket-path=/tmp --pg1-user=backup --repo1-path=/pgbackrest/backup --repo1-retention-full=2 --stanza=test
2023-12-07 09:55:41.777 P00   INFO: last backup label = 20230217-035638F_20230217-041429D, version = 2.48
2023-12-07 09:55:41.777 P00   INFO: execute non-exclusive backup start: backup begins after the next regular checkpoint completes
2023-12-07 09:55:42.727 P00   INFO: backup start archive = 000000010000000700000014, lsn = 7/50000028
2023-12-07 09:55:42.727 P00   INFO: check archive for prior segment 000000010000000700000013
2023-12-07 09:55:45.147 P00   INFO: execute non-exclusive backup stop and wait for all WAL segments to archive
2023-12-07 09:55:45.803 P00   INFO: backup stop archive = 000000010000000700000014, lsn = 7/50000100
2023-12-07 09:55:45.809 P00   INFO: check archive for segment(s) 000000010000000700000014:000000010000000700000014
2023-12-07 09:55:46.545 P00   INFO: new backup label = 20230217-035638F_20230217-101940I
2023-12-07 09:55:46.636 P00   INFO: incr backup size = 8.3KB, file total = 2860
2023-12-07 09:55:46.636 P00   INFO: backup command end: completed successfully (5780ms)
2023-12-07 09:55:46.637 P00   INFO: expire command begin 2.48: --buffer-size=16MiB --exec-id=50902-18a827ed --log-level-console=info --log-level-file=debug --repo1-path=/pgbackrest/backup --repo1-retention-full=2 --stanza=test
2023-12-07 09:55:46.641 P00   INFO: expire command end: completed successfully (4ms)
[test]
pg1-path=/pgdata/data
pg1-port=5432
pg1-socket-path=/tmp
pg1-host=192.168.198.101
pg1-user=backup
pg1-pgpass=/home/postgres/.pgpass

[global]
repo1-path=/pgbackrest/backup
repo1-retention-full=2
log-level-console=info
log-level-file=debug
buffer-size=16MiB
compress-type=gz
archive-timeout = 120
archive-get-queue-max = 100
archive-async=y



[global:archive-push]
compress-level=3

PostgreSQL  pgbackrest 参数与优化  与  “小作文和售货员”_hive_04

PostgreSQL  pgbackrest 参数与优化  与  “小作文和售货员”_数据库_05

PostgreSQL  pgbackrest 参数与优化  与  “小作文和售货员”_hive_06

标签:PostgreSQL,--,backup,备份,pg1,pgbackrest,售货员,archive
From: https://blog.51cto.com/u_14150796/9014292

相关文章

  • Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用
    场景Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句:Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句上面讲了基本语法,下面记录游标、自定义函数、存储过程的使用。注:博客:霸道流氓气质_C#,架构之路,SpringBoot实......
  • Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句
    场景PostGresSQL简介与Windows上的安装教程:PostGresSQL简介与Windows上的安装教程_postgressqlwindows安装免费吗?除了标准SQL语句之外,PostgreSQL还支持使用各种过程语言(例如PL/pgSQL、C、PL/Tcl、PL/Python、PL/Perl、PL/Java等)创建复杂的过程和函数,称为存储过程(StoredPro......
  • Postgresql中自增主键序列的使用以及数据传输时提示:错误:关系“xxx_xx_xx_seq“不存
    场景Postgresql在Windows中使用pg_dump实现数据库(指定表)的导出与导入:Postgresql在Windows中使用pg_dump实现数据库(指定表)的导出与导入上面讲使用pg_dump进行postgresql的导出与导入。如果使用Navicat可以直接连接两个库,则可直接使用数据传输功能。但是在传输某个表时提示:错误:关......
  • postgresql数据库迁移(拷贝数据库文件方式迁移)
    旧机器A:1、找到postgresql的data目录2、停止postgresql数据库3、执行tar-zcvfdatabak.tar.gzdata/新机器B:tar-zxvf databak.tar.gz-C/usr/local/postgres/使用scp或是ftp,或是移动硬盘将压缩文件放到新机器B上,前提条件是B机器要装有新的postgresql数据库,先停止数据库,然后找......
  • postgresql数据库报“connections on Unix domain socket "/tmp/.s.PGSQL.5432"?”
    使用postgresql数据库的时候经常遇到的问题:[postgres@test~]$psqlpsql:couldnotconnecttoserver:Nosuchfileordirectory Istheserverrunninglocallyandaccepting connectionsonUnixdomainsocket"/tmp/.s.PGSQL.5432"?现象如上,但是数据库是启动状态,将......
  • Postgresql学习(1)【菜鸟教程学习】
    在数据库术语里,PostgreSQL使用一种客户端/服务器的模型。一次PostgreSQL会话由下列相关的进程(程序)组成:一个服务器进程,它管理数据库文件、接受来自客户端应用与数据库的联接并且代表客户端在数据库上执行操作。该数据库服务器程序叫做postgres。那些需要执行数据库操作的用户的客户......
  • lightdb/postgresql中plpgsql、函数与操作符、表达式及其内部实现
    PG_PROCPG_OPERATORpg_opclass用于定义索引上的相关操作符,一般来说是同一类数据类型。pg_opfamiliy定义了相互兼容的数据类型的操作符,关系见https://www.postgresql.org/docs/9.1/catalog-pg-opclass.html。pg8.3引入pg_opfamilies,原因:Create "operatorfamilies" toimprove......
  • TPCH-PostgreSQL生成数据集并导入数据表
    1.数据集下载TPC-H数据集: https://github.com/gregrahn/tpch-kit2.解压安装unzip tpch-kit-master.zipcdtpch-kit-master/dbgen/make -f Makefile通过上面命令,生成两个文件,分别是dbgen、qgen。分别用于产生数据和查询。3.生成数据##进入dbgen目录cdtpch-kit-master......
  • PostgreSQL数据库中插入数据并跳过重复记录
    概述:ONCONFLICT是将新数据插入现有表时处理唯一性冲突的一种方式快速预览1.DOUPDATESET:重复则更新2.DONOTHING:重复则跳过先创建表t_daily_stats、并且主键字段由serial_no、date组成,以及其他字段--创建设备每日统计表CREATETABLEt_daily_stats(seri......
  • PostgreSQL的安装和卸载
    一、PostgreSQL的卸载查看版本号和系统类别:cat/etc/redhat-release如果是redhat/centos:(yuminstall)yum删除软件包:yumremovepostgresql*删除相关目录文件:rm-rf/var/lib/pgsqlrm-rf/usr/pgsql*删除pg相关用户组/用户userdel-rpostgresgroupdelpostgresrpm包安装的......