你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将已删除的容器或数据库还原到同一 Azure Cosmos DB 帐户
- 项目
适用对象: NoSQL MongoDB Gremlin 表
Azure Cosmos DB 的同一帐户时间点还原功能可帮助你在意外删除容器或数据库后进行恢复。 此功能可将已删除的数据库或容器还原到备份所在的任何区域中的同一现有帐户。 通过连续备份模式,可还原到过去 30 天内的任何时间点。
先决条件
- Azure 订阅。 如果还没有 Azure 订阅,可以在开始前创建一个免费 Azure 帐户。
- 一个 Azure Cosmos DB 帐户。 可以为 Azure Cosmos DB 帐户选择以下选项之一:
- 使用现有的 Azure Cosmos DB 帐户。
- 在 Azure 订阅中创建新的 Azure Cosmos DB 帐户。
- 创建 Azure Cosmos DB 免费试用帐户,无需承诺。
还原已删除的容器或数据库
使用 Azure 门户、Azure CLI、Azure PowerShell 或 Azure 资源管理器模板将已删除的容器或数据库还原到同一现有帐户中。
使用 Azure 门户还原已删除的容器或数据库。 子容器也会随之还原。
转到 Azure 门户。
转到你的 Azure Cosmos DB 帐户,然后转到“时间点还原”页面。
注意
只有在你拥有
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read
权限的情况下,才会填充 Azure 门户中的“还原”页。 若要详细了解此权限,请参阅备份和还原权限。选择“还原到同一帐户”选项卡。
对于数据库,输入搜索查询以筛选事件源,从而查找容器或数据库的相关删除事件。
接下来,指定“开始”和“结束”值以创建用于筛选删除事件的时间范围。
注意
“开始”筛选器限制为不早于当前日期前 30 天。
选择“刷新”以更新应用了筛选器的不同资源类型的事件列表。
验证时间,然后选择“还原”以开始还原所选定的以前删除的资源。
重要
在任何时间,同一帐户上最多只能有三个还原操作处于活动状态。 在还原操作过程中删除源帐户可能导致还原操作失败。
注意
事件源会将资源显示为“不可还原”。 源将提供有关资源无法还原的详细原因。 在大多数情况下,必须先还原父数据库,然后才能还原数据库的任何子容器。
启动还原操作后,使用 Azure 门户的通知区域跟踪该操作。 通知可提供正在还原的资源的状态。 还原过程中,容器的状态为“正在创建”。 还原操作完成后,状态将更改为“联机”。
使用 Azure CLI 还原已删除的容器或数据库。 子容器也会随之还原。
重要
需要 Azure CLI 版本 2.58.0 或更高版本才能访问帐户内还原命令。
使用 az cosmosdb restorable-database-account list 检索所有活动的和已删除的可还原数据库帐户的列表:
az cosmosdb restorable-database-account list \ --account-name <name-of-account>
[ { "accountName": "deleted-account-1", "apiType": "Sql", "creationTime": "2020-08-02T22:23:00.095870+00:00", "deletionTime": "2020-08-02T22:26:13.483175+00:00", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.DocumentDB/locations/westus/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234", "location": "West US", "name": "abcd1234-d1c0-4645-a699-abcd1234", "restorableLocations": [ { "locationName": "West US" }, { "locationName": "East US" } ] } ]
使用 az cosmosdb sql restorable-database list 列出实时帐户数据库的所有可还原版本:
az cosmosdb sql restorable-database list \ --instance-id <instance-id-of-account> \ --location <location>
注意
通过列出所有可还原数据库删除事件,可在存在的实际时间未知的情况下选择正确的数据库。 如果事件源的响应中包含 Delete 操作类型,则表示它是已删除的数据库,可在同一帐户中还原该数据库。 还原时间戳可以设置为删除时间戳之前且在保留时段内的任何时间戳。
使用 az cosmosdb sql restorable-container list 列出特定数据库中可还原容器的所有版本:
az cosmosdb sql restorable-container list \ --instance-id <instance-id-of-account> \ --database-rid <owner-resource-id-of-database> \ --location <location>
注意
通过列出所有可还原数据库删除事件,可在存在的实际时间未知的情况下选择正确的容器。 如果事件源的响应中包含 Delete 操作类型,则表示它是已删除的容器,可在同一帐户中还原该容器。 还原时间戳可以设置为删除时间戳之前且在保留时段内的任何时间戳。
使用 az cosmosdb sql database restore 为已删除的数据库启动还原操作。 还原时间戳是可选的,如果没有提供,则会还原上次删除的数据库实例。
az cosmosdb sql database restore \ --resource-group <resource-group-name> \ --account-name <account-name> \ --name <database-name> \ --restore-timestamp <timestamp> \ --disable-ttl True
使用 az cosmosdb sql database restore 为已删除的容器启动还原操作。 还原时间戳是可选的,如果没有提供,则会还原上次删除的容器实例。
az cosmosdb sql container restore \ --resource-group <resource-group-name> \ --account-name <account-name> \ --database-name <database-name> \ --name <container-name> \ --restore-timestamp <timestamp> \ --disable-ttl True
使用 az cosmosdb restorable-database-account list 检索所有活动的和已删除的可还原数据库帐户的列表:
az cosmosdb restorable-database-account list \ --account-name <name-of-account>
[ { "accountName": "deleted-account-1", "apiType": "Sql", "creationTime": "2020-08-02T22:23:00.095870+00:00", "deletionTime": "2020-08-02T22:26:13.483175+00:00", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.DocumentDB/locations/westus/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234", "location": "West US", "name": "abcd1234-d1c0-4645-a699-abcd1234", "restorableLocations": [ { "locationName": "West US" }, { "locationName": "East US" } ] } ]
使用 az cosmosdb mongodb restorable-database list 列出实时帐户数据库的所有可还原版本:
az cosmosdb mongodb restorable-database list \ --instance-id <instance-id-of-account> \ --location <location>
使用 az cosmosdb mongodb restorable-collection list 列出特定数据库中可还原集合的所有版本:
az cosmosdb mongodb restorable-collection list \ --instance-id <instance-id-of-account> \ --database-rid <owner-resource-id-of-database> \ --location <location>
使用 az cosmosdb mongodb database restore 为已删除的数据库启动还原操作。 还原时间戳是可选的,如果没有提供,则会还原上次删除的数据库实例。
az cosmosdb mongodb database restore \ --resource-group <resource-group-name> \ --account-name <account-name> \ --name <database-name> \ --restore-timestamp <timestamp> --disable-ttl True
使用 az cosmosdb mongodb collection restore 为已删除的集合启动还原操作。还原时间戳是可选的,如果没有提供,则会还原上次删除的集合实例。
az cosmosdb mongodb collection restore \ --resource-group <resource-group-name> \ --account-name <account-name> \ --database-name <database-name> \ --name <container-name> \ --restore-timestamp <timestamp> \ --disable-ttl True
使用 az cosmosdb restorable-database-account list 检索所有活动的和已删除的可还原数据库帐户的列表:
az cosmosdb restorable-database-account list \ --account-name <name-of-account>
[ { "accountName": "deleted-account-1", "apiType": "Sql", "creationTime": "2020-08-02T22:23:00.095870+00:00", "deletionTime": "2020-08-02T22:26:13.483175+00:00", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.DocumentDB/locations/westus/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234", "location": "West US", "name": "abcd1234-d1c0-4645-a699-abcd1234", "restorableLocations": [ { "locationName": "West US" }, { "locationName": "East US" } ] } ]
使用 az cosmosdb gremlin restorable-database list 列出实时帐户数据库的所有可还原版本:
az cosmosdb gremlin restorable-database list \ --instance-id <instance-id-of-account> \ --location <location>
使用 az cosmosdb gremlin restorable-graph list 列出特定数据库中可还原图形的所有版本:
az cosmosdb gremlin restorable-graph list \ --instance-id <instance-id-of-account> \ --database-rid <owner-resource-id-of-database> \ --location <location>
使用 az cosmosdb gremlin database restore 为已删除的数据库启动还原操作。 还原时间戳是可选的,如果没有提供,则会还原上次删除的数据库实例。
az cosmosdb gremlin database restore \ --resource-group <resource-group-name> \ --account-name <account-name> \ --name <database-name> \ --restore-timestamp <timestamp> \ --disable-ttl True
使用 az cosmosdb gremlin graph restore 为已删除的图形启动还原操作。 还原时间戳是可选的,如果没有提供,则会还原上次删除的图形实例。
az cosmosdb gremlin graph restore \ --resource-group <resource-group-name> \ --account-name <account-name> \ --database-name <database-name> \ --name <graph-name> \ --restore-timestamp <timestamp> \ --disable-ttl True
使用 az cosmosdb restorable-database-account list 检索所有活动的和已删除的可还原数据库帐户的列表:
az cosmosdb restorable-database-account list \ --account-name <name-of-account>
[ { "accountName": "deleted-account-1", "apiType": "Sql", "creationTime": "2020-08-02T22:23:00.095870+00:00", "deletionTime": "2020-08-02T22:26:13.483175+00:00", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.DocumentDB/locations/westus/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234", "location": "West US", "name": "abcd1234-d1c0-4645-a699-abcd1234", "restorableLocations": [ { "locationName": "West US" }, { "locationName": "East US" } ] } ]
使用 az cosmosdb table restorable-table list 列出实时帐户的所有可还原表版本:
az cosmosdb table restorable-table list \ --instance-id <instance-id-of-account> \ --location <location>
使用 az cosmosdb table restore 为已删除的表启动还原操作。 还原时间戳是可选的,如果没有提供,则会还原上次删除的表实例。
az cosmosdb table restore \ --resource-group <resource-group-name> \ --account-name <account-name> \ --table-name <table-name> \ --restore-timestamp <timestamp> \ --disable-ttl True
使用 Azure PowerShell 还原已删除的容器或数据库。 子容器和数据库也会随之还原。
重要
需要 Azure PowerShell 版本 1.14.1 或更高版本的 Az.Cosmos DB 模块才能访问帐户内还原 cmdlet。
使用 [Get-AzCosmosDBRestorableDatabaseAccount](/powershell/module/az.cosmosdb/get-azCosmos DBrestorabledatabaseaccount) cmdlet 检索所有活动的和已删除的可还原数据库帐户的列表:
Get-AzCosmosDBRestorableDatabaseAccount
Id : /subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/westus/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234 DatabaseAccountInstanceId : abcd1234-d1c0-4645-a699-abcd1234 Location : West US DatabaseAccountName : deleted-account-1 CreationTime : 8/2/2020 10:23:00 PM DeletionTime : 8/2/2020 10:26:13 PM ApiType : Sql RestorableLocations : {West US, East US}
注意
帐户具有
CreationTime
或DeletionTime
字段。 区域也存在这些字段。 通过这些时间,你可以选择正确的区域和还原资源时要使用的有效时间范围。使用 Get-AzCosmosDBSqlRestorableDatabase cmdlet 列出实时帐户数据库的所有可还原版本:
$parameters = @{ DatabaseAccountInstanceId = "<instance-id-of-account>" Location = "<location>" } Get-AzCosmosDBSqlRestorableDatabase @parameters
注意
通过列出所有可还原数据库删除事件,可在存在的实际时间未知的情况下选择正确的数据库。 如果事件源的响应中包含 Delete 操作类型,则它是已删除的数据库,可在同一帐户中还原该数据库。 还原时间戳可以设置为删除时间戳之前且在保留时段内的任何时间戳。
使用 Get-AzCosmosDBSqlRestorableContainer cmdlet 列出特定数据库中可还原容器的所有版本:
$parameters = @{ DatabaseAccountInstanceId = "<instance-id-of-account>" DatabaseRId = "<owner-resource-id-of-database>" Location = "<location>" } Get-AzCosmosDBSqlRestorableContainer @parameters
注意
通过列出所有可还原数据库删除事件,可在存在的实际时间未知的情况下选择正确的容器。 如果事件源的响应中包含 Delete 操作类型,则它是已删除的容器,可在同一帐户中还原该容器。 还原时间戳可以设置为删除时间戳之前且在保留时段内的任何时间戳。
使用 Restore-AzCosmos DBSqlDatabase cmdlet 为已删除的数据库启动还原操作。 还原时间戳是可选的。 如果没有此时间戳,则会还原上次删除的数据库实例。
$parameters = @{ ResourceGroupName = "<resource-group-name>" AccountName = "<account-name>" Name = "<database-name>" RestoreTimestampInUtc = "<timestamp>" } Restore-AzCosmos DBSqlDatabase @parameters
使用 Restore-AzCosmos DBSqlContainer cmdlet 为已删除的容器启动还原操作。 还原时间戳是可选的。 如果没有此时间戳,则会还原上次删除的容器实例。
$parameters = @{ ResourceGroupName = "<resource-group-name>" AccountName = "<account-name>" DatabaseName = "<database-name>" Name = "<container-name>" RestoreTimestampInUtc = "<timestamp>" DisableTtl= $true } Restore-AzCosmos DBSqlContainer @parameters
使用 Get-AzCosmosDBRestorableDatabaseAccount cmdlet 检索所有活动的和已删除的可还原数据库帐户的列表:
Get-AzCosmosDBRestorableDatabaseAccount
Id : /subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/westus/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234 DatabaseAccountInstanceId : abcd1234-d1c0-4645-a699-abcd1234 Location : West US DatabaseAccountName : deleted-account-1 CreationTime : 8/2/2020 10:23:00 PM DeletionTime : 8/2/2020 10:26:13 PM ApiType : Sql RestorableLocations : {West US, East US}
注意
帐户具有
CreationTime
或DeletionTime
字段。 区域也存在这些字段。 通过这些时间,你可以选择正确的区域和还原资源时要使用的有效时间范围。使用 Get-AzCosmosDBMongoDBRestorableDatabase 列出实时帐户数据库的所有可还原版本:
$parameters = @{ DatabaseAccountInstanceId = "<instance-id-of-account>" Location = "<location>" } Get-AzCosmosDBMongoDBRestorableDatabase @parameters
使用 Get-AzCosmosDBMongoDBRestorableCollection cmdlet 列出特定数据库中可还原集合的所有版本。 还原时间戳是可选的。 如果没有此时间戳,则会还原上次删除的集合实例。
$parameters = @{ DatabaseAccountInstanceId = "<instance-id-of-account>" DatabaseRId = "<owner-resource-id-of-database>" Location = "<location>" } Get-AzCosmosDBMongoDBRestorableCollection @parameters
使用 Restore-AzCosmos DBMongoDBDatabase cmdlet 为已删除的数据库启动还原操作:
$parameters = @{ ResourceGroupName = "<resource-group-name>" AccountName = "<account-name>" Name = "<database-name>" RestoreTimestampInUtc = "<timestamp>" DisableTtl=$true } Restore-AzCosmos DBMongoDBDatabase @parameters
使用 Restore-AzCosmos DBMongoDBCollection cmdlet 为已删除的集合启动还原操作。 还原时间戳是可选的,如果没有提供,则会还原上次删除的集合实例。
$parameters = @{ ResourceGroupName = "<resource-group-name>" AccountName = "<account-name>" DatabaseName = "<database-name>" Name = "<collection-name>" RestoreTimestampInUtc = "<timestamp>" DisableTtl=$true } Restore-AzCosmos DBMongoDBCollection @parameters
使用 Get-AzCosmosDBRestorableDatabaseAccount cmdlet 检索所有活动的和已删除的可还原数据库帐户的列表:
Get-AzCosmosDBRestorableDatabaseAccount
Id : /subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/westus/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234 DatabaseAccountInstanceId : abcd1234-d1c0-4645-a699-abcd1234 Location : West US DatabaseAccountName : deleted-account-1 CreationTime : 8/2/2020 10:23:00 PM DeletionTime : 8/2/2020 10:26:13 PM ApiType : Sql RestorableLocations : {West US, East US}
注意
帐户具有
CreationTime
或DeletionTime
字段。 区域也存在这些字段。 通过这些时间,你可以选择正确的区域和还原资源时要使用的有效时间范围。使用 Get-AzCosmosDBGremlinRestorableDatabase 列出实时帐户数据库的所有可还原版本:
$parameters = @{ DatabaseAccountInstanceId = "<instance-id-of-account>" Location = "<location>" } Get-AzCosmosDBGremlinRestorableDatabase @parameters
使用 Get-AzCosmosDBGremlinRestorableGraph cmdlet 列出特定数据库中可还原图形的所有版本:
$parameters = @{ DatabaseAccountInstanceId = "<instance-id-of-account>" DatabaseRId = "<owner-resource-id-of-database>" Location = "<location>" } Get-AzCosmosDBGremlinRestorableGraph @parameters
使用 Restore-AzCosmos DBGremlinDatabase cmdlet 为已删除的数据库启动还原操作。还原时间戳是可选的,如果没有提供,则会还原上次删除的数据库实例。
$parameters = @{ ResourceGroupName = "<resource-group-name>" AccountName = "<account-name>" Name = "<database-name>" RestoreTimestampInUtc = "<timestamp>" DisableTtl=$true } Restore-AzCosmos DBGremlinDatabase @parameters
使用 Restore-AzCosmos DBGremlinGraph cmdlet 为已删除的图形启动还原操作。还原时间戳是可选的,如果没有提供,则会还原上次删除的图形实例。
$parameters = @{ ResourceGroupName = "<resource-group-name>" AccountName = "<account-name>" DatabaseName = "<database-name>" Name = "<graph-name>" RestoreTimestampInUtc = "<timestamp>" DisableTtl=$true } Restore-AzCosmos DBGremlinGraph @parameters
使用 [Get-AzCosmosDBRestorableDatabaseAccount](/powershell/module/az.cosmosdb/get-azCosmos DBrestorabledatabaseaccount) cmdlet 检索所有活动的和已删除的可还原数据库帐户的列表:
Get-AzCosmosDBRestorableDatabaseAccount
Id : /subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/westus/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234 DatabaseAccountInstanceId : abcd1234-d1c0-4645-a699-abcd1234 Location : West US DatabaseAccountName : deleted-account-1 CreationTime : 8/2/2020 10:23:00 PM DeletionTime : 8/2/2020 10:26:13 PM ApiType : Sql RestorableLocations : {West US, East US}
注意
帐户具有
CreationTime
或DeletionTime
字段。 区域也存在这些字段。 通过这些时间,你可以选择正确的区域和还原资源时要使用的有效时间范围。使用 [Get-AzCosmosDBTableRestorableTable](/powershell/module/az.cosmosdb/get-azCosmos DBtablerestorabletable) cmdlet 列出实时帐户表的所有可还原版本:
$parameters = @{ DatabaseAccountInstanceId = "<instance-id-of-account>" Location = "<location>" } Get-AzCosmosDBTableRestorableTable @parameters
使用 Restore-AzCosmos DBTable cmdlet 为已删除的表启动还原操作。还原时间戳是可选的,如果没有提供,则会还原上次删除的表实例。
$parameters = @{ ResourceGroupName = "<resource-group-name>" AccountName = "<account-name>" Name = "<table-name>" RestoreTimestampInUtc = "<timestamp>" DisableTtl=$true } Restore-AzCosmos DBTable @parameters
可以使用 Azure 资源管理器模板还原已删除的容器和数据库。
在模板中创建或查找 Azure Cosmos DB 资源。 下面是资源的一般示例:
{ "$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" } } ] }
要更新模板中的 Azure Cosmos DB 资源,请执行以下操作:
- 将
properties.createMode
设置为restore
。 - 定义
properties.restoreParameters
对象。 - 将
properties.restoreParameters.restoreTimestampInUtc
设置为 UTC 时间戳。 - 将
properties.restoreParameters.restoreSource
设置为作为还原操作源的帐户的实例标识符。
{ "properties": { "name": "<name-of-database-or-container>", "restoreParameters": { "restoreSource": "<source-account-instance-id>", "restoreTimestampInUtc": "<timestamp>", "restoreWithTtlDisabled": "true" }, "createMode": "Restore" } }
- 将
若要还原 SQL 容器,请按如下所示更新以下模板:
- 将 resources.name 设置为
<accountname>/databasename>/<containername>
- 将 resources.properties.resource.createMode 设置为还原。
- 设置 resources.properties.resource.restoreParameters.id 容器名称。
- 将 resources.properties.resource.restoreParameters.restoreTimestampInUtc 设置为 UTC 时间戳。
- 将 resources.properties.resource.restoreParameters.restoreSource 设置为作为还原操作源的帐户的实例标识符。
{
"$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"
}
}
}
]
}
若要还原 SQL 数据库,请按如下所示更新以下模板:
- 将 resources.name 设置为
<accountname>/databasename>
- 将 resources.properties.resource.createMode 设置为还原。
- 设置 resources.properties.resource.restoreParameters.id 数据库名称。
- 将 resources.properties.resource.restoreParameters.restoreTimestampInUtc 设置为 UTC 时间戳。
- 将 resources.properties.resource.restoreParameters.restoreSource 设置为作为还原操作源的帐户的实例标识符。
{
"$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"
}
}
若要还原 Mongo 集合,请按如下所示更新以下模板:
- 将 resources.name 设置为
<accountname>/databasename>/<collectionname>
- 将 resources.properties.resource.createMode 设置为还原。
- 设置 resources.properties.resource.restoreParameters.id 集合名称。
- 将 resources.properties.resource.restoreParameters.restoreTimestampInUtc 设置为 UTC 时间戳。
- 将 resources.properties.resource.restoreParameters.restoreSource 设置为作为还原操作源的帐户的实例标识符。
{
"$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"
}
}
}
]
}
若要还原 Mongo 数据库,请按如下所示更新以下模板:
- 将 resources.name 设置为
<accountname>/databasename>
- 将 resources.properties.resource.createMode 设置为还原。
- 设置 resources.properties.resource.restoreParameters.id 数据库名称。
- 将 resources.properties.resource.restoreParameters.restoreTimestampInUtc 设置为 UTC 时间戳。
- 将 resources.properties.resource.restoreParameters.restoreSource 设置为作为还原操作源的帐户的实例标识符。
{
"$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"
}
}
若要还原 Gremlin 图形,请按如下所示更新以下模板:
- 将 resources.name 设置为
<accountname>/databasename>/<graphname>
- 将 resources.properties.resource.createMode 设置为还原。
- 设置 resources.properties.resource.restoreParameters.id 图形名称。
- 将 resources.properties.resource.restoreParameters.restoreTimestampInUtc 设置为 UTC 时间戳。
- 将 resources.properties.resource.restoreParameters.restoreSource 设置为作为还原操作源的帐户的实例标识符。
{
"$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"
}
}
}
]
}
若要还原 Gremlin 数据库,请按如下所示更新以下模板:
- 将 resources.name 设置为
<accountname>/databasename>
- 将 resources.properties.resource.createMode 设置为还原。
- 设置 resources.properties.resource.restoreParameters.id 数据库名称。
- 将 resources.properties.resource.restoreParameters.restoreTimestampInUtc 设置为 UTC 时间戳。
- 将 resources.properties.resource.restoreParameters.restoreSource 设置为作为还原操作源的帐户的实例标识符。
{
"$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"
}
}
若要还原表,请按如下所示更新以下模板:
- 将 resources.name 设置为
<accountname>/tablename>
- 将 resources.properties.resource.createMode 设置为还原。
- 设置 resources.properties.resource.restoreParameters.id 表名称。
- 将 resources.properties.resource.restoreParameters.restoreTimestampInUtc 设置为 UTC 时间戳。
- 将 resources.properties.resource.restoreParameters.restoreSource 设置为作为还原操作源的帐户的实例标识符。
{
"$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"
}
}
}
]
}
注意
使用 az cosmosdb restorable-database-account list 检索所有活动的和已删除的可还原数据库帐户的实例标识符列表。
使用 az deployment group create 部署模板:
az deployment group create \ --resource-group <resource-group-name> \ --template-file <template-filename>
跟踪还原操作的状态
针对已删除的容器或数据库启动时间点还原时,该操作会被标识为针对该资源的 InAccount 还原操作。
若要获取某个特定资源的还原操作列表,请使用 InAccount Restore Deleted 搜索筛选器和时间筛选器筛选帐户的活动日志。 返回的列表将包括 UserPrincipalName 字段,用于标识启动还原操作的用户。 有关如何访问活动日志的详细信息,请参阅审核时间点还原操作。
目前,若要获取帐户的活动日志,必须使用 Azure 门户。 使用 InAccount Restore Deleted 搜索筛选器和时间筛选器。
目前,若要获取帐户的活动日志,必须使用 Azure 门户。 使用 InAccount Restore Deleted 搜索筛选器和时间筛选器。
目前,若要获取帐户的活动日志,必须使用 Azure 门户。 使用 InAccount Restore Deleted 搜索筛选器和时间筛选器。
后续步骤
- 使用 Azure 门户、Azure PowerShell、Azure CLI 或 Azure 资源管理器启用连续备份。
- 了解如何将帐户从定期备份迁移到连续备份。
- 查看连续备份模式资源模型。
- 使用连续备份模式管理还原数据所需的权限。
反馈
此页面是否有帮助?