You can restore deleted containers and databases by using an Azure Resource Manager template.
Create or locate an Azure Cosmos DB resource in your template. Here's a generic example of a resource:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "msdocs-example-arm",
"type": "Microsoft.DocumentDB/databaseAccounts",
"apiVersion": "2022-02-15-preview",
"location": "West US",
"properties": {
"locations": [
{
"locationName": "West US"
}
],
"backupPolicy": {
"type": "Continuous"
},
"databaseAccountOfferType": "Standard"
}
}
]
}
To update the Azure Cosmos DB resource in your template:
- Set
properties.createMode
to restore
.
- Define a
properties.restoreParameters
object.
- Set
properties.restoreParameters.restoreTimestampInUtc
to a UTC time stamp.
- Set
properties.restoreParameters.restoreSource
to the instance identifier of the account that is the source of the restore operation.
{
"properties": {
"name": "<name-of-database-or-container>",
"restoreParameters": {
"restoreSource": "<source-account-instance-id>",
"restoreTimestampInUtc": "<timestamp>",
"restoreWithTtlDisabled": "true"
},
"createMode": "Restore"
}
}
To restore an sql container, update the following template as follows:
- Set resources.name to
<accountname>/databasename>/<containername>
- Set resources.properties.resource.createMode to restore.
- Set resources.properties.resource.restoreParameters.id container name.
- Set resources.properties.resource.restoreParameters.restoreTimestampInUtc to a UTC time stamp.
- Set resources.properties.resource.restoreParameters.restoreSource to the instance identifier of the account that is the source of the restore operation.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources":[{
"type": "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers",
"apiVersion": "2023-11-15",
"name": "<accountname>/<databasename>/<containername>",
"properties": {
"resource": {
"id": "<containername>",
"restoreParameters": {
"restoreSource": "/subscriptions/<subscriptionid>/providers/Microsoft.DocumentDB/locations/<lowercaselocationwithoutspace>/restorableDatabaseAccounts/<databaseaccountinstanceId>",
"restoreTimestampInUtc": "<restore timestamp is utc iso format>"
},
"createMode": "Restore"
}
}
}
]
}
To restore an sql database, update following template as follows:
- Set resources.name to
<accountname>/databasename>
- Set resources.properties.resource.createMode to restore.
- Set resources.properties.resource.restoreParameters.id database name.
- Set resources.properties.resource.restoreParameters.restoreTimestampInUtc to a UTC time stamp.
- Set resources.properties.resource.restoreParameters.restoreSource to the instance identifier of the account that is the source of the restore operation.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.DocumentDB/databaseAccounts/sqlDatabases",
"apiVersion": "2023-11-15",
"name": "<account name>/<database name>",
"properties": {
"resource": {
"id": "<database name>",
"restoreParameters": {
"restoreSource": "/subscriptions/<subscriptionId>/providers/Microsoft.DocumentDB/locations/<location>/restorableDatabaseAccounts/<databaseaccountinstanceid>",
"restoreTimestampInUtc": "restore timestamp"
},
"createMode": "Restore"
}
}
}
]
}
{
"properties": {
"name": "<name-of-database-or-collection>",
"restoreParameters": {
"restoreSource": "<source-account-instance-id>",
"restoreTimestampInUtc": "<timestamp>",
"restoreWithTtlDisabled": "true"
},
"createMode": "Restore"
}
}
To restore a mongo collection, update the following template as follows:
- Set resources.name to
<accountname>/databasename>/<collectionname>
- Set resources.properties.resource.createMode to restore.
- Set resources.properties.resource.restoreParameters.id collection name.
- Set resources.properties.resource.restoreParameters.restoreTimestampInUtc to a UTC time stamp.
- Set resources.properties.resource.restoreParameters.restoreSource to the instance identifier of the account that is the source of the restore operation.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.DocumentDB/databaseAccounts/ mongoDBDatabases/collections",
"apiVersion": "2023-11-15",
"name": "<accountname>/<databasename>/<collectionname>",
"properties": {
"resource": {
"id": "<collectionname>",
"restoreParameters": {
"restoreSource": "/subscriptions/<subscriptionid>/providers/Microsoft.DocumentDB/locations/<lowercaselocationwithoutspace>/restorableDatabaseAccounts/<databaseaccountinstanceId>",
"restoreTimestampInUtc": "<restore timestamp is utc iso format>"
},
"createMode": "Restore"
}
}
}
]
}
To restore a mongo database, update the following template as follows:
- Set resources.name to
<accountname>/databasename>
- Set resources.properties.resource.createMode to restore.
- Set resources.properties.resource.restoreParameters.id database name.
- Set resources.properties.resource.restoreParameters.restoreTimestampInUtc to a UTC time stamp.
- Set resources.properties.resource.restoreParameters.restoreSource to the instance identifier of the account that is the source of the restore operation.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.DocumentDB/databaseAccounts/mongoDBDatabases",
"apiVersion": "2023-11-15",
"name": "<account name>/<database name>",
"properties": {
"resource": {
"id": "<database name>",
"restoreParameters": {
"restoreSource": "/subscriptions/<subscriptionId>/providers/Microsoft.DocumentDB/locations/<location>/restorableDatabaseAccounts/<databaseaccountinstanceid>",
"restoreTimestampInUtc": "restore timestamp"
},
"createMode": "Restore"
}
}
}
]
}
{
"properties": {
"name": "<name-of-database-or-graph>",
"restoreParameters": {
"restoreSource": "<source-account-instance-id>",
"restoreTimestampInUtc": "<timestamp>",
"restoreWithTtlDisabled": "true"
},
"createMode": "Restore"
}
}
To restore a gremlin graph, update the following template as follows:
- Set resources.name to
<accountname>/databasename>/<graphname>
- Set resources.properties.resource.createMode to restore.
- Set resources.properties.resource.restoreParameters.id graph name.
- Set resources.properties.resource.restoreParameters.restoreTimestampInUtc to a UTC time stamp.
- Set resources.properties.resource.restoreParameters.restoreSource to the instance identifier of the account that is the source of the restore operation.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.DocumentDB/databaseAccounts/gremlinDatabases/graphs",
"apiVersion": "2023-11-15",
"name": "<accountname>/<databasename>/<graphname>",
"properties": {
"resource": {
"id": "<graphname>",
"restoreParameters": {
"restoreSource": "/subscriptions/<subscriptionid>/providers/Microsoft.DocumentDB/locations/<lowercaselocationwithoutspace>/restorableDatabaseAccounts/<databaseaccountinstanceId>",
"restoreTimestampInUtc": "<restore timestamp is utc iso format>"
},
"createMode": "Restore"
}
}
}
]
}
To restore a gremlin database, update the following template as follows:
- Set resources.name to
<accountname>/databasename>
- Set resources.properties.resource.createMode to restore.
- Set resources.properties.resource.restoreParameters.id database name.
- Set resources.properties.resource.restoreParameters.restoreTimestampInUtc to a UTC time stamp.
- Set resources.properties.resource.restoreParameters.restoreSource to the instance identifier of the account that is the source of the restore operation.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.DocumentDB/databaseAccounts/gremlinDatabases",
"apiVersion": "2023-11-15",
"name": "<account name>/<database name>",
"properties": {
"resource": {
"id": "<database name>",
"restoreParameters": {
"restoreSource": "/subscriptions/<subscriptionId>/providers/Microsoft.DocumentDB/locations/<location>/restorableDatabaseAccounts/<databaseaccountinstanceid>",
"restoreTimestampInUtc": "restore timestamp"
},
"createMode": "Restore"
}
}
}
]
}
{
"properties": {
"name": "<name-of-table>",
"restoreParameters": {
"restoreSource": "<source-account-instance-id>",
"restoreTimestampInUtc": "<timestamp>",
"restoreWithTtlDisabled": "true"
},
"createMode": "Restore"
}
}
To restore a table, update the following template as follows:
- Set resources.name to
<accountname>/tablename>
- Set resources.properties.resource.createMode to restore.
- Set resources.properties.resource.restoreParameters.id table name.
- Set resources.properties.resource.restoreParameters.restoreTimestampInUtc to a UTC time stamp.
- Set resources.properties.resource.restoreParameters.restoreSource to the instance identifier of the account that is the source of the restore operation.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.DocumentDB/databaseAccounts/tables",
"apiVersion": "2023-11-15",
"name": "<account name>/<table name>",
"properties": {
"resource": {
"id": "<table name>",
"restoreParameters": {
"restoreSource": "/subscriptions/<subscriptionId>/providers/Microsoft.DocumentDB/locations/<location>/restorableDatabaseAccounts/<databaseaccountinstanceid>",
"restoreTimestampInUtc": "restore timestamp"
},
"createMode": "Restore"
}
}
}
]
}
Deploy the template by using az deployment group create:
az deployment group create \
--resource-group <resource-group-name> \
--template-file <template-filename>