Restaurar uma conta do Azure Cosmos DB que usa o modo de backup contínuo

APLICA-SE AO: NoSQL MongoDB Gremlin Table

O recurso de restauração pontual do Azure Cosmos DB ajuda você a se recuperar de uma alteração acidental em um contêiner para restaurar uma conta excluída, um banco de dados ou um contêiner, ou para restaurar para qualquer região (na qual os backups existiam). O modo de backup contínuo permite que você restaure para qualquer momento nos últimos 30 dias.

Este artigo descreve como identificar o tempo de restauração e restaurar uma conta dinâmica ou excluída do Azure Cosmos DB. Ele mostra como restaurar a conta usando o Portal do Azure, o PowerShell, a CLI ou um modelo do Azure Resource Manager.

Restaurar uma conta usando o portal do Azure

Restaurar uma conta dinâmica após uma modificação acidental

Você pode usar o portal do Azure para restaurar toda uma conta dinâmica ou os bancos de dados e contêineres selecionados sob ela. Siga as etapas a seguir para restaurar seus dados:

  1. Entre no portal do Azure.

  2. Navegue para a conta do Azure Cosmos DB e abra a folha Recuperação Pontual.

    Observação

    A folha de restauração no portal do Azure só será preenchida se você tiver a permissão Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read. Para saber mais sobre como definir essa permissão, consulte o artigo Permissões de backup e restauração.

  3. Preencha os seguintes detalhes para restaurar:

    • Ponto de restauração (UTC) : um carimbo de data/hora nos últimos 30 dias. A conta deve existir nesse carimbo de data/hora. Você pode especificar o ponto de restauração em UTC. É possível definir até mesmo o segundo exato em que você quer restaurá-lo. Selecione o link Clique aqui para obter ajuda para identificar o ponto de restauração.

    • Local: a região de destino em que a conta é restaurada. A conta deve existir nessa região no carimbo de data/hora fornecido (por exemplo, Oeste dos EUA ou Leste dos EUA). Uma conta pode ser restaurada somente para as regiões nas quais a conta de origem existia.

    • Restaurar recurso: você pode escolher a Conta inteira ou um banco de dados/contêiner selecionado para restaurar. Os bancos de dados e contêineres devem existir no carimbo de data/hora fornecido. Com base no ponto de restauração e no local selecionados, os recursos de restauração são populados, o que permite ao usuário selecionar bancos de dados ou contêineres específicos que precisam ser restaurados.

    • Grupo de recursos: grupo de recursos sob o qual a conta de destino será criada e restaurada. O grupo de recursos já precisa existir.

    • Restaurar conta de destino: o nome da conta de destino. O nome da conta de destino precisa seguir as mesmas diretrizes de quando você está criando uma nova conta. Essa conta será criada pelo processo de restauração na mesma região em que a conta de origem existe.

    Restaurar uma conta dinâmica do portal do Azure após modificação acidental.

  4. Depois de selecionar os parâmetros acima, selecione o botão Enviar para iniciar uma restauração. O custo de restauração é um encargo único, baseado no tamanho dos dados e no custo do armazenamento de backup na região selecionada. Para saber mais, consulte a seção Preços.

A exclusão da conta de origem enquanto uma restauração está em andamento pode resultar em falha da restauração.

Período de tempo restaurável para contas ao vivo

Para restaurar as contas ao vivo do Azure Cosmos DB que não são excluídas, uma prática recomendada é sempre identificar o carimbo de data/hora restaurável mais recente do contêiner. Depois, você poderá usar esse carimbo de data/hora para restaurar a conta para a versão mais recente.

Usar o feed de eventos para identificar o tempo de restauração

Ao preencher o tempo do ponto de restauração no portal do Azure, se você precisar de ajuda com a identificação do ponto de restauração, selecione o link Clique aqui, que o direcionará para a folha do feed de eventos. O feed de eventos fornece uma lista completa de fidelidade de criação, substituição e exclusão de eventos em bancos de dados e contêineres da conta de origem.

Por exemplo, se você deseja restaurar para o ponto anterior à exclusão ou atualização de um determinado contêiner, verifique esse feed de eventos. Os eventos são exibidos em ordem cronológica decrescente de tempo quando ocorreram, com eventos recentes na parte superior. Você pode navegar pelos resultados e selecionar a hora antes ou depois do evento para restringir ainda mais o tempo.

Usar o feed de eventos para identificar o tempo do ponto de restauração.

Observação

O feed de eventos não exibe as alterações para os recursos do item. Você sempre pode especificar manualmente qualquer carimbo de data/hora nos últimos 30 dias (desde que a conta exista naquele momento) para restauração.

Restaurar uma conta excluída

