Restore a Collection from Queryable Legacy Backup
On this page
Legacy Backup Deprecated
Effective 23 March 2020, all new clusters can only use Cloud Backups.
When you upgrade to 4.2, your backup system upgrades to cloud backup if it is currently set to legacy backup. After this upgrade:
All your existing legacy backup snapshots remain available. They expire over time in accordance with your retention policy.
Your backup policy resets to the default schedule. If you had a custom backup policy in place with legacy backups, you must re-create it with the procedure outlined in the Cloud Backup documentation.
Atlas supports restoring a collection by querying a legacy backup snapshot.
Atlas doesn't support querying Cloud Backups.
You can use a queryable backup snapshot to export data for a collection and restore to the target deployment. The following procedure connects to the queryable backup instance via an Atlas-provided tunnel.
You must have the
Project Owner role for the Atlas
projects that contain the source and target clusters to restore
data from one Atlas cluster to another.
Client Operations during Restoration
You must ensure that the target Atlas cluster doesn't receive client requests during restoration. The following use cases apply:
If you plan to restore to the same database, you must stop the client operations during restoration.
If you plan to restore to a different database, you don't need to stop the client applications. In this case, you can restore to a new Atlas cluster and reconfigure your application to use that new cluster once the new deployment is running.
Navigate to the Legacy Backup page for your project.
If it is not already displayed, select the organization that contains your desired project from the Organizations menu in the navigation bar.
If it is not already displayed, select your desired project from the Project menu in the navigation bar.
Click Legacy Backup in the sidebar.
Select the snapshot to query.
The Overview tab on the Legacy Backup page lists the project's clusters.
If backup is enabled for the cluster, the Status is Active.
If backup is disabled for the cluster, the Status is Inactive.
For the deployment whose backup you want to query, click the ellipsis in the Options column and select Query.
You can also click View All Snapshots to view its snapshots and click Query under the Actions column for the desired snapshot.
Open a Backup Tunnel to the Queryable Snapshot.
Select the snapshot to query and click Next.
Start the process to query a snapshot. You will be prompted to enter your Atlas password.
Select Backup Tunnel as the connection method to the queryable snapshot.
Select your Platform.
Click Download Backup Tunnel.
Uncompress the downloaded file.
Open a terminal or command prompt and go to the uncompressed <tunnel> directory. Run the executable to start the tunnel.
The default port for the tunnel is
27017. To change the port, use the
--localflag, as in the following example:
./<tunnel executable> --local localhost:27020
If you change the port, you must include the port information when connecting.
mongodump to export a single collection from the queryable backup.
- To export the data for a collection:
Include the following options to connect to the tunnel:
--portset to the port for the tunnel.
--dbset to the name of the database to export.
--collectionset to the name of the collection to export.
--outset to an empty directory to output the data dump.
Ensure that the user running
mongodumpcan write to the specified directory.
mongodump --port <port for tunnel> --db <single-database> --collection <collection-name> --out <data-dump-path>
For example, to connect to a tunnel running on port
27020to dump out data from the
mongodump --port 27020 --db test --collection restaurants --out /mydata/restoredata/
restaurantscollection data into the
mongorestore to restore the single collection.
- To restore a single collection:
Include the following
To restore to an Atlas cluster, we recommend you connect with a DNS seed list using the
--uriset to the connection string for the destination cluster.
--dbset to the name of the destination database.
--collectionset to the name of the destination collection.
Optionally, you can include the
--dropoption to drop the collection in the destination cluster if the collection already exists.
mongorestore --uri "mongodb+srv://username:firstname.lastname@example.org" --db <destination-database> --collection <destination-collection> <data-dump-path/dbname/collection.bson> --drop
For example, to restore from the
/mydata/restoredata/test/restaurants.bson data file to a new
rest2 in the
mongorestore --uri "mongodb+srv://username:email@example.com" --db test2 --collection rest2 /mydata/restoredata/test/restaurants.bson --drop