Restore a Database or Collection from Queryable Legacy Backup¶
On this page
MongoDB deprecated the Legacy Backup feature. Clusters that use Legacy Backup can continue to use it. MongoDB recommends using Cloud Backups. Effective 23 March 2020, all new clusters can only use Cloud Backups.
Atlas supports restoring a database or collection by querying a legacy backup snapshot.
Atlas does not support querying Cloud Backups.
You can use a queryable backup snapshot to export data for a database or 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.
Prerequisites¶
Stop Client Operations during Restoration¶
You must ensure that the target Atlas cluster does not receive client requests during restoration. You must either:
- Restore to a new Atlas cluster and reconfigure your application to use that new cluster once the new deployment is running, or
- Ensure that the target Atlas cluster cannot receive client requests while you restore data.
Procedure¶
Click Legacy Backup in the left navigation.¶
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--local
flag, as in the following example:./<tunnel executable> --local localhost:27020 NoteIf you change the port, you must include the port information when connecting.
Use mongodump
to export a single database or collection from the queryable backup.¶
- To export the data from a database:
Include the following
mongodump
options to connect to the tunnel:--port
set to the port for the tunnel.--db
set to the name of the database to export.--out
set to an empty directory to output the data dump.ImportantEnsure that the user running
mongodump
can write to the specified directory.
mongodump --port <port for tunnel> --db <single-database> --out <data-dump-path> For example, to connect to a tunnel running on port
27020
to dump out data from thetest
database to the/mydata/restoredata/
directory:mongodump --port 27020 --db test --out /mydata/restoredata/ mongodump
outputs thetest
database files into the/mydata/restoredata/test/
directory.If
mongodump
is not in your$PATH
, specify the path for the tool when running the command.- To export the data for a collection:
Include the following options to connect to the tunnel:
--port
set to the port for the tunnel.--db
set to the name of the database to export.--collection
set to the name of the collection to export.--out
set to an empty directory to output the data dump.ImportantEnsure that the user running
mongodump
can 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
27020
to dump out data from therestaurants
collection fromtest
database to/mydata/restoredata/
directory:mongodump --port 27020 --db test --collection restaurants --out /mydata/restoredata/ mongodump
outputs therestaurants
collection data into the/mydata/restoredata/test/restaurants.bson
file.
Use mongorestore
to restore the single database or collection.¶
- To restore a single database:
Include the following
mongorestore
options:NoteTo restore to an Atlas cluster, we recommend you connect with a DNS seed list connection string using the
--uri
option.--uri
set to the connection string for the destination cluster.--db
set to the name of the destination database.
NoteIf your password contains special characters, it must be percent-encoded.
Optionally, you can include the
--drop
option to drop the database in the destination cluster if the database already exists.
For example, to restore from the /mydata/restoredata/test
directory to a new database restoredTest
:
- To restore a single collection:
Include the following
mongorestore
options:NoteTo restore to an Atlas cluster, we recommend you connect with a DNS seed list using the
--uri
option.--uri
set to the connection string for the destination cluster.--db
set to the name of the destination database.--collection
set to the name of the destination collection.
Optionally, you can include the
--drop
option to drop the collection in the destination cluster if the collection already exists.
mongorestore --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" --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
collection rest2
in the test2
database:
mongorestore --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" --db test2 --collection rest2 /mydata/restoredata/test/restaurants.bson --drop
Terminate the queryable instance.¶
Once you have finished, you can terminate the queryable instance:
- Click Backup in the left navigation pane and click the Restores & Downloads tab.
- Hover over the Status column for the target deployment item and click Cancel.
- Click Cancel Restore Job.
Restart your appplication.¶
Restart your application and ensure it uses the new target cluster.