Você pode usar o portal do Azure para restaurar completamente uma conta excluída dentro de 30 dias após sua exclusão. Use as seguintes etapas para restaurar uma conta excluída:

  1. Entre no portal do Azure.

  2. Pesquise por recursos do Azure Cosmos DB na barra de pesquisa global. Ele lista todas as suas contas existentes.

  3. Em seguida, selecione o botão Restaurar. A folha Restaurar exibe uma lista de contas excluídas que podem ser restauradas dentro do período de retenção, que é de 30 dias a partir do momento da exclusão.

  4. Escolha a conta que você deseja restaurar.

    Restaure uma conta excluída do portal do Azure.

    Observação

    A folha de restauração no portal do Azure só será preenchida se você tiver a permissão Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read. Para saber mais sobre como definir essa permissão, consulte o artigo Permissões de backup e restauração.

  5. Selecione uma conta para restaurar e insira os seguintes detalhes para restaurar uma conta excluída:

    • Ponto de restauração (UTC) : um carimbo de data/hora nos últimos 30 dias. A conta deve ter existido nesse carimbo de data/hora. Especifique o ponto de restauração em UTC. É possível definir até mesmo o segundo exato em que você quer restaurá-lo.

    • Local: a região de destino em que a conta precisa ser restaurada. A conta de origem deve existir nessa região no carimbo de data/hora fornecido. Por exemplo, Oeste dos EUA ou Leste dos EUA.

    • Grupo de recursos: grupo de recursos sob o qual a conta de destino será criada e restaurada. O grupo de recursos já precisa existir.

    • Restaurar conta de destino: o nome da conta de destino precisa seguir as mesmas diretrizes de quando você está criando uma nova conta. Essa conta será criada pelo processo de restauração na mesma região em que a conta de origem existe.

Acompanhar o status da operação de restauração

Depois de iniciar uma operação de restauração, selecione o ícone de sino de Notificação no canto superior direito do portal. Ele fornece um link que exibe o status da conta que está sendo restaurada. Enquanto a restauração estiver em andamento, o status da conta será Criando. Após a conclusão da operação de restauração, o status da conta será alterado para Online.

O status da conta restaurada muda de Criação para Online quando a operação é concluída.

Obter os detalhes de restauração da conta restaurada

Após a conclusão da operação de restauração, talvez você queira saber os detalhes da conta de origem ou o tempo de restauração.

Siga as etapas abaixo para obter os detalhes de restauração no portal do Azure:

  1. Entre no portal do Azure e navegue até a conta restaurada.

  2. Navegue até o painel Exportar modelo. Um modelo JSON correspondente à conta restaurada será aberto.

Restaurar uma conta usando o Azure PowerShell

Antes de restaurar a conta, instale a versão mais recente do Azure PowerShell ou uma versão superior a 9.6.0. Em seguida, conecte-se à conta do Azure e selecione a assinatura necessária com os seguintes comandos:

  1. Entre no Azure usando o seguinte comando:

    Connect-AzAccount
    
  2. Selecione uma assinatura específica com o seguinte comando:

    Select-AzSubscription -Subscription <SubscriptionName>
    

Disparar uma operação de restauração para a conta da API do NoSQL

