Restaurar uma conta do Azure Cosmos DB que utiliza o modo de cópia de segurança contínua

APLICA-SE A: NoSQL MongoDB Gremlin Tabela

A funcionalidade de restauro para um ponto anterior no tempo do Azure Cosmos DB ajuda-o a recuperar de uma alteração acidental num contentor, a restaurar uma conta, uma base de dados ou um contentor eliminado ou a restaurar para qualquer região (onde existiam cópias de segurança). O modo de cópia de segurança contínua permite-lhe restaurar para qualquer ponto de tempo nos últimos 30 dias.

Este artigo descreve como identificar o tempo de restauro e restaurar uma conta do Azure Cosmos DB ativa ou eliminada. Mostra o restauro da conta com portal do Azure, o PowerShell, a CLI ou um modelo de Resource Manager do Azure.

Nota

Atualmente em pré-visualização, a ação de restauro da API para Tabela e Gremlin é suportada através do PowerShell e da CLI do Azure.

Restaurar uma conta com portal do Azure

Restaurar uma conta em direto a partir de modificações acidentais

Pode utilizar portal do Azure para restaurar uma conta em direto ou bases de dados e contentores selecionados na mesma. Utilize os seguintes passos para restaurar os seus dados:

  1. Iniciar sessão no portal do Azure

  2. Navegue para a sua conta do Azure Cosmos DB e abra o painel Restauro para Um Ponto Anterior no Tempo .

    Nota

    O painel de restauro no portal do Azure só é preenchido se tiver a Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read permissão. Para saber mais sobre como definir esta permissão, veja o artigo Permissões de cópia de segurança e restauro .

  3. Preencha os seguintes detalhes para restaurar:

    • Ponto de Restauro (UTC) – um carimbo de data/hora nos últimos 30 dias. A conta deve existir nesse carimbo de data/hora. Pode especificar o ponto de restauro em UTC. Pode estar tão perto do segundo quando pretende restaurá-lo. Selecione a ligação Clique aqui para obter ajuda para identificar o ponto de restauro.

    • Localização – a região de destino onde a conta é restaurada. A conta deve existir nesta região no carimbo de data/hora especificado (por exemplo, E.U.A. Oeste ou E.U.A. Leste). Uma conta só pode ser restaurada para as regiões em que a conta de origem existia.

    • Restaurar Recurso – pode escolher Conta inteira ou uma base de dados/contentor selecionada para restaurar. As bases de dados e os contentores devem existir no carimbo de data/hora especificado. Com base no ponto de restauro e na localização selecionada, os recursos de restauro são preenchidos, o que permite ao utilizador selecionar bases de dados ou contentores específicos que precisam de ser restaurados.

    • Grupo de recursos – grupo de recursos no qual a conta de destino será criada e restaurada. O grupo de recursos já tem de existir.

    • Restaurar Conta de Destino – o nome da conta de destino. O nome da conta de destino tem de seguir as mesmas diretrizes que quando está a criar uma nova conta. Esta conta será criada pelo processo de restauro na mesma região onde existe a sua conta de origem.

    Restaure uma conta em direto a partir de portal do Azure de modificação acidental.

  4. Depois de selecionar os parâmetros acima, selecione o botão Submeter para iniciar um restauro. O custo do restauro é um custo único, que se baseia no tamanho dos dados e no custo do armazenamento de cópias de segurança na região selecionada. Para saber mais, veja a secção Preços .

A eliminação da conta de origem enquanto um restauro está em curso pode resultar na falha do restauro.

Carimbo de data/hora restabelecido para contas em direto

Para restaurar contas dinâmicas do Azure Cosmos DB que não são eliminadas, é melhor prática identificar sempre o carimbo de data/hora restabelecido mais recente do contentor. Em seguida, pode utilizar este carimbo de data/hora para restaurar a conta para a versão mais recente.

Utilizar o feed de eventos para identificar o tempo de restauro

Ao preencher o tempo do ponto de restauro no portal do Azure, se precisar de ajuda para identificar o ponto de restauro, selecione a ligação Clique aqui e será direcionado para o painel feed de eventos. O feed de eventos fornece uma lista de fidelidade total de eventos de criação, substituição e eliminação em bases de dados e contentores da conta de origem.

Por exemplo, se quiser restaurar para o ponto antes de um determinado contentor ser eliminado ou atualizado, verifique este feed de eventos. Os eventos são apresentados por ordem cronologicamente descendente do tempo em que ocorreram, com eventos recentes na parte superior. Pode navegar pelos resultados e selecionar a hora antes ou depois do evento para restringir ainda mais o seu tempo.

Utilize o feed de eventos para identificar o tempo de ponto de restauro.

Nota

O feed de eventos não apresenta as alterações aos recursos do item. Pode sempre especificar manualmente qualquer carimbo de data/hora nos últimos 30 dias (desde que exista uma conta nesse momento) para restauro.

Restaurar uma conta eliminada

Pode utilizar portal do Azure para restaurar completamente uma conta eliminada no prazo de 30 dias após a eliminação. Utilize os seguintes passos para restaurar uma conta eliminada:

  1. Iniciar sessão no portal do Azure

  2. Procure recursos do Azure Cosmos DB na barra de pesquisa global. Lista todas as suas contas existentes.

  3. Em seguida, selecione o botão Restaurar . O painel Restaurar apresenta uma lista de contas eliminadas que podem ser restauradas dentro do período de retenção, que está a 30 dias da hora de eliminação.

  4. Escolha a conta que pretende restaurar.

    Restaurar uma conta eliminada a partir de portal do Azure.

    Nota

    O painel de restauro no portal do Azure só é preenchido se tiver a Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read permissão. Para saber mais sobre como definir esta permissão, veja o artigo Permissões de cópia de segurança e restauro .

  5. Selecione uma conta para restaurar e introduza os seguintes detalhes para restaurar uma conta eliminada:

    • Ponto de Restauro (UTC) – um carimbo de data/hora nos últimos 30 dias. A conta deveria ter existido nesse carimbo de data/hora. Especifique o ponto de restauro em UTC. Pode estar tão perto do segundo quando pretende restaurá-lo.

    • Localização – a região de destino onde a conta precisa de ser restaurada. A conta de origem deve existir nesta região no carimbo de data/hora especificado. Exemplo de E.U.A. Oeste ou E.U.A. Leste.

    • Grupo de recursos – grupo de recursos no qual a conta de destino será criada e restaurada. O grupo de recursos já tem de existir.

    • Restaurar Conta de Destino – o nome da conta de destino tem de seguir as mesmas diretrizes que quando está a criar uma nova conta. Esta conta será criada pelo processo de restauro na mesma região onde existe a sua conta de origem.

Controlar o estado da operação de restauro

Depois de iniciar uma operação de restauro, selecione o ícone sino de notificação no canto superior direito do portal. Fornece uma ligação que apresenta o estado da conta que está a ser restaurada. Enquanto o restauro estiver em curso, o estado da conta será A criar, após a conclusão da operação de restauro, o estado da conta será alterado para Online.

O estado da conta restaurada muda da criação para online quando a operação é concluída.

Obter os detalhes do restauro a partir da conta restaurada

Após a conclusão da operação de restauro, poderá querer saber os detalhes da conta de origem a partir dos quais restaurou ou a hora de restauro.

Utilize os seguintes passos para obter os detalhes de restauro do portal do Azure:

  1. Inicie sessão no portal do Azure e navegue para a conta restaurada.

  2. Navegue para o painel Exportar modelo . Abre um modelo JSON, correspondente à conta restaurada.

Restaurar uma conta com Azure PowerShell

Antes de restaurar a conta, instale a versão mais recente do Azure PowerShell ou versão superior à 6.2.0. Em seguida, ligue-se à sua conta do Azure e selecione a subscrição necessária com os seguintes comandos:

  1. Inicie sessão no Azure com o seguinte comando:

    Connect-AzAccount
    
  2. Selecione uma subscrição específica com o seguinte comando:

    Select-AzSubscription -Subscription <SubscriptionName>
    
    

Acionar uma operação de restauro para a API para a conta NoSQL

