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

PostgreSQL高可用pgbackrest物理备份

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

PostgreSQL高可用pgbackrest物理备份

1 pgbackrest简介

pgBackRest旨在成为一个可靠、易于使用的备份和恢复解决方案,通过利用针对特定数据库要求优化的算法,可以无缝扩展到最大的数据库和工作负载。

主要的功能

并行备份和恢复

本地或远程备份

完整、增量和差异备份

备份轮换和存档过期策略

支持压缩和完整性校验


2 PAF简介

苍穹标准采用的postgreSQL数据库的高可用方式是pg_auto_failover,pg_auto_failover是PostgreSQL的一个扩展,用于监控和管理Postgres集群,自动触发故障转移,pg_auto_failover相比于Patroni、repmgr、Stolon和pgPool-II配置更简单,运维更方便。


3 环境信息

下文以此环境信息为例

地址

主机名

描述

172.18.11.63

kd-app-01

PG高可用计算节点

172.18.11.64

kd-app-02

PG高可用计算节点

172.18.11.65

kd-app-03

备份节点(也是pgmonitor节点),需要注意磁盘空间

4 创建必要目录

4.1 创建日志目录(所有节点执行)

 sudo mkdir -p -m 770 /var/log/pgbackrest

 sudo chown postgres.postgres /var/log/pgbackrest/

4.2 创建配置目录(所有节点执行)

 sudo mkdir -p /etc/pgbackrest

 sudo mkdir -p /etc/pgbackrest/conf.d

 sudo touch /etc/pgbackrest/pgbackrest.conf

 sudo chmod 640 /etc/pgbackrest/pgbackrest.conf

 sudo chown postgres.postgres -R /etc/pgbackrest/

4.3创建命令和主目录(所有节点执行)

 sudo mkdir /usr/bin/pgbackrest

 sudo chown postgres.postgres /usr/bin/pgbackrest/

 sudo chmod 755 /usr/bin/pgbackrest/

 sudo mkdir -p /var/postgresql/pgbackrest/repos

 sudo chmod 750 /var/postgresql/pgbackrest/ -R

 sudo chown postgres.postgres /var/postgresql/pgbackrest/  -R

5 安装

工具已经安装好,在$PGHOME的直接确认配置就可以,无需安装

$PGHOME/bin/pgbackrest version

Tips:如果缺少libxxx.so文件,可以从$PGHOME/lib 下找到对应的libxxx.so.x文件,将其拷贝到 /usr/lib64目录下。 如缺少 libpq.so.5 文件,就将 $PGHOME/lib/libpq.so.5.12 拷贝并重命名为 /usr/lib64/libpq.so.5

6 配置ssh互信

6.1 创建身份验证密钥(所有节点执行)

设置postgres用户的密码,用于传输公钥文件

# echo "Cosmic@2023"|passwd postgres --stdin

# su - postgres

$ ssh-keygen -f /home/postgres/.ssh/id_rsa -t rsa -b 4096 -N ""

6.2 交换公钥

PG节点1执行:  $ cat /home/postgres/.ssh/id_rsa.pub | ssh postgres@172.18.11.65 "cat >> /home/postgres/.ssh/authorized_keys"

PG节点2执行 $ cat /home/postgres/.ssh/id_rsa.pub | ssh postgres@172.18.11.65 "cat >> /home/postgres/.ssh/authorized_keys"

备份节点执行: $ cat /home/postgres/.ssh/id_rsa.pub | ssh postgres@172.18.11.63 "cat >> /home/postgres/.ssh/authorized_keys"

备份节点执行: $ cat /home/postgres/.ssh/id_rsa.pub | ssh postgres@172.18.11.64 "cat >> /home/postgres/.ssh/authorized_keys"

所有节点执行: # chmod 600 /home/postgres/.ssh/authorized_keys

 

验证是否能免密ssh远程postgres用户登录

# su - postgres

$ ssh postgres@主机地址


7 配置文件

7.1 编辑配置文件

PG节点1和PG节点2执行

# su - postgres

$ cat > /etc/pgbackrest/pgbackrest.conf <<EOF

[paf]

pg1-path=/var/kingdee/cosmic/postgres/pg_data

[global]

log-level-file=detail

repo1-host=172.18.11.65

repo1-host-user=postgres

log-path=/var/log/pgbackrest

EOF

 

备份节点

$ cat >/etc/pgbackrest/pgbackrest.conf <<EOF

[paf]

#pg节点1的地址

pg1-host=172.18.11.63

#pg节点1的数据路径

pg1-path=/var/kingdee/cosmic/postgres/pg_data

pg1-port=5432

pg1-user=postgres

#pg节点2的地址

pg2-host=172.18.11.64

#pg节点2的数据路径

pg2-path=/var/kingdee/cosmic/postgres/pg_data

pg2-port=5432

pg2-user=postgres

[global]

repo1-path=/var/postgresql/pgbackrest/repos

log-path=/var/log/pgbackrest

start-fast=y

repo1-retention-full=2

EOF

注意修改pg的地址、数据路径

 

7.2 修改归档命令

修改归档参数,利用pgbackrest管理和归档wal日志

# su - postgres

$ vi $PGDATA/postgresql.conf

archive_command = '/var/postgresql/soft/pg12.8/bin/pgbackrest --stanza=paf archive-push %p'

 

归档命令生效方式:$ pg_ctl reload

检查生效: $ psql  -c "select name,setting from pg_settings where name='archive_command';"


8 初始化和备份

8.1 初始化(实例名paf)

备份节点: $ pgbackrest --stanza=paf --log-level-console=info  stanza-create

8.2 检测

备份节点: $ pgbackrest --stanza=paf --log-level-console=info check

8.3 全量备份

备份节点: pgbackrest --stanza=paf --log-level-console=info --type=full backup --exclude=log/ --process-max=16

注:--exclude 排除某个目录或文件,此处排除了log日

PostgreSQL高可用pgbackrest物理备份

1 pgbackrest简介pgBackRest旨在成为一个可靠、易于使用的备份和恢复解决方案,通过利用针对特定数据库要求优化的算法,可以无缝扩展到最...
点击下载文档文档为doc格式

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

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