O seguinte cmdlet é um exemplo para disparar uma operação de restauração com o comando restore usando a conta de destino, a conta de origem, o local, o grupo de recursos, PublicNetworkAccess, DisableTtl e o carimbo de data/hora:


Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "RestoredAccountName" `
  -SourceDatabaseAccountName "SourceDatabaseAccountName" `
  -RestoreTimestampInUtc "UTCTime" `
  -Location "AzureRegionName" ` 
  -PublicNetworkAccess Disabled `
  -DisableTtl $true

Exemplo 1: restauração da conta inteira:


Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "Pitracct" `
  -SourceDatabaseAccountName "source-sql" `
  -RestoreTimestampInUtc "2021-01-05T22:06:00" `
  -Location "West US" `
  -PublicNetworkAccess Disabled
  -DisableTtl $false


Se PublicNetworkAccess não estiver definido, a conta restaurada poderá ser acessada pela rede pública. Certifique-se de passar Disabled para a opção PublicNetworkAccess para desabilitar o acesso à rede pública para a conta restaurada. A configuração de DisableTtl para $true garante que a TTL esteja desabilitada na conta restaurada, não fornecendo restaurações de parâmetro da conta com TTL habilitada se ela tiver sido definida anteriormente.

Observação

Para a restauração com acesso à rede pública desabilitado, a versão estável mínima do Az.CosmosDB necessária é a 1.12.0.

Exemplo 2: restauração de coleções e bancos de dados específicos. Esse exemplo restaura as coleções MyCol1, MyCol2 do MyDB1 e todo o banco de dados MyDB2, que inclui todos os contêineres sob ele.

$datatabaseToRestore1 = New-AzCosmosDBDatabaseToRestore -DatabaseName "MyDB1" -CollectionName "MyCol1", "MyCol2"
$datatabaseToRestore2 = New-AzCosmosDBDatabaseToRestore -DatabaseName "MyDB2"

Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "Pitracct" `
  -SourceDatabaseAccountName "SourceSql" `
  -RestoreTimestampInUtc "2021-01-05T22:06:00" `
  -DatabasesToRestore $datatabaseToRestore1, $datatabaseToRestore2 `
  -Location "West US"

Exemplo 3: restaurar a conta da API do Gremlin. Esse exemplo restaura os grafos graph1, graph2 do MyDB1 e todo o banco de dados MyDB2, que inclui todos os contêineres sob ele.

$datatabaseToRestore1 = New-AzCosmosDBGremlinDatabaseToRestore  -DatabaseName "MyDB1" -GraphName "graph1", "graph2"  
$datatabaseToRestore2 = New-AzCosmosDBGremlinDatabaseToRestore  -DatabaseName "MyDB2"

Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "Pitracct" `
  -SourceDatabaseAccountName "SourceGremlin" `
  -RestoreTimestampInUtc "2022-04-05T22:06:00" `
  -DatabasesToRestore $datatabaseToRestore1, $datatabaseToRestore2 `
  -Location "West US"

Exemplo 4: restaurar a conta da API de Tabela. Este exemplo restaura as tabelas table1, table1 do MyDB1

$tablesToRestore  = New-AzCosmosDBTableToRestore -TableName "table1", "table2"  

Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "Pitracct" `
  -SourceDatabaseAccountName "SourceTable" `
  -RestoreTimestampInUtc "2022-04-06T22:06:00" `
  -TablesToRestore $tablesToRestore ` 
  -Location "West US"

Para restaurar uma conta contínua configurada com a identidade gerenciada usando a CLI

Para restaurar a conta contínua da Chave Gerenciada pelo Cliente (CMK), consulte as etapas fornecidas aqui

Obter os detalhes de restauração da conta restaurada

Importe o módulo Az.CosmosDB versão 1.12.0 e execute o comando a seguir para obter os detalhes da restauração. O restoreTimestamp estará no objeto restoreParameters:

Get-AzCosmosDBAccount -ResourceGroupName MyResourceGroup -Name MyCosmosDBDatabaseAccount 

Enumerar os recursos restauráveis da API do NoSQL

Os cmdlets de enumeração ajudam a descobrir os recursos que estão disponíveis para restauração em vários carimbos de data/hora. Além disso, eles também fornecem um feed de eventos importantes da conta restaurável, do banco de dados e dos recursos de contêiner.

Listar todas as contas que podem ser restauradas na assinatura atual

Execute o comando do PowerShell Get-AzCosmosDBRestorableDatabaseAccount para listar todas as contas que podem ser restauradas na assinatura atual.

A resposta inclui todas as contas de banco de dados (tanto as dinâmicas e como as excluídas) que podem ser restauradas e as regiões das quais elas podem ser restauradas.

{
    "accountName": "SampleAccount",
    "apiType": "Sql",
    "creationTime": "2020-08-08T01:04:52.070190+00:00",
    "deletionTime": null,
    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/23e99a35-cd36-4df4-9614-f767a03b9995",
    "identity": null,
    "location": "West US",
    "name": "23e99a35-cd36-4df4-9614-f767a03b9995",
    "restorableLocations": [
      {
        "creationTime": "2020-08-08T01:04:52.945185+00:00",
        "deletionTime": null,
        "location": "West US",
        "regionalDatabaseAccountInstanceId": "30701557-ecf8-43ce-8810-2c8be01dccf9"
      },
      {
        "creationTime": "2020-08-08T01:15:43.507795+00:00",
        "deletionTime": null,
        "location": "East US",
        "regionalDatabaseAccountInstanceId": "8283b088-b67d-4975-bfbe-0705e3e7a599"
      }
    ],
    "tags": null,
    "type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts"
  }

Assim como há o CreationTime ou o DeletionTime para a conta, há também há um CreationTime ou um DeletionTime para a região. Esses tempos permitem que você escolha a região correta e um intervalo de tempo válido para realizar a restauração nessa região.

Listar todas as versões dos bancos de dados SQL em uma conta de banco de dados dinâmica

A listagem de todas as versões de bancos de dados permite que você escolha o banco de dados correto em um cenário em que o horário real da criação do banco de dados é desconhecido.

Execute o comando do PowerShell a seguir para listar todas as versões de bancos de dados. Esse comando só funciona em contas dinâmicas. Os parâmetros DatabaseAccountInstanceId e Location são obtidos por meio das propriedades name e location na resposta do cmdlet Get-AzCosmosDBRestorableDatabaseAccount. O atributo DatabaseAccountInstanceId se refere à propriedade instanceId da conta do banco de dados de origem que está sendo restaurada:


Get-AzCosmosdbSqlRestorableDatabase `
  -Location "East US" `
  -DatabaseAccountInstanceId <DatabaseAccountInstanceId>

Listar todas as versões de contêineres SQL de um banco de dados em uma conta de banco de dados dinâmica

Use o comando a seguir para listar todas as versões de contêineres SQL. Esse comando só funciona em contas dinâmicas. O parâmetro DatabaseRId é o ResourceId do banco de dados que você deseja restaurar. Ele é o valor do atributo ownerResourceid encontrado na resposta do cmdlet Get-AzCosmosdbSqlRestorableDatabase. A resposta também inclui uma lista de operações executadas em todos os contêineres dentro desse banco de dados.


Get-AzCosmosdbSqlRestorableContainer `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -DatabaseRId "AoQ13r==" `
  -Location "West US"

Localizar bancos de dados ou contêineres que podem ser restaurados em qualquer carimbo de data/hora fornecido

Use o comando a seguir para obter a lista de bancos de dados ou contêineres que podem ser restaurados em qualquer carimbo de data/hora fornecido. Esse comando só funciona em contas dinâmicas.


Get-AzCosmosdbSqlRestorableResource `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -Location "West US" `
  -RestoreLocation "East US" `
  -RestoreTimestamp "2020-07-20T16:09:53+0000"

