问题标签 [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.
postgresql - 使用 pbbackrest 进行异常大的增量备份
我正在使用 pgbackrest (v2.24) 和 crontab 对 postgres 数据库 (v12.2) 进行每日完整备份和每小时增量备份。
在一次磁盘外中断之后(以及在数据库中发生大量活动的事件之后),我开始调查磁盘空间不足的原因,并注意到增量备份大小(1.5GB ~ 1.8GB)不是与完整备份 (2.2GB) 不同。
产生两种类型备份的命令:
备份文件夹如下所示:
根据文档,增量备份应该只是完整备份大小的一小部分,并且显然应该依赖于完整备份。这似乎不是这里的情况。还有什么我在这里想念的吗?
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_* 将再次创建。
我完全对这个问题感到困惑。
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 存档文件夹相关联的后果?
postgresql - pgbackrest 多主机服务器
您是否知道是否有可能拥有例如 2 个备份服务器,其中一个将是 repo1 和其他 repo2。如果由于某种原因 repo1 离线,我可以从 repo2 管理备份。
谢谢
postgresql - 使用 PgBackRest 进行增量备份和 WAL 归档的区别
据我了解
- WAL 归档是在生成 WAL 文件时将 WAL 日志推送到存储位置
- 增量备份正在推送自上次备份以来创建的所有 WAL 文件
所以,假设我的 WAL 归档设置正确
- 为什么需要增量备份?
- 增量备份的成本不应该几乎为零吗?
我发现的大多数文档都侧重于高级实现(例如,如何设置 WAL 归档或增量备份)与内部(当我触发增量备份时会发生什么)
我的问题可能可以通过指向一些文档的链接来解决,但到目前为止我的 google-fu 让我失望了
postgresql - 如何使用 pgBackRest 备份和恢复 postgresql 数据库集群数据?我在恢复那些差异备份时遇到了问题
我可以轻松备份由repmgr管理的 postgresql 数据库集群。但无法恢复该备份。我们知道 repmgr 具有自动故障转移之类的功能。并且pgBackRest 有一个很好的功能,完整备份、差异备份和增量备份,并附有详细信息。但是如何在不恢复整个数据的情况下恢复那些差异或增量备份呢?我尝试恢复差异备份备份,但恢复后无法与其他节点连接或使其成为主要节点。需要专家解决方案。
json - 如何非规范化这个 json 结构
我有一个使用 pgbackrest 生成的 json 格式的备份概述。为简单起见,我删除了很多杂物,因此保留了主要结构。该列表可以包含多个备份结构,为简单起见,我在此处将其缩减为 1。
使用 jq 我试图从中生成一个简单的格式,直到现在没有任何运气。
我希望看到的是backup.archive、backup.info、backup.label、backup.type、名称组合在一个简单的结构中,而不需要进入笛卡尔积。我很高兴得到以下输出:
其中 name 被冗余添加到列表中。如何使用 jq 将显示的输入转换为请求的输出?最后,我只想从数据中生成一个简单的 csv。即使使用简化的结构
我得到一个笛卡尔积:
如何解决?
json - 如何获得一个干净的数组作为输出
作为输入,我有:
使用
(感谢@pmf)我可以重新订购
Selected 是包含最大时间戳和添加到其中的名称的字典,是数据库的最后创建备份。可能有多个数据库。如何将输出形成格式清晰的数组?我希望
是的,我可以使用 sed 添加它,但我觉得 jq 应该能够做到这一点。所以问题是这应该怎么写?
json - 如何使用 jq 获得每个组和子组的最大值
jq 是一个了不起的工具,它做了很多。作为输入我有
并使用
我得到了最新的 timestamp.stop 名称。我应该如何更改它以获取名称和组的最新 timestamp.stop?在 SQL 中,这类似于 max(.timestamp.stop) group by .name,.type 希望输出如下: