电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

学会pgbackrest备份,再也不怕删库!

来源:金蝶云社区作者:金蝶2024-09-2310

学会pgbackrest备份,再也不怕删库!

在以往的文章中,小编给大家介绍“mysql的物理备份工具”,收获了小伙伴的一致好评。


今天小编给大家推荐一款名为pgbackrest物理备份工具,用于完整备份。它非常适合大小为TB级的postgres数据库,支持并行增量差异备份,包括支持云备份


下载或了解相关资料可复制以下链接到浏览器:

https://github.com/pgbackrest/pgbackrest/releases 


接下来,小编为大家讲讲pgbackrest的作用及如何快速使用pgbackrest进行备份。




1 为什么选择pgbackrest


1、开源备份工具,使用此工具不涉及许可额外费用

2、支持并行备份,可以将压缩文件流式传输到本地远程存储库

3、支持增量差异备份

4、将备份流式传输到云,支持AWSAzureGCS兼容对象存储;

5、支持加密,存储库可以由pgbackrest加密保护备份;

6、不需要本地暂存区将备份流式传输到远程存储或云,可直接将备份流式传输到云或远程存储库,且无需在本地写入任何文件

7、在PostgreSQL中支持数百万数十亿的对象备份;

8、用于还原和恢复的命令简单,包括时间点恢复,在PITR手动拉取某个WAL段时,无需手动干预

9、用作企业备份工具的原因:该工具可以作为统一解决方案,从单个备份服务跨基础架构维护所有PostgreSQL数据库的备份

10、支持从已使用流式复制配置的备用服务器(或只读副本)进行备份

11、能够利用多台备用服务器的计算能力进行备份;

12、支持根据配置自动保留备份存档

13、支持并行异步归档以提高归档速度;

14、支持备份具有数千个表空间的Postgres数据库。


2 pgbackrest备份实操


接下来,小编为大家介绍pgbackrest备份的具体操作,主要分为以下四步:


2.1 第一步:软件安装


本次采用源码编译安装。安装前需要准备环境处理依赖包,相关命令如下:


yum -y install  openssl-devel libxml2-devel lz4-devel libzstd-devel bzip2-devel libyaml-devel postgresql-devel


随后,创建相关目录,相关命令如下:


mkdir  /usr/bin/pgbackrest
chown postgres.postgres /usr/bin/pgbackrest/
chmod 755 /usr/bin/pgbackrest/
mkdir -p /etc/pgbackrest/conf.d
touch /etc/pgbackrest/pgbackrest.conf
chmod 640 /etc/pgbackrest/pgbackrest.conf
chown postgres.postgres -R /etc/pgbackrest/
mkdir -p -m 770 /var/log/pgbackrest
chown postgres.postgres /var/log/pgbackrest/


接着,将安装包解压到指定路径,相关命令如下:


tar -zvxf pgbackrest-release-2.41.tar.gz -C /opt



进入到pgbackrest目录,相关命令如下:


cd /opt/pgbackrest-release-2.41/src


然后,进行安装前环境编译检查,相关命令如下:


/configure --prefix=/usr/bin/pgbackrest/


安装pgbackrest,相关命令如下:


make  -j24 && make install -j24


设置环境变量,相关命令如下:


[root@comic-ptest pgbackrest]# vim /etc/profile.d/pgbackrest.sh
export PGBACKREST_HOME=/usr/bin/pgbackrest
export PATH=$PGBACKREST_HOME/bin:$PATH
[root@comic-ptest pgbackrest]# source /etc/profile.d/pgbackrest.sh


 最后,进行安装确认,相关命令如下:


root@comic-ptest src]# pgbackrest
pgBackRest 2.41 - General help
Usage:
pgbackrest [options] [command]
Commands:
annotate        Add or modify backup annotation.
archive-get     Get a WAL segment from the archive.
archive-push    Push a WAL segment to the archive.
backup          Backup a database cluster.
check           Check the configuration.
expire          Expire backups that exceed retention.
help            Get help.
info            Retrieve information about backups.
repo-get        Get a file from a repository.
repo-ls         List files in a repository.
restore         Restore a database cluster.
server          pgBackRest server.
server-ping     Ping pgBackRest server.
stanza-create   Create the required stanza data.
stanza-delete   Delete a stanza.
stanza-upgrade  Upgrade a stanza.
start           Allow pgBackRest processes to run.
stop            Stop pgBackRest processes from running.
verify          Verify contents of the repository.
version         Get version.
Use 'pgbackrest help [command]' for more information.
[root@comic-ptest src]# pgbackrest version
pgBackRest 2.41


2.2 第二步:配置软件


设置很多选项的安装,pgbackrest配置文件更实用。首先,配置pgbackrest参数,相关命令如下:


vim /etc/pgbackrest/pgbackrest.conf
[global]
log-level-file=detail  #日志级别
log-path=/var/postgresql/pgbackrest/logs    #备份日志输出路径
repol-path=/var/postgresql/pgbackrest/repos #备份和归档仓库路径
#repo1-retention-archive=500    #保留500个归档日志
repo1-retention-full=2         #保留2个全量备份 与  repo1-retention-archive不可同时启用,二个参数同时配置优先生效full
[demo]
pg1-path=/home/pgdata/12/data #postgresql数据目录
pg1-host-config-path=/etc/pgbackrest
pg1-port=5001
pg1-user=postgres
[global:archive_push]
compress-level=3  #指定压缩级别[bz2 - 9;gz - 6 ; lz4 - 1;zst - 3]


其次,配置postgres参数修改归档参数,利用pgbackrest管理归档wal日志,相关命令如下:


vim postgresql.auto.conf
archive_command = '/usr/bin/pgbackrest/bin/pgbackrest --stanza=demo archive-push %p' #%p表示pg_wal目录路径和日志文件名
archive_mode = on   #开启流复制
listen_addresses = '0.0.0.0' #则监听程序只绑定在本地所有的IPV4 地址上,若值为* 监听程序绑定在所有本地IP上
log_line_prefix = '' #设置日志输出格式(能够记录时间,用户名称,数据库名称,客户端IP和端口,方便定位问题),非特殊要求设置为禁用
max_wal_senders = 6  #通过 pg_basebackup 备份或流复制备库和主库同步占用主库的最大并发连接数
wal_level = replica  # 需要流复制物理备库、归档、时间点恢复时,设置为replica,需要逻辑订阅或逻辑备库则设置为logical。


2.3 第三步:工具初始化


首先,修改本地免密码登录,相关命令如下:


[postgres@comic-ptest data]$ vi pg_hba.conf

local   all  all    trust


其次,创建初始化备份,相关命令如下:


pgbackrest --stanza=demo --log-level-console=info  stanza-create
pgbackrest --stanza=demo --log-level-console=info  stanza-create
2022-09-30 10:55:26.692 P00   INFO: stanza-create command begin 2.36: --exec-id=80942-18c949f2 --
log-level-console=info --pg1-path=/var/kingdee_2022/postgres/pg_data_copy --pg1-port=5433 --
pg1-user=postgres --repo1-path=/var/kingdee_2022/postgres/pgbackrest/repos --stanza=demo
2022-09-30 10:55:27.308 P00   INFO: stanza-create for stanza 'demo' on repo1
2022-09-30 10:55:27.316 P00   INFO: stanza 'demo' already exists on repo1 and is valid
2022-09-30 10:55:27.316 P00   INFO: stanza-create command end: completed successfully (626ms)



最后,进行初始化备份校验,相关命令如下:


postgres pgbackrest --stanza=demo --log-level-console=info check
2022-09-30 10:55:36.157 P00   INFO: check command begin 2.36: --exec-id=81540-960f77fa --
log-level-console=info --pg1-path=/var/kingdee_2022/postgres/pg_data_copy --pg1-port=5433 --
pg1-user=postgres --repo1-path=/var/kingdee_2022/postgres/pgbackrest/repos --stanza=demo
2022-09-30 10:55:36.762 P00   INFO: check repo1 configuration (primary)
2022-09-30 10:55:37.569 P00   INFO: check repo1 archive for WAL (primary)
2022-09-30 10:55:39.575 P00   INFO: WAL segment 0000000200000EDC0000000C successfully archived to '
/var/kingdee_2022/postgres/pgbackrest/repos/archive/demo/12-1/
0000000200000EDC/0000000200000EDC0000000C-99ff5

学会pgbackrest备份,再也不怕删库!

在以往的文章中,小编给大家介绍过“mysql的物理备份工具”,收获了小伙伴的一致好评。今天小编给大家推荐一款名为pgbackrest的物理备份工...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信