Enumerar os recursos restauráveis na API para MongoDB

Os comandos de enumeração descritos abaixo ajudam a descobrir os recursos que estão disponíveis para restauração em vários carimbos de data/hora. Além disso, eles também fornecem um feed de eventos importantes da conta restaurável, do banco de dados e dos recursos de contêiner. Esses comandos só funcionam para contas dinâmicas e são semelhantes aos comandos da API do NoSQL, mas com MongoDB no nome do comando, em vez de sql.

Listar todas as versões de bancos de dados MongoDB em uma conta de banco de dados dinâmica


Get-AzCosmosdbMongoDBRestorableDatabase `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -Location "West US"

Listar todas as versões das coleções do MongoDB de um banco de dados em uma conta de banco de dados dinâmica


Get-AzCosmosdbMongoDBRestorableCollection `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -DatabaseRId "AoQ13r==" `
  -Location "West US"

Listar todos os recursos de uma conta de banco de dados do MongoDB que estão disponíveis para restauração em um determinado carimbo de data/hora e região


Get-AzCosmosdbMongoDBRestorableResource `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -Location "West US" `
  -RestoreLocation "West US" `
  -RestoreTimestamp "2020-07-20T16:09:53+0000"

Enumerar os recursos restauráveis da API do Gremlin

Os cmdlets de enumeração ajudam a descobrir os recursos que estão disponíveis para restauração em vários carimbos de data/hora. Além disso, eles também fornecem um feed de eventos importantes da conta restaurável, do banco de dados e dos recursos de grafo.

Listar todas as versões de bancos de dados Gremlin em uma conta de banco de dados dinâmica

A listagem de todas as versões de bancos de dados permite que você escolha o banco de dados correto em um cenário em que o horário real da criação do banco de dados é desconhecido. Execute o comando do PowerShell a seguir para listar todas as versões de bancos de dados. Esse comando só funciona em contas dinâmicas. Os parâmetros DatabaseAccountInstanceId e Location são obtidos por meio das propriedades name e location na resposta do cmdlet Get-AzCosmosDBRestorableDatabaseAccount. O atributo DatabaseAccountInstanceId se refere à propriedade instanceId da conta do banco de dados de origem que está sendo restaurada:

Get-AzCosmosdbGremlinRestorableDatabase ` 
   -Location "East US" ` 
   -DatabaseAccountInstanceId <DatabaseAccountInstanceId> 

Listar todas as versões de grafos Gremlin em uma conta de banco de dados dinâmica

Use o comando a seguir para listar todas as versões dos grafos da API do Gremlin. Esse comando só funciona em contas ativas. O parâmetro DatabaseRId é o ResourceId do banco de dados que você deseja restaurar. Ele é o valor do atributo ownerResourceid encontrado na resposta do cmdlet Get-AzCosmosdbGremlinRestorableDatabase. A resposta também inclui uma lista de operações executadas em todos os grafos dentro desse banco de dados.

Get-AzCosmosdbGremlinRestorableGraph ` 
   -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" ` 
   -DatabaseRId "AoQ13r==" ` 
   -Location "West US" 

Encontrar bancos de dados ou grafos que possam ser restaurados em qualquer carimbo de data/hora

Use o comando a seguir para obter a lista de bancos de dados ou grafos que podem ser restaurados em qualquer carimbo de data/hora fornecido. Esse comando só funciona em contas ativas.

Get-AzCosmosdbGremlinRestorableResource ` 
   -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" ` 
   -Location "West US" ` 
   -RestoreLocation "East US" ` 
   -RestoreTimestamp "2020-07-20T16:09:53+0000" 

Enumerar os recursos restauráveis da API de Tabela

Os cmdlets de enumeração ajudam a descobrir os recursos que estão disponíveis para restauração em vários carimbos de data/hora. Além disso, eles também fornecem um feed de eventos importantes da conta restaurável e dos recursos de grafo.

Listar todas as versões de tabelas de um banco de dados em uma conta de banco de dados dinâmica

Use o comando a seguir para listar todas as versões de tabelas. Esse comando só funciona em contas dinâmicas.

Get-AzCosmosdbTableRestorableTable ` 
   -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68"   ` 
   -Location "West US" 

