问题标签 [pgbackrest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
75 浏览

postgresql - 使用 pbbackrest 进行异常大的增量备份

我正在使用 pgbackrest (v2.24) 和 crontab 对 postgres 数据库 (v12.2) 进行每日完整备份和每小时增量备份。

在一次磁盘外中断之后(以及在数据库中发生大量活动的事件之后),我开始调查磁盘空间不足的原因,并注意到增量备份大小(1.5GB ~ 1.8GB)不是与完整备份 (2.2GB) 不同。

产生两种类型备份的命令:

备份文件夹如下所示:

根据文档,增量备份应该只是完整备份大小的一小部分,并且显然应该依赖于完整备份。这似乎不是这里的情况。还有什么我在这里想念的吗?

0 投票
1 回答
249 浏览

postgresql - 使用 pgbackrest 从 s3 恢复 postgres 集群时出错

我想通过 pgbackrest 使用来自 s3 的备份来测试恢复集群

我有:OpenShift 4.7 PGO 图片标签:centos8-13.2-4.6.2 Postgres 版本 13

如何重现:

Step1:我安装 crunchy operator 并创建集群:

没关系。

第 2 步:我创建备份

那也没关系。

第 3 步:我删除集群(模拟这个集群的丢失)。

备份仍保留在 s3 中。

第 4 步:我正在尝试通过创建备用集群来恢复此集群

我在我的 pod 中收到了很多相同的警告:

如果我删除 /pgdata/standby-test-db_* 它不会更改消息如果我重新启动 pod - /pgdata/standby-test-db_* 将再次创建。

我完全对这个问题感到困惑。

0 投票
0 回答
95 浏览

pgbackrest - 为什么 pgbackrest 不会过期旧的零散增量备份

版本 pgBackRest 2.19(这是旧的,所以我可能只需要更新)

我们将 pgbackrest 设置为保留最后 14 个备份,当我运行时,pgbackrest --stanza=main info | grep 'backup:' | sort我看到最后 14 个完整备份,还有许多不再附加到完整备份的增量备份。例如,列出的完整备份是:

但我注意到许多增量备份(它们确实占用了 aws s3 中的空间),例如:

完整备份是每周一次,增量备份是每天一次。

我还注意到 pgbackrest 的存档文件夹中的 wal 段从 20200405 开始(最旧的增量备份不是完整备份的一部分)。

虽然我可以选择手动删除早于某个日期的备份文件夹和 wal 段文件夹,但我想使用 pgbackrest CLI 来代替,或者至少了解出了什么问题。

如何安全地删除这些比最早保留的完整备份更旧的增量备份,以及如何从 bpgbackrest 存档文件夹中删除 wal 文件?如果我必须在 s3 中手动执行此操作,是否会与删除比最旧的完整备份更早的增量备份文件夹和 wal 存档文件夹相关联的后果?

0 投票
0 回答
18 浏览

postgresql - pgbackrest 多主机服务器

您是否知道是否有可能拥有例如 2 个备份服务器,其中一个将是 repo1 和其他 repo2。如果由于某种原因 repo1 离线,我可以从 repo2 管理备份。

谢谢

0 投票
1 回答
113 浏览

postgresql - 使用 PgBackRest 进行增量备份和 WAL 归档的区别

据我了解

  • WAL 归档是在生成 WAL 文件时将 WAL 日志推送到存储位置
  • 增量备份正在推送自上次备份以来创建的所有 WAL 文件

所以,假设我的 WAL 归档设置正确

  1. 为什么需要增量备份?
  2. 增量备份的成本不应该几乎为零吗?

我发现的大多数文档都侧重于高级实现(例如,如何设置 WAL 归档或增量备份)与内部(当我触发增量备份时会发生什么)

我的问题可能可以通过指向一些文档的链接来解决,但到目前为止我的 google-fu 让我失望了

0 投票
0 回答
34 浏览

postgresql - 如何使用 pgBackRest 备份和恢复 postgresql 数据库集群数据?我在恢复那些差异备份时遇到了问题

我可以轻松备份由repmgr管理的 postgresql 数据库集群。但无法恢复该备份。我们知道 repmgr 具有自动故障转移之类的功能。并且pgBackRest 有一个很好的功能,完整备份、差异备份和增量备份,并附有详细信息。但是如何在不恢复整个数据的情况下恢复那些差异或增量备份呢?我尝试恢复差异备份备份,但恢复后无法与其他节点连接或使其成为主要节点。需要专家解决方案。

0 投票
1 回答
45 浏览

json - 如何非规范化这个 json 结构

我有一个使用 pgbackrest 生成的 json 格式的备份概述。为简单起见,我删除了很多杂物,因此保留了主要结构。该列表可以包含多个备份结构,为简单起见,我在此处将其缩减为 1。

使用 jq 我试图从中生成一个简单的格式,直到现在没有任何运气。

我希望看到的是backup.archive、backup.info、backup.label、backup.type、名称组合在一个简单的结构中,而不需要进入笛卡尔积。我很高兴得到以下输出:

其中 name 被冗余添加到列表中。如何使用 jq 将显示的输入转换为请求的输出?最后,我只想从数据中生成一个简单的 csv。即使使用简化的结构

我得到一个笛卡尔积:

如何解决?

0 投票
1 回答
37 浏览

json - 如何获得一个干净的数组作为输出

作为输入,我有:

使用

(感谢@pmf)我可以重新订购

Selected 是包含最大时间戳和添加到其中的名称的字典,是数据库的最后创建备份。可能有多个数据库。如何将输出形成格式清晰的数组?我希望

是的,我可以使用 sed 添加它,但我觉得 jq 应该能够做到这一点。所以问题是这应该怎么写?

0 投票
2 回答
39 浏览

json - 如何使用 jq 获得每个组和子组的最大值

jq 是一个了不起的工具,它做了很多。作为输入我有

并使用

我得到了最新的 timestamp.stop 名称。我应该如何更改它以获取名称和组的最新 timestamp.stop?在 SQL 中,这类似于 max(.timestamp.stop) group by .name,.type 希望输出如下: