mirror of
https://github.com/cloudnative-pg/plugin-barman-cloud.git
synced 2026-01-11 13:23:09 +01:00
Barman Cloud CNPG-I backup plugin
When the end of the WAL stream is reached, the parallel WAL restore feature attempts to predict the names of subsequent WAL files to restore and records the first missing WAL file. On high-availability (HA) replicas, if PostgreSQL requests the first missing WAL file, the code returns an error status that prompts PostgreSQL to switch to streaming replication. Currently, the code assumes a `wal_segment_size` of 16MB for predicting the next WAL file names. If the configured WAL segment size exceeds 16MB, it may request non-existent WAL files. For instance, with 16MB segments, the names would range from `000000010000000100000000` to `0000000100000001000000FF` before moving to the next segment. For 1GB segments, they would range from `000000010000000100000000` to `000000010000000100000003`. With the assumption of a 16MB segment size, the code will not find the WALs from `000000010000000100000004` to `0000000100000001000000FF`. While this assumption does not affect HA replicas - which can shift to streaming mode - it's problematic for a PostgreSQL instance seeking consistency after a restore, as the restore process will fail. This patch disables end-of-wal file marker management during replication, addressing restore issues for backups that were: 1. using a custom WAL file segment size 2. utilizing parallel WAL recovery 3. initiated on one WAL segment and concluded on a different one Fixes: #603 Signed-off-by: Leonardo Cecchi <leonardo.cecchi@enterprisedb.com> |
||
|---|---|---|
| .github/workflows | ||
| api/v1 | ||
| cmd/manager | ||
| config | ||
| containers | ||
| dagger | ||
| hack | ||
| internal | ||
| kubernetes | ||
| logo | ||
| scripts | ||
| test/e2e | ||
| web | ||
| .dockerignore | ||
| .gitignore | ||
| .golangci.yml | ||
| .release-please-manifest.json | ||
| .spellcheck.yaml | ||
| .wordlist.txt | ||
| CHANGELOG.md | ||
| CODE_OF_CONDUCT.md | ||
| CODEOWNERS | ||
| commitlint.config.js | ||
| go.mod | ||
| go.sum | ||
| GOVERNANCE.md | ||
| LICENSE | ||
| Makefile | ||
| manifest.yaml | ||
| PROJECT | ||
| README.md | ||
| release-please-config.json | ||
| RELEASE-PROCEDURE.md | ||
| renovate.json5 | ||
| Taskfile.yml | ||
Barman Cloud CNPG-I plugin for CloudNativePG
The documentation for the Barman Cloud Plugin for CloudNativePG is available at https://cloudnative-pg.io/plugin-barman-cloud.
The Barman Cloud CNPG-I plugin is a component of the CloudNativePG project and adheres to the same community-driven governance model under the CNCF.
CloudNativePG was originally built and sponsored by EDB.
Postgres, PostgreSQL, and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada, and used with their permission.