Encontrar tabelas que podem ser restauradas em qualquer carimbo de data/hora

Use o comando a seguir para obter a lista de tabelas que podem ser restauradas em qualquer carimbo de data/hora. Esse comando só funciona em contas dinâmicas.

Get-AzCosmosdbTableRestorableResource ` 
   -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" ` 
   -Location "West US" ` 
   -RestoreLocation "East US" ` 
   -RestoreTimestamp "2020-07-20T16:09:53+0000" 

Restaurar uma conta usando a CLI do Azure

Antes de restaurar a conta, instale a CLI do Azure com as seguintes etapas:

  1. Instale a versão mais recente da CLI do Azure

    • Instale a versão mais recente da CLI do Azure ou uma versão superior a 2.52.0.
    • Se você já tiver instalado a CLI, execute o comando az upgrade para atualizar para a versão mais recente. Este comando funcionará apenas com uma versão da CLI superior a 2.52.0. Se você tiver uma versão anterior, use o link acima para instalar a versão mais recente.
  2. Entrar e selecione sua assinatura

    • Entre em sua conta do Azure com o comando az login.
    • Selecione a assinatura necessária usando o comando az account set -s <subscriptionguid>.

Disparar uma operação de restauração com a CLI do Azure

A maneira mais simples de disparar uma restauração é emitindo o comando restore com o nome da conta de destino, a conta de origem, a localização, o grupo de recursos, o carimbo de data/hora (em UTC) e, opcionalmente, os nomes do banco de dados e do contêiner. Veja abaixo alguns exemplos para disparar a operação de restauração:

Criar uma conta do Azure Cosmos DB restaurando uma conta existente


az cosmosdb restore \
 --target-database-account-name <MyRestoredCosmosDBDatabaseAccount> \
 --account-name <MySourceAccount> \
 --restore-timestamp 2020-07-13T16:03:41+0000 \
 --resource-group <MyResourceGroup> \
 --location "West US" \
 --public-network-access Disabled \
 --disable-ttl True 

Se --public-network-access não estiver definido, a conta restaurada poderá ser acessada por meio da rede pública. Certifique-se de passar Disabled para a opção --public-network-access para impedir o acesso à rede pública para a conta restaurada. A configuração de disable-ttl para $true garante que o TTL esteja desabilitado na conta restaurada e não forneça que esse parâmetro restaure a conta com TTL habilitada se ela tiver sido definida anteriormente.

Observação

Para a restauração com acesso à rede pública desabilitado, a versão estável mínima da CLI do Azure necessária é a 2.52.0.

Criar uma conta do Azure Cosmos DB restaurando somente os bancos de dados e contêineres selecionados de uma conta de banco de dados existente


az cosmosdb restore \
 --resource-group MyResourceGroup \
 --target-database-account-name MyRestoredCosmosDBDatabaseAccount \
 --account-name MySourceAccount \
 --restore-timestamp 2020-07-13T16:03:41+0000 \
 --location "West US" \
 --databases-to-restore name=MyDB1 collections=Collection1 Collection2 \
 --databases-to-restore name=MyDB2 collections=Collection3 Collection4

Criar uma conta da API Azure Cosmos DB for Gremlin restaurando apenas bancos de dados e grafos selecionados de uma conta da API do Gremlin existente


az cosmosdb restore \
 --resource-group MyResourceGroup \
 --target-database-account-name MyRestoredCosmosDBDatabaseAccount \
 --account-name MySourceAccount \
 --restore-timestamp 2022-04-13T16:03:41+0000 \
 --location "West US" \
 --gremlin-databases-to-restore name=MyDB1 graphs=graph1 graph2 \
 --gremlin-databases-to-restore name=MyDB2 graphs =graph3 graph4 

Criar uma conta da API do Azure Cosmos DB for Table restaurando apenas tabelas selecionadas de uma conta da API de Tabela existente


az cosmosdb restore \
 --resource-group MyResourceGroup \
 --target-database-account-name MyRestoredCosmosDBDatabaseAccount \
 --account-name MySourceAccount \
 --restore-timestamp 2022-04-14T06:03:41+0000 \
 --location "West US" \
 --tables-to-restore table1 table2 

Obter os detalhes de restauração da conta restaurada

Execute o comando a seguir para obter os detalhes da restauração. A saída do comando az cosmosdb show mostra o valor da propriedade createMode. Se o valor for definido como Restaurar, ele indicará que a conta foi restaurada de outra conta. A propriedade restoreParameters tem mais detalhes, como restoreSource, que tem a ID da conta de origem. O último GUID no parâmetro restoreSource é a instanceId da conta de origem. E o restoreTimestamp ficará sob o objeto restoreParameters:

az cosmosdb show --name MyCosmosDBDatabaseAccount --resource-group MyResourceGroup

Enumerar os recursos restauráveis da API do NoSQL

Os comandos de enumeração descritos abaixo ajudam a descobrir os recursos que estão disponíveis para restauração em vários carimbos de data/hora. Além disso, eles também fornecem um feed de eventos importantes da conta restaurável, do banco de dados e dos recursos de contêiner.

