Percona Backup for MongoDB 2.14.0 (2026-04-29)¶
Percona Backup for MongoDB (PBM) is a distributed, low-impact solution for creating consistent backups of MongoDB sharded clusters and replica sets, and restoring them to a specific point in time.
Release highlights¶
Concurrent streaming for faster MinIO uploads¶
This release significantly improves the performance of uploading files to MinIO storage. By enabling concurrent part uploads, large file transfers can achieve improved throughput and efficiency.
To ensure reliability, PBM includes built‑in optimizations and fallbacks:
-
Small files: If the file is smaller than the upload part size, concurrent upload is automatically disabled (since it’s unnecessary).
-
Empty streams: If the MinIO library reports an unexpected error for empty streams, PBM will retry the request with ConcurrentStreamParts disabled.
These safeguards ensure that concurrent uploads deliver performance benefits without compromising stability.
Example
storage:
type: s3
s3:
endpointUrl: https://minio.example.com
bucket: pbm-backups
credentials:
accessKey: <ACCESS_KEY>
secretKey: <SECRET_KEY>
Breaking change
Since an interactive prompt is now printed, automation and scripts must use the -y flag to bypass this confirmation (same as for delete operations).
Interactive confirmation for restore, cleanup, delete-pitr, and delete-backup commands¶
To reduce the risk of executing accidental or unintended irreversible operations such as pbm restore, pbm cleanup, pbm delete-pitr, and pbm delete-backup, they now include an interactive confirmation prompt. This requires explicit user approval before an operation is executed.
With the new confirmation step, restores are safer and less prone to human error. See some examples below:
$ pbm restore --time 2026-03-31T13:23:00
Restore: 2026-03-31T13:37:06.852575976Z to point-in-time 2026-03-31T13:23:00 from '2026-03-31T13:22:06Z'
Are you sure you want to start the restore? [y/N] y
Starting restore 2026-03-31T13:37:06.852575976Z to point-in-time 2026-03-31T13:23:00 from '2026-03-31T13:22:06Z'................................
$ pbm cleanup --older-than 2026-03-31T14:15:32
Snapshots:
- "2026-03-31T14:15:07Z" [size: 130.43KB type: <logical>, restore time: 2026-03-31T14:15:13Z]
- "2026-03-31T14:15:16Z" [size: 170.51KB type: <physical>, restore time: 2026-03-31T14:15:18Z]
Are you sure you want to delete? [y/N] y
Processing by agents. Please check status later
$ pbm delete-pitr --all
PITR chunks (by replset name): rs1:
2026-03-31T10:55:53 - 2026-03-31T10:58:11
Are you sure you want to delete ALL chunks? [y/N] y
Processing by agents. Please check status later
$ pbm delete-backup 2026-03-31T10:55:27Z
Snapshots:
- "2026-03-31T10:55:27Z" [size: 130.55KB type: <logical>, restore time: 2026-03-31T10:55:32Z]
Are you sure you want to delete this backup? [y/N] y
Waiting for delete to be done .[done]
...
For users who are automating PBM operations, PBM CLI introduces -y and --yes to force the execution of a given command without a confirmation prompt. See details in TBD
Changelog¶
New features¶
-
PBM-1598: Added a new parameter,
backup.timeouts.balancerWait(in minutes), to control how long PBM waits for the MongoDB balancer to stop when executing the admin command_configsvrBalancerStop. This change prevents backup and restore operations from hanging indefinitely due to extended chunk migrations. -
PBM-1600: We have added a confirmation prompt to the
pbm restore,pbm cleanup,pbm delete-pitr, andpbm deletecommands to help avoid accidental restores. Before the restore starts, you will now have to explicitly confirm the action. This change is intended to reduce the risk of unintentionally running a command that cannot be undone. -
PBM-1730: Previously, if the balancer was not stopped before initiating a restore, PBM would only log an error followed by a warning from the subsequent balancer status check. While this behavior was generally acceptable for physical restores (since
mongodis shut down later in the process), it could lead to issues during logical restores. PBM now provides clearer handling of balancer state during restore operations, reducing the risk of restore inconsistencies and improving reliability for logical restore workflows.
Improvement¶
-
PBM-1167: Physical restore with Point-in-Time Recovery (PITR) has been enhanced to provide more consistent and flexible recovery behavior across replica set nodes. PITR oplog entries are now applied to all nodes, not just the former Primary, ensuring that all nodes have identical data files and oplog history after restore.
-
PBM-1638: Percona Backup for MongoDB (PBM) now provides enhanced support for encrypted data when using external KMS providers, such as KMIP. During backup operations, PBM automatically captures and stores the master encryption key identifier (for example, security.kmip.keyIdentifier) in the backup metadata, even if the identifier is not explicitly defined in
mongod.confat the time of the backup. This enables seamless and automated restore workflows without requiring users to manually track or store the encryption key identifier externally. -
PBM-1639: Previously, physical restore operations were stuck if Percona Backup for MongoDB (PBM) ignored a shutdown command failure during restore. This issue has been addressed, and PBM now properly handles shutdown command failures, ensuring that restore workflows complete as expected without hanging.
-
PBM-1653: Improved file upload performance for MinIO-compatible storage by enabling the MinIO SDK
ConcurrentStreamPartsoption for parallel uploads. -
PBM-1703: Previously, PBM generated repeated 404 error messages in S3 storage related to
.pbm.init.pbmpart.1objects. While these messages did not affect backup integrity, they cluttered logs and consumed storage space. PBM now suppresses these redundant error messages, resulting in cleaner S3 logs and more efficient storage usage during backup initialization. -
PBM-1721: Improved physical restores behavior when a restore would hang indefinitely if PBM encountered an “Unauthorized” error while attempting to shut down a
mongodnode via a non-localhost connection interface. The restore process now correctly detects this error and terminates with a descriptive message, clarifying that localhost connections are required for node shutdown when running MongoDB without authentication. This use case was added to Known limitations for backups and restores.
Fixed bugs¶
-
PBM-1345: Fixed an issue where a PITR slicer failure on one replica set did not stop the overall PITR process. PBM now correctly stops the PITR operation when a slicer fails on any replica set, preventing incomplete or inconsistent PITR execution.
-
PBM-1472: Fixed an issue where an extra slash in the bucket or prefix configuration caused PBM to fail to save or locate backups in storage. PBM now correctly handles such paths, ensuring reliable backup storage and discovery.
-
PBM-1586: During backup operations, if the PBM agent crashed, the CLI process continued to wait indefinitely without returning control to the user. This behavior caused stalled sessions and required manual intervention. The issue has now been resolved.
-
PBM-1599: Fixed an issue where the
pbm-agenttook longer to start a backup, causingpbm-clito timeout and exit prematurely. Now,pbm-clicorrectly waits for the agent to begin the backup process before proceeding. -
PBM-1609: Resolved an issue in restores with PITR enabled where the log incorrectly displayed “oplog slicer disabled” while PBM continued attempting to upload oplog slices. The restore process now correctly reflects the PITR state and avoids unnecessary oplog slice uploads.
-
PBM-1629: Resolved an issue where backups failed because PBM miscalculated collection size when
backup.compressionwas set tonone. Backups now complete successfully with compression disabled. -
PBM-1648: Resolved an issue with
pbm backup --waitwhere the command continued waiting even after the backup had failed, and did not return a non-zero error code. The command now correctly exits with a non-zero code when a backup failure is detected. -
PBM-1657: Resolved an issue in the PBM CLI that prevented the correct parsing of
mongodb+srvURIs and returned an inaccurate error message stating “unescaped colon in password”, although no colon was present. The CLI now properly parsesmongodb+srvURIs and provides an accurate error message. -
PBM-1683: Fixed an issue where
pbm describe-backupreported an incorrect, inflated value forsize_uncompressed_hon non-base incremental backups. This field now accurately reflects the uncompressed size of the incremental data rather than cumulative or bloated values.
Created: April 24, 2026