Hi Percona Team,
We are currently evaluating Percona Backup for MongoDB (PBM) as a replacement for our existing MongoDB backup/restore solution.
Environment
- MongoDB Community Edition 8.2.1
- MongoDB Community Kubernetes Operator
- PBM 2.14.0
- S3-compatible object storage
- Logical backups with PITR enabled
Previously, we used mongodump/mongorestore with the following restore command:
mongorestore \
--uri="${MONGODB_URI}" \
--authenticationDatabase=admin \
--gzip \
--archive="${BACKUP_FILE}" \
--oplogReplay \
--drop \
--bypassDocumentValidation \
--preserveUUID \
--username="${MONGODB_USERNAME}" \
--password="${MONGODB_PASSWORD}"
This gave us explicit control over important restore behaviours such as:
--drop--preserveUUID--bypassDocumentValidation--oplogReplay
After migrating to PBM, restore is simply executed as:
pbm restore <backup-name>
Question
Does PBM internally perform the equivalent of the following mongorestore options?
--drop--preserveUUID--bypassDocumentValidation--oplogReplay
If not:
- What is the recommended PBM approach for environments that previously relied on these options?
- How does PBM handle collection UUID preservation during restore, especially when replaying oplog/PITR entries?
- Is there any supported mechanism to bypass document validation during PBM restore when schema validators have changed since the backup was taken?
- Is PBM intentionally designed to avoid exposing these low-level restore options, or is there an alternative workflow?
Background
During our testing we encountered situations such as:
Namespace '<database>.<collection>' and UUID '<uuid>' point to different collections
and also environments where schema validation could potentially reject restored documents.
With mongorestore, these situations could often be handled using:
--drop--preserveUUID--bypassDocumentValidation
We are trying to understand how these scenarios are expected to be handled when using PBM as the primary backup and restore solution.
We would appreciate any clarification on how PBM internally handles these restore scenarios,
whether there are design considerations behind not exposing these options directly.
And what the recommended best practices are for organizations migrating from a traditional mongodump/mongorestore workflow.
Thank you!