Listar todas as contas que podem ser restauradas na assinatura atual

Executar o seguinte comando da CLI do Azure para listar todas as contas que podem ser restauradas na assinatura atual

az cosmosdb restorable-database-account list --account-name "Pitracct"

A resposta inclui todas as contas de banco de dados (tanto as dinâmicas e como as excluídas) que podem ser restauradas e as regiões das quais elas podem ser restauradas de:

{
    "accountName": "Pitracct",
    "apiType": "Sql",
    "creationTime": "2021-01-08T23:34:11.095870+00:00",
    "deletionTime": null,
    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234",
    "identity": null,
    "location": "West US",
    "name": "abcd1234-d1c0-4645-a699-abcd1234",
    "restorableLocations": [
      {
        "creationTime": "2021-01-08T23:34:11.095870+00:00",
        "deletionTime": null,
        "locationName": "West US",
        "regionalDatabaseAccountInstanceId": "f02df26b-c0ec-4829-8bef-3482d36e6230"
      }
    ],
    "tags": null,
    "type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts"
  }

Assim como há o CreationTime ou o DeletionTime para a conta, há também há um CreationTime ou um DeletionTime para a região. Esses tempos permitem que você escolha a região correta e um intervalo de tempo válido para realizar a restauração nessa região.

Listar todas as versões de bancos de dados em uma conta de banco de dados dinâmica

A listagem de todas as versões de bancos de dados permite que você escolha o banco de dados correto em um cenário em que o horário real da criação do banco de dados é desconhecido.

Execute o comando da CLI do Azure a seguir para listar todas as versões de bancos de dados. Esse comando só funciona em contas ativas. Os parâmetros instance-id e location são obtidos por meio das propriedades name e location na resposta do comando az cosmosdb restorable-database-account list. O atributo instanceId também é uma propriedade da conta do banco de dados de origem que está sendo restaurada:

az cosmosdb sql restorable-database list \
  --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
  --location "West US"

Agora, essa saída de comando mostra quando um banco de dados foi criado e excluído.

[
  {
    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234/restorableSqlDatabases/40e93dbd-2abe-4356-a31a-35567b777220",
     "name": "40e93dbd-2abe-4356-a31a-35567b777220",
    "resource": {
      "database": {
        "id": "db1"
      },
      "eventTimestamp": "2021-01-08T23:27:25Z",
      "operationType": "Create",
      "ownerId": "db1",
      "ownerResourceId": "YuZAAA=="
    },
   
  },
  {
    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234/restorableSqlDatabases/243c38cb-5c41-4931-8cfb-5948881a40ea",
    "name": "243c38cb-5c41-4931-8cfb-5948881a40ea",
    "resource": {
      "database": {
        "id": "spdb1"
      },
      "eventTimestamp": "2021-01-08T23:25:25Z",
      "operationType": "Create",
      "ownerId": "spdb1",
      "ownerResourceId": "OIQ1AA=="
    },
 
  }
]

Listar todas as versões de contêineres SQL de um banco de dados em uma conta de banco de dados ativa

Use o comando a seguir para listar todas as versões de contêineres SQL. Esse comando só funciona em contas dinâmicas. O parâmetro database-rid é o ResourceId do banco de dados que você deseja restaurar. Ele é o valor do atributo ownerResourceid encontrado na resposta do comando az cosmosdb sql restorable-database list.

az cosmosdb sql restorable-container list \
    --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
    --database-rid "OIQ1AA==" \
    --location "West US"

Essa saída de comando mostra a inclusão da lista de operações executadas em todos os contêineres dentro desse banco de dados:

[
  {
      "eventTimestamp": "2021-01-08T23:25:29Z",
      "operationType": "Replace",
      "ownerId": "procol3",
      "ownerResourceId": "OIQ1APZ7U18="
  },
  {
      "eventTimestamp": "2021-01-08T23:25:26Z",
      "operationType": "Create",
      "ownerId": "procol3",
      "ownerResourceId": "OIQ1APZ7U18="
  },
]

Localizar bancos de dados ou contêineres que podem ser restaurados em qualquer carimbo de data/hora fornecido

Use o comando a seguir para obter a lista de bancos de dados ou contêineres que podem ser restaurados em qualquer carimbo de data/hora fornecido. Esse comando só funciona em contas ativas.


az cosmosdb sql restorable-resource list \
  --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
  --location "West US" \
  --restore-location "West US" \  
  --restore-timestamp "2021-01-10T01:00:00+0000"

[
  {
    "collectionNames": [
      "procol1",
      "procol2"
    ],
    "databaseName": "db1"
  },
  {
    "collectionNames": [
      "procol3",
       "spcol1"
    ],
    "databaseName": "spdb1"
  }
]

Enumerar recursos restauráveis da conta da API do MongoDB

