Skip to content
Merged
Show file tree
Hide file tree
Changes from 90 commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
c94e1a7
Release-notes-2.14.0
rasika-chivate Apr 1, 2026
06c3c4d
Update 2.14.0.md
rasika-chivate Apr 1, 2026
211759b
Update 2.14.0.md
rasika-chivate Apr 1, 2026
cc0f9bc
Update 2.14.0.md
rasika-chivate Apr 2, 2026
074b860
Update 2.14.0.md
rasika-chivate Apr 2, 2026
91ae7cc
Update 2.14.0.md
rasika-chivate Apr 2, 2026
74abed7
added admo
rasika-chivate Apr 2, 2026
6fe0fc9
Update 2.14.0.md
rasika-chivate Apr 2, 2026
0ef36b2
Update 2.14.0.md
rasika-chivate Apr 2, 2026
969fd4a
Update 2.14.0.md
rasika-chivate Apr 2, 2026
6be3665
Update 2.14.0.md
rasika-chivate Apr 2, 2026
a9c26ec
Update 2.14.0.md
rasika-chivate Apr 2, 2026
fedc2b4
Update 2.14.0.md
rasika-chivate Apr 2, 2026
5a83e87
Update 2.14.0.md
rasika-chivate Apr 2, 2026
d609a4b
Update 2.14.0.md
rasika-chivate Apr 2, 2026
e486d7a
Update 2.14.0.md
rasika-chivate Apr 15, 2026
36f4c85
Update 2.14.0.md
rasika-chivate Apr 15, 2026
f89d23b
Update 2.14.0.md
rasika-chivate Apr 15, 2026
8161b9c
PBM-1167
rasika-chivate Apr 15, 2026
e172265
PBM-1167
rasika-chivate Apr 15, 2026
90902f9
PBM-1638
rasika-chivate Apr 15, 2026
13e8337
PBM-1639
rasika-chivate Apr 15, 2026
790b237
PBM-1653
rasika-chivate Apr 15, 2026
5dd0cbe
PBM-1703
rasika-chivate Apr 15, 2026
565c5d0
Update 2.14.0.md
rasika-chivate Apr 15, 2026
722c93d
PBM-1345
rasika-chivate Apr 16, 2026
6142815
PBM-1472
rasika-chivate Apr 16, 2026
2496dfd
Update 2.14.0.md
rasika-chivate Apr 16, 2026
16acc2b
PBM-1599
rasika-chivate Apr 17, 2026
5cdfd04
PBM-1609
rasika-chivate Apr 17, 2026
a0c3f09
PBM-1629
rasika-chivate Apr 17, 2026
01b1ab8
Update 2.14.0.md
rasika-chivate Apr 17, 2026
d476abf
Update 2.14.0.md
rasika-chivate Apr 17, 2026
51b8ca8
Update 2.14.0.md
rasika-chivate Apr 17, 2026
5a2cac7
updated the example
rasika-chivate Apr 17, 2026
fe66a27
Update docs/release-notes/2.14.0.md
rasika-chivate Apr 17, 2026
86b48e4
Update docs/release-notes/2.14.0.md
rasika-chivate Apr 17, 2026
dc72369
Update docs/release-notes/2.14.0.md
rasika-chivate Apr 17, 2026
c83e30d
Update docs/release-notes/2.14.0.md
rasika-chivate Apr 17, 2026
f1cece3
Update docs/release-notes/2.14.0.md
rasika-chivate Apr 17, 2026
598fac5
Update docs/release-notes/2.14.0.md
rasika-chivate Apr 17, 2026
4e11e92
Update docs/release-notes/2.14.0.md
rasika-chivate Apr 17, 2026
8b33fa0
Update release-notes.md
rasika-chivate Apr 17, 2026
972b744
Update 2.14.0.md
rasika-chivate Apr 17, 2026
3d14e7b
Update 2.14.0.md
rasika-chivate Apr 17, 2026
adc483e
removed PBM-1480
rasika-chivate Apr 17, 2026
d9cc1f5
Update 2.14.0.md
rasika-chivate Apr 17, 2026
073c013
Update 2.14.0.md
rasika-chivate Apr 17, 2026
707ecca
PBM-1598 Add timeout to admin command _configsvrBalancerStop
rasika-chivate Apr 17, 2026
4263ae3
Update backup-options.md
rasika-chivate Apr 17, 2026
eeb5780
Update docs/reference/backup-options.md
rasika-chivate Apr 17, 2026
4d82006
Update docs/reference/backup-options.md
rasika-chivate Apr 17, 2026
8c8e74e
Update docs/reference/backup-options.md
rasika-chivate Apr 17, 2026
aa37111
Update docs/reference/backup-options.md
rasika-chivate Apr 17, 2026
e975e71
Update backup-options.md
rasika-chivate Apr 17, 2026
818daa2
format fix
rasika-chivate Apr 17, 2026
3aeb0c2
Update backup-options.md
rasika-chivate Apr 17, 2026
0d46b42
Update backup-options.md
rasika-chivate Apr 17, 2026
4aadf1d
PBM-1598: Document what value 0 means for backup.timeouts.balancerStop
Copilot Apr 17, 2026
c7af851
Update docs/reference/backup-options.md
rasika-chivate Apr 17, 2026
db0059d
Update backup-options.md
rasika-chivate Apr 17, 2026
5285832
Update docs/reference/backup-options.md
rasika-chivate Apr 17, 2026
dbb5e59
Update pitr-physical.md
rasika-chivate Apr 17, 2026
a192056
Revert "Update pitr-physical.md"
rasika-chivate Apr 17, 2026
4c2a702
PBM-1167
rasika-chivate Apr 17, 2026
d415a85
Reconcile PITR oplog behavior: update sharded-cluster bullet to refle…
Copilot Apr 17, 2026
d9e6e3d
Update pitr-physical.md
rasika-chivate Apr 17, 2026
3f018af
Merge branch 'PBM-1167-PITR-with-physical-backup-doesnt-recover-data'…
rasika-chivate Apr 17, 2026
603ce23
Update docs/usage/pitr-physical.md
rasika-chivate Apr 17, 2026
2bf8011
Update backup.timeouts.balancerStop description
radoslawszulgo Apr 22, 2026
65cfdae
Merge pull request #358 from percona/PBM-1598-Add-timeout-to-admin-co…
radoslawszulgo Apr 22, 2026
44dc821
Remove balancerStop timeout example from documentation
radoslawszulgo Apr 22, 2026
d3b978b
remove PBM-1720 from rel notes
radoslawszulgo Apr 22, 2026
93c887c
Add PBM-1721
radoslawszulgo Apr 22, 2026
5d5c890
PBM-1721 Enhance known limitations documentation
radoslawszulgo Apr 22, 2026
b65c601
Update release notes for version 2.14.0
radoslawszulgo Apr 22, 2026
f300736
Enhance interactive confirmation for multiple commands
radoslawszulgo Apr 22, 2026
7aacede
updated features list and a description of confirmation prompt
radoslawszulgo Apr 22, 2026
961c542
Fix ConcurrentStreamParts references and the description of optimized…
radoslawszulgo Apr 22, 2026
ac13ad3
Update default value description for balancerStop
radoslawszulgo Apr 22, 2026
e382267
Fix formatting of PBM CLI command options
radoslawszulgo Apr 22, 2026
99a5197
Merge pull request #359 from percona/PBM-1167-PITR-with-physical-back…
radoslawszulgo Apr 22, 2026
16d4a50
PBM-1600 describe confirmation prompt for restore operations
radoslawszulgo Apr 23, 2026
c9dd0dd
PBM-1600 add an admonition that there's a confirmation prompt before …
radoslawszulgo Apr 23, 2026
a635058
Apply suggestions from code review
radoslawszulgo Apr 23, 2026
55c9d8c
additional fixes in formating
radoslawszulgo Apr 23, 2026
1b97fd1
Apply suggestions from code review
radoslawszulgo Apr 24, 2026
d1b73cb
PBM-1600 fix the pbm restore command in multi-storage page and clarif…
radoslawszulgo Apr 24, 2026
9dd14ce
Merge pull request #364 from percona/PBM-1600-add-confirmation-prompt…
radoslawszulgo Apr 24, 2026
1e30a78
PBM-1638 added kmip key identifier to backup metadata (#365)
radoslawszulgo Apr 24, 2026
244ee68
Apply suggestions from code review
radoslawszulgo Apr 24, 2026
7bf6248
Fix description of highlights in 2.14.0
radoslawszulgo Apr 24, 2026
b3cfe50
Update pitr-selective.md
rasika-chivate Apr 27, 2026
24edef2
Fix formatting of limitation on physical restores
radoslawszulgo Apr 28, 2026
3c92ba2
Update physical.md
radoslawszulgo Apr 28, 2026
7a64353
Fix formatting for pre-requisites in pitr-selective.md
radoslawszulgo Apr 28, 2026
af1cfeb
Fix formatting and update admonition in documentation
radoslawszulgo Apr 28, 2026
04d48a5
Duplicate notes in restore-selective.md
radoslawszulgo Apr 28, 2026
bd83c84
Fix formatting for "Notes" section
radoslawszulgo Apr 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
build
source/ext/__pycache__
.vscode/

venv/

# Local Netlify folder
.netlify
Expand Down
7 changes: 5 additions & 2 deletions docs/features/known-limitations.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,18 @@ PBM supports various backup and restore types. Some of them have known limitatio
5. System collections in ``admin``, ``config``, and ``local`` databases cannot be backed up and restored selectively. You must make a full backup and restore to include them.
6. Selective point-in-time recovery is not supported for sharded clusters.

## Physical backups and restores
1. Physical restores are not supported for MongoDB instances running without authentication if the PBM agent connects via a non-localhost interface (such as a container hostname or external IP). Because MongoDB restricts the shutdown command to the localhost interface in non-authenticated environments, PBM will be unable to stop the node to perform the restore. To avoid this limitation, ensure that the PBM_MONGODB_URI uses a localhost connection or enable authentication for your MongoDB deployment.

## Oplog slicing for point-in-time recovery

Oplog slicing is an integral part of the point-in-time recovery routine that enables you to restore from a backup up to a specific moment. Read more about [point-in-time recovery](point-in-time-recovery.md).

**For MongoDB 8.0 and higher versions**
**MongoDB 8.0 and higher versions**

If you [unshard a collection :octicons-link-external-16:](https://www.mongodb.com/docs/v8.0/reference/command/unshardCollection/), make a fresh backup and re-enable point-in-time recovery oplog slicing to prevent data inconsistency and restore failure.

**For in MongoDB 5.0 and higher versions**
**MongoDB 5.0 and higher versions**

If you [reshard :octicons-link-external-16:](https://www.mongodb.com/docs/manual/core/sharding-reshard-a-collection/) a collection, make a fresh backup and re-enable point-in-time recovery oplog slicing to prevent data inconsistency and restore failure.

Expand Down
4 changes: 3 additions & 1 deletion docs/features/multi-storage.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,9 +163,11 @@ Before you start, make sure that `pbm-agents` have the read permissions to backu
2. To make a point-in-time restore, you must explicitly pass the backup name for the `pbm restore` command:

```bash
pbm-restore --time=<timestamp> --base-snapshot <backup-name>
pbm restore --time=<timestamp> --base-snapshot <backup-name>
```

!!! admonition "Version added: [2.14.0](../release-notes/2.14.0.md)"
Before a restore operation is executed you have to confirm the action (to bypass it, add the `-y` or `--yes` flag).
3. After the restore is complete, do the required post-restore steps depending on the restore type.
4. Make a fresh backup to serve as the new base for future restores.

Expand Down
24 changes: 7 additions & 17 deletions docs/features/physical.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ During physical backups and restores, ``pbm-agents`` don't export / import data

## Availability and system requirements

* Percona Server for MongoDB starting from versions 4.2.15-16, 4.4.6-8, 5.0 and higher.
* For current Percona Backup for MongoDB versions, physical backups require Percona Server for MongoDB 7.0 or newer. For support on older Percona Server for MongoDB versions, see the compatibility matrix in [Supported versions](../details/versions.md).
* WiredTiger storage engine, since physical backups heavily rely on the WiredTiger [`$backupCursor` :octicons-link-external-16:](https://docs.percona.com/percona-server-for-mongodb/latest/backup-cursor.html) functionality.

!!! warning
Expand Down Expand Up @@ -88,13 +88,8 @@ You can back up and restore data which is encrypted at rest. Thereby you ensure

During a backup, Percona Backup for MongoDB stores the encryption settings in the backup metadata. You can verify them using the [`pbm describe-backup`](../reference/pbm-commands.md#pbm-describe-backup) command. Note that the encryption key is not stored nor shown as part of the backup.

!!! important

Make sure that you know which master encryption key was used and keep it safe, as this key is required for the restore.

!!! note

Starting with [Percona Server for MongoDB version 4.4.19-19 :octicons-link-external-16:](https://docs.percona.com/percona-server-for-mongodb/4.4/release_notes/4.4.19-19.html), [5.0.15-13 :octicons-link-external-16:](https://docs.percona.com/percona-server-for-mongodb/5.0/release_notes/5.0.15-13.html), [6.0.5-4 :octicons-link-external-16:](https://docs.percona.com/percona-server-for-mongodb/6.0/release_notes/6.0.5-4.html) and higher, the master key rotation for data-at-rest encrypted with HashiCorp Vault has been improved to use the same secret key path on every server in your entire deployment. For the restore with earlier versions of Percona Server for MongoDB and PBM 2.0.5 and earlier, see the [Restore for Percona Server for MongoDB **before** 4.4.19-19, 5.0.15-13, 6.0.5-4 using HashiCorpVault](#restore-for-percona-server-for-mongodb-before-4419-19-5015-13-605-4-using-hashicorpvault) section.
!!! admonition "Version added: [2.14.0](../release-notes/2.14.0.md)"
For data-at-rest encryption setups that use an external KMS such as HashiCorp Vault or KMIP, the master encryption key identifier is required to restore the data. PBM stores this identifier in the backup metadata. You need Percona Server for MongoDB (PSMDB) 7.0.22-12 and 8.0.12-4 or higher to use this feature. If you're using older versions of PSMDB or PBM, you have to store the identifier externally.

To restore the encrypted data from the backup, configure the same data-at-rest encryption settings on all nodes of your destination cluster or replica set to match the settings of the original cluster where you made the backup.

Expand All @@ -105,14 +100,6 @@ To learn more about master key rotation, refer to the following documentation:
* [Master key rotation in HashiCorp Vault server :octicons-link-external-16:](https://docs.percona.com/percona-server-for-mongodb/6.0/vault.html#key-rotation)
* [KMIP master key rotation :octicons-link-external-16:](https://www.mongodb.com/docs/manual/tutorial/rotate-encryption-key/#kmip-master-key-rotation)

### Restore for Percona Server for MongoDB **before** 4.4.19-19, 5.0.15-13, 6.0.5-4 using HashiCorpVault

In Percona Server for MongoDB version **before** 4.4.19-19, 5.0.15-13, 6.0.5-4 with Vault server used for data-at-rest encryption, the master key rotation with the same key used for 2+ nodes is not supported. If you run these versions of Percona Server for MongoDB and PBM before 2.1.0, consider using the scenario where PBM restores the data on one node of every replica set. The remaining nodes receive the data during the initial sync.

Configure data-at-rest encryption on one node of every shard in your destination cluster or a replica set.

During the restore, Percona Backup for MongoDB restores the data on the node where the encryption key matches the one with which the backed up data was encrypted. The other nodes are not restored, so the restore has the "partlyDone" status. You can start this node and initiate the replica set. The remaining nodes receive the data as the result of the initial sync from the restored node.

## Physical restores with a fallback directory

!!! admonition "Version added: [2.10.0](../release-notes/2.10.0.md)"
Expand Down Expand Up @@ -191,7 +178,10 @@ A restore can succeed on most nodes, but it might fail on a few, resulting in a
```bash
pbm restore --time <time> --fallback-enabled=true --allow-partly-done=true
```


!!! admonition "Version added: [2.14.0](../release-notes/2.14.0.md)"
Before a restore operation is executed you have to confirm the action (to bypass it, add the `-y` or `--yes` flag).

If you allow partial restores (default value), PBM finalizes the restore. Once the cluster is up and running, the failed node receives the necessary data from other members through an initial sync.

If you deny partial restores, PBM treats a cluster as unhealthy and falls it back to the original state. In this case you must have the `restore.fallbackEnabled` option set to `true` or run the `pbm restore` command with the `--fallback-enabled` flag. Otherwise, a restore won't start.
Expand Down
5 changes: 4 additions & 1 deletion docs/features/restore-remapping.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,11 @@ Configure the replica set name mapping:
pbm restore <timestamp> --replset-remapping="rsX=rsA,rsY=rsB"
```

The `--replset-remapping` flag is available for the following commands: `pbm restore`, `pbm list`, `pbm status`, `pbm oplog-replay`.
The `--replset-remapping` flag is available for the following commands: `pbm restore`, `pbm list`, `pbm status`, `pbm oplog-replay`.

!!! admonition "Version added: [2.14.0](../release-notes/2.14.0.md)"
Before a restore operation is executed you have to confirm the action (to bypass it, add the `-y` or `--yes` flag).

!!! note

Follow the [post-restore steps](../usage/restore.md#post-restore-steps) on the new environment after the restore is complete.
Expand Down
43 changes: 37 additions & 6 deletions docs/reference/backup-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ backup:
numParallelCollections: <int>
```

### priority
## priority

*Type*: array of strings

Expand All @@ -27,7 +27,7 @@ If not set, the replica set nodes have the default priority as follows:
* secondary nodes - 1.0
* primary node - 0.5

### backup.compression
## backup.compression

*Type*: string <br>
*Default*: s2
Expand All @@ -39,7 +39,7 @@ When `none` is specified, backups are made without compression.
Supported values: `gzip`, `snappy`, `lz4`, `s2`, `pgzip`, `zstd`. Default: `s2`.

<!-- backup-compression-level: -->
### backup.compressionLevel
## backup.compressionLevel

*Type*: int

Expand All @@ -56,9 +56,40 @@ The following table shows available compression levels per compression method:

Note that the greater value you specify, the more time and computing resources it will take to compress the data.


## Backup timeouts

Timeout options control how long Percona Backup for MongoDB (PBM) waits for specific conditions during backup operations.

### backup.timeouts.balancerStop

*Type*: int <br>
*Default*: 0 (unlimited)

Defines the maximum time (in seconds) that PBM waits for the balancer to stop before starting a backup. If set to **0**, PBM waits indefinitely for the balancer to stop.

PBM stops the balancer before starting a backup to ensure consistency in sharded clusters. If the balancer does not stop within the specified timeout, the backup operation fails.
Comment thread
radoslawszulgo marked this conversation as resolved.

??? example "Example"

```yaml
backup:
timeouts:
balancerStop: 60
```

In this example, PBM waits up to 60 seconds for the balancer to stop. If the balancer is still running after this period, the backup fails.


This is useful when you want to:

- Avoid indefinite waits during backup operations
- Enforce stricter operational time limits in automated environments
- Detect and fail fast if the balancer cannot be stopped

### backup.timeouts.startingStatus

*Type*: unit32 <br>
*Type*: uint32 <br>
*Default*: 33

The wait time (in seconds) for PBM to start backups. This timeout controls how long PBM waits for the backup to transition from initial state to running status.
Expand All @@ -76,13 +107,13 @@ The wait time (in seconds) for PBM to start backups. This timeout controls how l

The 0 (zero) value resets the timeout to the default 33 seconds.

### backup.oplogSpanMin
## backup.oplogSpanMin

*Type*: float64 <br>

The duration (in minutes) of oplog slices saved with the logical backup snapshot. By default, the duration of backup oplog slices equals to the value defined for the [`pitr.oplogSpanMin`](pitr-options.md#pitroplogspanmin) option (default - 10 minutes). You can reduce the duration in heavy-loaded environments. Note that setting the duration to shorter periods may increase the overall backup execution time.

### backup.numParallelCollections
## backup.numParallelCollections

*Type*: int <br>
*Default*: number of CPU cores / 2
Expand Down
Loading