0

我管理 3 个 PostgreSQL 集群,每个集群由一个领导节点和两个副本组成。我必须使用 PgBackRest 来管理这些备份。PgBackRest 在它自己的节点上运行。但是,阅读文档似乎存在 Stanza 的概念来管理多个集群备份。这是一个典型的conf文件:

[mydb1]
pg1-host=10.2.10.1
pg1-port=5432
pg1-path=/<my path>
pg1-host-user=postgres
pg1-socket-path=/tmp
pg2-host=10.2.10.2
pg2-port=5432
pg2-path=/<my path>
pg2-host-user=postgres
pg2-socket-path=/tmp
pg3-host=10.2.10.3
pg3-port=5432
pg3-path=/<my path>
pg3-host-user=postgres
pg3-socket-path=/tmp

现在我想在配置文件中添加另外两个集群:

[mydb2]
...
[mydb3]
...

但我想将他们的备份添加到不同的 S3 存储桶中(所以没有相同的存储桶和不同的节,而是不同的存储桶和不同的节)。 这可能吗?

我注意到在pgbackrest.conf典型的全局配置中是这样的:

[global]
log-level-file=detail
process-max=4
backup-standby=y
start-fast=y

repo1-cipher-pass=XXXXXXXXXX
repo1-cipher-type=aes-256-cbc
repo1-retention-full=120
repo1-retention-diff=72
repo1-path=/repo
repo1-s3-bucket=db-bucket-mydb1
repo1-s3-endpoint=s3....
repo1-s3-key=***************
repo1-s3-key-secret=*********************
repo1-s3-region=<my region>
repo1-type=s3

可以只定义一个 S3 IP 和一个 S3 存储桶。我试图添加repo2-xxxxrepo3-xxxx但没有成功。有谁知道是否有办法将三个备份存储在三个不同的 S3 存储桶中?如果是这样,怎么做?

4

1 回答 1

0

将 repo 配置键从全局移动到 pgbackrest 配置文件的节部分:

[mydb2]
pg1-host=10.2.10.1
pg1-port=5432
pg1-path=/<my path>
pg1-host-user=postgres
pg1-socket-path=/tmp
repo1-cipher-pass=XXXXXXXXXX
repo1-cipher-type=aes-256-cbc
repo1-retention-full=120
repo1-retention-diff=72
repo1-path=/repo
repo1-s3-bucket=db-bucket-mydb2
repo1-s3-endpoint=s3....
repo1-s3-key=***************
repo1-s3-key-secret=*********************
repo1-s3-region=<my region>
repo1-type=s3

[mydb3]
pg1-host=10.2.10.1
pg1-port=5432
pg1-path=/<my path>
pg1-host-user=postgres
pg1-socket-path=/tmp
repo1-cipher-pass=XXXXXXXXXX
repo1-cipher-type=aes-256-cbc
repo1-retention-full=120
repo1-retention-diff=72
repo1-path=/repo
repo1-s3-bucket=db-bucket-mydb3
repo1-s3-endpoint=s3....
repo1-s3-key=***************
repo1-s3-key-secret=*********************
repo1-s3-region=<my region>
repo1-type=s3

所以这种方式可以定义不同的桶,db-bucket-mydb2 和 db-bucket-mydb3。

这同样适用于本地存储库。如果需要,可以使用完全不同的本地路径。

于 2022-02-15T13:01:30.570 回答