Os comandos de enumeração descritos abaixo ajudam a descobrir os recursos que estão disponíveis para restauração em vários carimbos de data/hora. Além disso, eles também fornecem um feed de eventos importantes da conta restaurável, do banco de dados e dos recursos de contêiner. Esses comandos só funcionam em contas ativas.

Listar todas as versões de bancos de dados MongoDB em uma conta de banco de dados dinâmica

az cosmosdb mongodb restorable-database list \
    --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
    --location "West US"

Listar todas as versões das coleções do MongoDB de um banco de dados em uma conta de banco de dados dinâmica

az cosmosdb mongodb restorable-collection list \
    --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
    --database-rid "AoQ13r==" \
    --location "West US"

Listar todos os recursos de uma conta de banco de dados mongodb que estão disponíveis para restauração em um determinado carimbo de data/hora e região

az cosmosdb mongodb restorable-resource list \
    --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
    --location "West US" \
    --restore-location "West US" \
    --restore-timestamp "2020-07-20T16:09:53+0000"

Listar todas as versões de bancos de dados em uma conta de banco de dados dinâmica

Os comandos de enumeração descritos abaixo ajudam a descobrir os recursos que estão disponíveis para restauração em vários carimbos de data/hora. Além disso, eles também fornecem um feed de eventos importantes da conta restaurável, do banco de dados e dos recursos de grafo. Esses comandos só funcionam em contas ativas.

az cosmosdb gremlin restorable-database list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \ 
   --location "West US"

Agora, essa saída de comando mostra quando um banco de dados foi criado e excluído.

[ { 
    "id": "/subscriptions/abcd1234-b6ac-4328-a753-abcd1234/providers/Microsoft.DocumentDB/locations/eastus2euap/restorableDatabaseAccounts/abcd1234-4316-483b-8308-abcd1234/restorableGremlinDatabases/abcd1234-0e32-4036-ac9d-abcd1234", 
    "name": "abcd1234-0e32-4036-ac9d-abcd1234", 
    "resource": { 
      "eventTimestamp": "2022-02-09T17:10:18Z", 
      "operationType": "Create", 
      "ownerId": "db1", 
      "ownerResourceId": "1XUdAA==", 
      "rid": "ymn7kwAAAA==" 
    }, 
    "type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restorableGremlinDatabases" 
    
  } 
] 

Listar todas as versões de grafos Gremlin em uma conta de banco de dados dinâmica

az cosmosdb gremlin restorable-graph list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \ 
   --database-rid "OIQ1AA==" \ 
   --location "West US" 

Essa saída de comando mostra a inclusão da lista de operações executadas em todos os contêineres dentro desse banco de dados:

[ { 

    "id": "/subscriptions/23587e98-b6ac-4328-a753-03bcd3c8e744/providers/Microsoft.DocumentDB/locations/eastus2euap/restorableDatabaseAccounts/a00d591d-4316-483b-8308-44193c5f3073/restorableGraphs/1792cead-4307-4032-860d-3fc30bd46a20", 
    "name": "1792cead-4307-4032-860d-3fc30bd46a20", 
    "resource": { 
      "eventTimestamp": "2022-02-09T17:10:31Z", 
      "operationType": "Create", 
      "ownerId": "graph1", 
      "ownerResourceId": "1XUdAPv9duQ=", 
      "rid": "IcWqcQAAAA==" 
    }, 
    "type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restorableGraphs" 
  } 
] 

Encontrar bancos de dados ou grafos que possam ser restaurados em qualquer carimbo de data/hora

 
az cosmosdb gremlin restorable-resource list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \ 
   --location "West US" \ 
   --restore-location "West US" \ 
   --restore-timestamp "2021-01-10T01:00:00+0000" 

Essa saída de comando mostra os grafos que são restauráveis:

[
 { 
"databaseName": "db1", 
"graphNames": [ "graph1",   "graph3",   "graph2"  ] 
  } 
] 

Enumerar recursos restauráveis da conta da API de Tabela

Os comandos de enumeração descritos abaixo ajudam a descobrir os recursos que estão disponíveis para restauração em vários carimbos de data/hora. Além disso, eles também fornecem um feed de eventos importantes da conta restaurável e dos recursos da API de Tabela. Esses comandos só funcionam em contas ativas.

Listar todas as versões de tabelas em uma conta de banco de dados dinâmica

az cosmosdb table restorable-table list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234"  
   --location "West US" 