O cmdlet seguinte é um exemplo para acionar uma operação de restauro com o comando restaurar com a conta de destino, a conta de origem, a localização, o grupo de recursos e o carimbo de data/hora:


Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "RestoredAccountName" `
  -SourceDatabaseAccountName "SourceDatabaseAccountName" `
  -RestoreTimestampInUtc "UTCTime" `
  -Location "AzureRegionName"

Exemplo 1: Restaurar toda a conta:


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

Exemplo 2: Restaurar coleções e bases de dados específicas. Este exemplo restaura as coleções MyCol1, MyCol2 a partir de MyDB1 e toda a base de dados MyDB2, que inclui todos os contentores abaixo do mesmo.

$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 API para a Conta do Gremlin. Este exemplo restaura o gráfico grafo1, o grafo2 do MyDB1 e toda a base de dados MyDB2, que inclui todos os contentores abaixo do mesmo.

$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 API para a Conta de Tabela. Este exemplo restaura a tabela tabela1, tabela1 a partir de 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 gerida com a CLI

Para restaurar a conta contínua da Chave Gerida pelo Cliente (CMK), veja os passos indicados aqui

Obter os detalhes do restauro a partir da conta restaurada

Importe o Az.CosmosDB módulo e execute o seguinte comando para obter os detalhes do restauro. O restoreTimestamp estará no objeto restoreParameters:

Get-AzCosmosDBAccount -ResourceGroupName MyResourceGroup -Name MyCosmosDBDatabaseAccount 

Enumerar recursos restauráveis para a API para NoSQL

Os cmdlets de enumeração ajudam-no a descobrir os recursos que estão disponíveis para restauro em vários carimbos de data/hora. Além disso, também fornecem um feed de eventos-chave na conta, base de dados e recursos de contentor restauráveis.

Listar todas as contas que podem ser restauradas na subscrição atual

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

A resposta inclui todas as contas de base de dados (em direto e eliminadas) que podem ser restauradas e as regiões a partir das quais 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"
  }

Tal como o CreationTime ou DeletionTime para a conta, também existe um CreationTime ou DeletionTime para a região. Estas horas permitem-lhe escolher a região certa e um intervalo de tempo válido para restaurar nessa região.

Listar todas as versões das bases de dados SQL numa conta de base de dados dinâmica

Listar todas as versões das bases de dados permite-lhe escolher a base de dados certa num cenário em que o tempo real de existência da base de dados é desconhecido.

Execute o seguinte comando do PowerShell para listar todas as versões das bases de dados. Este comando só funciona com contas em direto. Os DatabaseAccountInstanceId parâmetros e Location são obtidos a name partir das propriedades e location na resposta do Get-AzCosmosDBRestorableDatabaseAccount cmdlet. O DatabaseAccountInstanceId atributo refere-se à instanceId propriedade da conta de base de dados de origem que está a ser restaurada:


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

Listar todas as versões dos contentores SQL de uma base de dados numa conta de base de dados dinâmica

Utilize o seguinte comando para listar todas as versões dos contentores SQL. Este comando só funciona com contas em direto. O DatabaseRId parâmetro é o ResourceId da base de dados que pretende restaurar. É o valor do ownerResourceid atributo encontrado na resposta do Get-AzCosmosdbSqlRestorableDatabase cmdlet. A resposta também inclui uma lista de operações realizadas em todos os contentores dentro desta base de dados.


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

Localizar bases de dados ou contentores que possam ser restaurados num determinado carimbo de data/hora

Utilize o seguinte comando para obter a lista de bases de dados ou contentores que podem ser restaurados num determinado carimbo de data/hora. Este comando só funciona com contas em direto.


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

Enumerar recursos restauráveis na API para MongoDB

Os comandos de enumeração descritos abaixo ajudam-no a descobrir os recursos disponíveis para restauro em vários carimbos de data/hora. Além disso, também fornecem um feed de eventos-chave na conta, base de dados e recursos de contentor restauráveis. Estes comandos só funcionam para contas em direto e são semelhantes à API para comandos NoSQL, mas com MongoDB no nome do comando em vez de sql.

Listar todas as versões das bases de dados do MongoDB numa conta de base 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 uma base de dados numa conta de base 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 base de dados do MongoDB que estão disponíveis para restauro num 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 recursos restauráveis para a API para o Gremlin

Os cmdlets de enumeração ajudam-no a descobrir os recursos que estão disponíveis para restauro em vários carimbos de data/hora. Além disso, também fornecem um feed de eventos-chave nos recursos de conta, base de dados e grafos restauráveis.

Listar todas as versões das bases de dados do Gremlin numa conta de base de dados em direto

Listar todas as versões das bases de dados permite-lhe escolher a base de dados certa num cenário em que o tempo real de existência da base de dados é desconhecido. Execute o seguinte comando do PowerShell para listar todas as versões das bases de dados. Este comando só funciona com contas em direto. Os DatabaseAccountInstanceId parâmetros e Location são obtidos a name partir das propriedades e location na resposta do Get-AzCosmosDBRestorableDatabaseAccount cmdlet. O DatabaseAccountInstanceId atributo refere-se à instanceId propriedade da conta de base de dados de origem que está a ser restaurada:

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

Listar todas as versões dos gráficos do Gremlin de uma base de dados numa conta de base de dados dinâmica

Utilize o seguinte comando para listar todas as versões da API para grafos do Gremlin. Este comando só funciona com contas em direto. O DatabaseRId parâmetro é o ResourceId da base de dados que pretende restaurar. É o valor do ownerResourceid atributo encontrado na resposta do Get-AzCosmosdbGremlinRestorableDatabase cmdlet. A resposta também inclui uma lista de operações realizadas em todos os gráficos dentro desta base de dados.

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

Localizar bases de dados ou gráficos que possam ser restaurados num determinado carimbo de data/hora

Utilize o seguinte comando para obter a lista de bases de dados ou gráficos que podem ser restaurados num determinado carimbo de data/hora. Este comando só funciona com contas em direto.

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

Enumerar recursos restauráveis para a API para Tabela

Os cmdlets de enumeração ajudam-no a descobrir os recursos que estão disponíveis para restauro em vários carimbos de data/hora. Além disso, também fornecem um feed de eventos-chave na conta recuperável e nos recursos de tabela.

Listar todas as versões das tabelas de uma base de dados numa conta de base de dados dinâmica

Utilize o seguinte comando para listar todas as versões das tabelas. Este comando só funciona com contas em direto.

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

Localizar tabelas que podem ser restauradas a qualquer carimbo de data/hora

Utilize o seguinte comando para obter a lista de tabelas que podem ser restauradas num determinado carimbo de data/hora. Este comando só funciona com contas em direto.

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

Restaurar uma conta com a CLI do Azure

Antes de restaurar a conta, instale a CLI do Azure com os seguintes passos:

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

    • Instale a versão mais recente da CLI do Azure ou versão superior a 2.26.0.
    • Se já tiver instalado a CLI, execute az upgrade o comando para atualizar para a versão mais recente. Este comando só funcionará com a versão da CLI superior à 2.11. Se tiver uma versão anterior, utilize a ligação acima para instalar a versão mais recente.
  2. Inicie sessão e selecione a sua subscrição

    • Inicie sessão na sua conta do Azure com o az login comando .
    • Selecione a subscrição necessária com az account set -s <subscriptionguid> o comando .

Acionar uma operação de restauro com a CLI do Azure

A forma mais simples de acionar um restauro é ao emitir o comando de restauro com o nome da conta de destino, conta de origem, localização, grupo de recursos, carimbo de data/hora (em UTC) e, opcionalmente, os nomes da base de dados e dos contentores. Seguem-se alguns exemplos para acionar a operação de restauro:

Criar uma nova conta do Azure Cosmos DB ao restaurar a partir de 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"

Criar uma nova conta do Azure Cosmos DB ao restaurar apenas bases de dados e contentores selecionados a partir de uma conta de base 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 nova API do Azure Cosmos DB para conta do Gremlin ao restaurar apenas bases de dados e gráficos selecionados a partir de uma API existente para a conta do Gremlin


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 nova API do Azure Cosmos DB para conta de Tabela ao restaurar apenas tabelas selecionadas a partir de uma API existente para conta de Tabela


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 do restauro a partir da conta restaurada

Execute o seguinte comando para obter os detalhes do restauro. A az cosmosdb show saída do comando mostra o valor da createMode propriedade. Se o valor estiver definido como Restaurar, indica que a conta foi restaurada a partir de outra conta. A restoreParameters propriedade tem mais detalhes, como restoreSource, que tem o ID da conta de origem. O último GUID no restoreSource parâmetro é o da conta de origem instanceId . E o restoreTimestamp estará sob o restoreParameters objeto:

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

Enumerar recursos restauráveis para a API para NoSQL

Os comandos de enumeração descritos abaixo ajudam-no a descobrir os recursos disponíveis para restauro em vários carimbos de data/hora. Além disso, também fornecem um feed de eventos-chave na conta, base de dados e recursos de contentor restauráveis.

Listar todas as contas que podem ser restauradas na subscrição atual

Execute o seguinte comando da CLI do Azure para listar todas as contas que podem ser restauradas na subscrição atual

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

A resposta inclui todas as contas de base de dados (em direto e eliminadas) que podem ser restauradas e as regiões a partir das quais podem ser restauradas:

{
    "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"
  }

Tal como o CreationTime ou DeletionTime para a conta, também existe um CreationTime ou DeletionTime para a região. Estas horas permitem-lhe escolher a região certa e um intervalo de tempo válido para restaurar para essa região.

Listar todas as versões das bases de dados numa conta de base de dados dinâmica

Listar todas as versões das bases de dados permite-lhe escolher a base de dados correta num cenário em que o tempo real de existência da base de dados é desconhecido.

Execute o seguinte comando da CLI do Azure para listar todas as versões das bases de dados. Este comando só funciona com contas em direto. Os instance-id parâmetros e location são obtidos a name partir das propriedades e location na resposta do az cosmosdb restorable-database-account list comando. O instanceId atributo também é uma propriedade da conta de base de dados de origem que está a ser restaurada:

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

Esta saída de comando mostra agora quando uma base de dados foi criada e eliminada.

[
  {
    "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 dos contentores SQL de uma base de dados numa conta de base de dados dinâmica

Utilize o seguinte comando para listar todas as versões dos contentores do SQL. Este comando só funciona com contas em direto. O database-rid parâmetro é o ResourceId da base de dados que pretende restaurar. É o valor do ownerResourceid atributo encontrado na resposta do az cosmosdb sql restorable-database list comando.

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

Esta saída de comando mostra uma lista de operações realizadas em todos os contentores dentro desta base 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 bases de dados ou contentores que possam ser restaurados a qualquer carimbo de data/hora

Utilize o seguinte comando para obter a lista de bases de dados ou contentores que podem ser restaurados num determinado carimbo de data/hora. Este comando só funciona com contas em direto.


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 para a API para a conta do MongoDB

Os comandos de enumeração descritos abaixo ajudam-no a descobrir os recursos que estão disponíveis para restauro em vários carimbos de data/hora. Além disso, também fornecem um feed de eventos-chave na conta, base de dados e recursos de contentor restauráveis. Estes comandos só funcionam para contas em direto.

Listar todas as versões das bases de dados do MongoDB numa conta de base 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 uma base de dados numa conta de base 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 base de dados do mongodb que estão disponíveis para restauro num 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 das bases de dados numa conta de base de dados dinâmica

Os comandos de enumeração descritos abaixo ajudam-no a descobrir os recursos que estão disponíveis para restauro em vários carimbos de data/hora. Além disso, também fornecem um feed de eventos-chave na conta, base de dados e recursos de gráficos restauráveis. Estes comandos só funcionam para contas em direto.

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

Esta saída de comando mostra agora quando uma base de dados foi criada e eliminada.

[ { 
    "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 dos gráficos do Gremlin de uma base de dados numa conta de base de dados dinâmica

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

Esta saída de comando mostra uma lista de operações realizadas em todos os contentores dentro desta base 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" 
  } 
] 

Localizar bases de dados ou gráficos que possam ser restaurados num determinado 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" 
[   { 
    "databaseName": "db1", 
    "graphNames": [ 
      "graph1", 
      "graph3", 
      "graph2" 
    ] 
  } 
] 

Enumerar recursos restauráveis para a API para a conta de Tabela

Os comandos de enumeração descritos abaixo ajudam-no a descobrir os recursos que estão disponíveis para restauro em vários carimbos de data/hora. Além disso, também fornecem um feed de eventos-chave na conta restabelecida e na API para recursos de Tabela. Estes comandos só funcionam para contas em direto.

Listar todas as versões das tabelas numa conta de base 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 API para a conta tabela que estão disponíveis para restauro num determinado carimbo de data/hora e 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" 
{   
  "tableNames": [ 
    "table1", 
    "table3", 
    "table2" 
  ] 
} 

Restaurar com o modelo de Resource Manager do Azure

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

Restaurar a API para a conta NoSQL ou MongoDB com o modelo do ARM

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

Utilize o seguinte modelo do ARM para restaurar uma conta para a API do Azure Cosmos DB para NoSQL ou MongoDB. Em seguida, são fornecidos exemplos para outras APIs.

{
  "$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": "2016-03-31",
      "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"
        }
      }
    }
  ]
}

Restaurar a API para a conta do Gremlin com o 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": "2016-03-31",
      "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 API para conta de Tabela com o 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": "2016-03-31",
      "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, implemente o modelo com Azure PowerShell ou a CLI do Azure. O exemplo seguinte mostra como implementar o modelo com um comando da CLI do Azure:

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

Passos seguintes