Make a selective logical backup¶
Before you start¶
- Install and set up Percona Backup for MongoDB
- Check that
pbm agentis running with thepbm statuscommand -
Check that all
pbm-agentsand PBM CLI have the same version. Otherwise we cannot guarantee successful backups and data consistency in them.To check the version, run the following commands:
pbm statusto check the version of pbm-agentspbm versionto check the version of PBM CLI.
Procedure¶
Version added: 2.0.0
Before you start, read about selective backups known limitations.
To make a selective backup, run the pbm backup command and provide the value for the --ns flag in the format <database.collection>. The --ns flag value is case sensitive. For example, to back up the “Payments” collection, run the following command:
pbm backup --ns=customers.payments
To back up the “Invoices” database and all collections that it includes, run the pbm backup command as follows:
pbm backup --ns=invoices.*
To back up multiple namespaces, specify them as a comma-separated list for the --ns flag: <db1.col1>,<db2.*>,<db3.collX>. The number of namespaces to specify is unlimited.
During the backup process, Percona Backup for MongoDB stores data in the new multi-file format where each collection has a separate file. The oplog is stored for all namespaces regardless whether this is a full or selective backup.
Multi-format is the default data format for both full and selective backups since it allows selective restore. Note, however, that you can make only full restores from backups made with earlier versions of Percona Backup for MongoDB.
Selective backup with users and roles¶
Overview¶
Percona Backup for MongoDB enables you to perform selective backups of databases and collections. Also, you can choose to include users and roles defined in the database in your selective backup, ensuring that access control is restored along with the data.
To back up a specific namespace and include users and roles, run the following command:
pbm backup --ns="mydb.*" --with-users-and-roles
where:
--ns="mydb.*" → specifies the namespace (all collections in mydb).
--with-users-and-roles → includes all users and custom roles defined in mydb in the backup.
What happens under the hood?
- Percona Backup for MongoDB captures all collections within
mydb. - Percona Backup for MongoDB filters the users and roles for entities where the
dbfield matchesmydb. - Global administrative roles or users defined in other databases are excluded.
Example
pbm backup --ns="invoices.*" --with-users-and-roles
This command backs up all collections in the invoices database, along with its users and roles.
Use cases¶
As applications scale, migrating a specific database from a shared cluster to a dedicated cluster becomes necessary. Using the --with-users-and-roles flag ensures that the destination cluster inherits the application-specific users and custom roles immediately, thereby preventing errors post-migration.
To reproduce production issues or validate security patches, you need a staging environment that mirrors production exactly.
By backing up mydb together with its users and roles, the copy reflects not only the data but also the access-control model. This enables accurate reproduction of permission-related behavior such as read/write restrictions, role grants, and user privileges.
Next steps¶
Useful links¶
Created: February 11, 2026