[   { 

"id": "/subscriptions/23587e98-b6ac-4328-a753-03bcd3c8e744/providers/Microsoft.DocumentDB/locations/WestUS/restorableDatabaseAccounts/7e4d666a-c6ba-4e1f-a4b9-e92017c5e8df/restorableTables/59781d91-682b-4cc2-93a3-c25d03fab159", 
"name": "59781d91-682b-4cc2-93a3-c25d03fab159", 
"resource": { 
  "eventTimestamp": "2022-02-09T17:09:54Z", 
  "operationType": "Create", 
  "ownerId": "table1", 
  "ownerResourceId": "tOdDAKYiBhQ=", 
  "rid": "9pvDGwAAAA==" 
  }, 
"type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restorableTables" 
   }, 

{"id": "/subscriptions/23587e98-b6ac-4328-a753-03bcd3c8e744/providers/Microsoft.DocumentDB/locations/eastus2euap/restorableDatabaseAccounts/7e4d666a-c6ba-4e1f-a4b9-e92017c5e8df/restorableTables/2c9f35eb-a14c-4ab5-a7e0-6326c4f6b785", 
"name": "2c9f35eb-a14c-4ab5-a7e0-6326c4f6b785", 
"resource": { 
  "eventTimestamp": "2022-02-09T20:47:53Z", 
  "operationType": "Create", 
  "ownerId": "table3", 
  "ownerResourceId": "tOdDALBwexw=", 
  "rid": "01DtkgAAAA==" 
}, 
"type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restorableTables" 

  }, 
] 

Listar todos os recursos de uma conta da API de Tabela que estão disponíveis para restauração em um determinado carimbo de data/hora e uma região

az cosmosdb table restorable-resource list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \ 
   --location "West US" \ 
   --restore-location "West US" \ 
   --restore-timestamp "2020-07-20T16:09:53+0000" 

A seguir está o resultado do comando.

{   
  "tableNames": [ 
"table1", 
"table3", 
"table2" 

  ] 
} 

Restaurar usando o modelo do Azure Resource Manager

Você também pode restaurar uma conta usando o modelo do Azure Resource Manager (ARM). Ao definir o modelo, inclua os seguintes parâmetros:

Restaurar a conta da API do NoSQL ou do MongoDB usando um modelo do ARM

  1. Defina o parâmetro createMode para Restaurar.
  2. Defina os restoreParameters, observe que o valor restoreSource é extraído da saída do comando az cosmosdb restorable-database-account list para sua conta de origem. O atributo de ID de instância para o nome de sua conta é usado para fazer a restauração.
  3. Defina o parâmetro restoreMode como PointInTime e configure o valor restoreTimestampInUtc.

Use o modelo do ARM a seguir para restaurar uma conta da API do Azure Cosmos DB for NoSQL ou MongoDB. Exemplos de outras APIs são fornecidos em seguida.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "name": "vinhpitrarmrestore-kal3",
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "apiVersion": "2023-04-15",
      "location": "West US",
      "properties": {
        "locations": [
          {
            "locationName": "West US"
          }
        ],
        "databaseAccountOfferType": "Standard",
        "createMode": "Restore",
        "restoreParameters": {
            "restoreSource": "/subscriptions/2296c272-5d55-40d9-bc05-4d56dc2d7588/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/6a18ecb8-88c2-4005-8dce-07b44b9741df",
            "restoreMode": "PointInTime",
            "restoreTimestampInUtc": "6/24/2020 4:01:48 AM",
            "restoreWithTtlDisabled": "true"
        }
      }
    }
  ]
}

Restaurar a conta da API do Gremlin usando um modelo do ARM

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "name": "ademo-pitr1",
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "apiVersion": "2023-04-15",
      "location": "West US",
      "properties": {
        "locations": [
          {
            "locationName": "West US"
          }
        ],
        "backupPolicy": { 
          "type": "Continuous" 
        }, 
        "databaseAccountOfferType": "Standard",
        "createMode": "Restore",
        "restoreParameters": {
            "restoreSource": "/subscriptions/2296c272-5d55-40d9-bc05-4d56dc2d7588/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/5cb9d82e-ec71-430b-b977-cd6641db85bc",
            "restoreMode": "PointInTime",
            "restoreTimestampInUtc": "2021-10-27T23:20:46Z",
            "gremlinDatabasesToRestore": [{ 
                "databaseName": "db1", 
                "graphNames": [ 
                    "graph1", "graph2" 
                ] 
            }]
        }
      }
    }
  ]
}

Restaurar a conta da API de Tabela usando um modelo do ARM

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "name": "ademo-pitr1",
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "apiVersion": "2023-04-15",
      "location": "West US",
      "properties": {
        "locations": [
          {
            "locationName": "West US"
          }
        ],
        "backupPolicy": { 
          "type": "Continuous" 
        }, 
        "databaseAccountOfferType": "Standard",
        "createMode": "Restore",
        "restoreParameters": {
            "restoreSource": "/subscriptions/1296c352-5d33-40d9-bc05-4d56dc2a7521/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/4bcb9d82e-ec71-430b-b977-cd6641db85ad",
            "restoreMode": "PointInTime",
            "restoreTimestampInUtc": "2022-04-13T10:20:46Z",
             "tablesToRestore": [ 
                "table1", "table2" 
            ] 
        }
      }
    }
  ]
}

Em seguida, implante o modelo usando o Azure PowerShell ou a CLI do Azure. O exemplo a seguir mostra como implantar o modelo com um comando da CLI do Azure:

az deployment group create -g <ResourceGroup> --template-file <RestoreTemplateFilePath> 

Próximas etapas