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

APLICA A: SQL API Azure Cosmos DB API para MongoDB

A funcionalidade de restauro pontual da Azure Cosmos DB ajuda-o a recuperar de uma alteração acidental dentro de um contentor, a restaurar uma conta, base de dados ou um contentor apagado ou a restaurar em qualquer região (onde existiam cópias de segurança). O modo de backup contínuo permite-lhe restaurar qualquer ponto de tempo nos últimos 30 dias.

Este artigo descreve como identificar o tempo de restauração e restaurar uma conta DB Azure Cosmos ao vivo ou eliminada. Mostra restaurar a conta utilizando o portal Azure, PowerShell, CLIou um modelo de Gestor de Recursos.

Restaurar uma conta usando o portal Azure

Restaurar uma conta ao vivo de modificação acidental

Pode utilizar o portal Azure para restaurar uma conta inteira ou bases de dados selecionadas e contentores debaixo dela. Utilize os seguintes passos para restaurar os seus dados:

  1. Inscreva-se no portal Azure

  2. Navegue na sua conta DB Azure Cosmos e abra a lâmina Point In Time Restore.

    Nota

    A lâmina de restauro no portal Azure só é povoada se tiver Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read a permissão. Para saber mais sobre como definir esta permissão, consulte o artigo de Backup e restaurar permissões.

  3. Preencha os seguintes detalhes para restaurar:

    • Ponto de Restauro (UTC) – Um calendário nos últimos 30 dias. A conta deve existir nessa hora. Pode especificar o ponto de restauro na UTC. Pode ser o mais próximo do segundo quando quiser restaurá-lo. Selecione o link Click aqui para obter ajuda na identificação do ponto de restauro.

    • Localização – Região de destino onde a conta é restaurada. A conta deve existir nesta região na data de tempo dada (por exemplo, Eua Ocidental ou Leste dos EUA). Uma conta só pode ser restaurada às regiões em que a conta de origem existiu.

    • Restaurar recurso – Pode escolher conta inteira ou uma base de dados/recipiente selecionado para restaurar. As bases de dados e os contentores devem existir no momento em que se deve ter. Com base no ponto de restauro e localização selecionados, os recursos de restauração 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 sob o qual a conta-alvo será criada e restaurada. O grupo de recursos já deve existir.

    • Restaurar a Conta Alvo – O nome da conta-alvo. O nome da conta-alvo tem de seguir as mesmas orientações 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.

    Restaurar uma conta ao vivo a partir de modificação acidental do portal Azure.

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

A eliminação da conta de origem enquanto uma restauração está em curso pode resultar em falha na restauração.

Use o feed do evento para identificar o tempo de restauração

Ao preencher o ponto de restauração no portal Azure, se precisar de ajuda para identificar o ponto de restauro, selecione o link Click aqui, leva-o à lâmina de alimentação do evento. O feed do evento fornece uma lista completa de fidelidade de criar, substituir, eliminar eventos em bases de dados e contentores da conta de origem.

Por exemplo, se pretender restabelecer o ponto antes de um determinado recipiente ser eliminado ou atualizado, verifique este feed do evento. Os eventos são exibidos em ordem cronologicamente descendente do tempo quando ocorreram, com eventos recentes no topo. Pode navegar pelos resultados e selecionar o tempo antes ou depois do evento para reduzir ainda mais o seu tempo.

Utilize o feed do evento para identificar o tempo de ponto de restauração.

Nota

O feed do evento não apresenta as alterações nos recursos do item. Pode sempre especificar manualmente qualquer relógio de tempo nos últimos 30 dias (o tempo que a conta existir nessa altura) para restauro.

Restaurar uma conta eliminada

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

  1. Inscreva-se no portal Azure

  2. Procure recursos DB da Azure Cosmos na barra de pesquisa global. Ele lista todas as suas contas existentes.

  3. Em seguida, selecione o botão Restaurar. A lâmina Restore apresenta uma lista de contas eliminadas que podem ser restauradas dentro do período de retenção, que é de 30 dias a partir do tempo de eliminação.

  4. Escolha a conta que pretende restaurar.

    Restaurar uma conta eliminada do portal Azure.

    Nota

    A lâmina de restauro no portal Azure só é povoada se tiver Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read a permissão. Para saber mais sobre como definir esta permissão, consulte o artigo de Backup e restaurar permissões.

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

    • Ponto de Restauro (UTC) – Um calendário nos últimos 30 dias. A conta devia ter existido naquele momento. Especifique o ponto de restauro na UTC. Pode ser o mais próximo do segundo quando quiser restaurá-lo.

    • Localização – Região de destino onde a conta precisa de ser restaurada. A conta de origem deve existir nesta região no momento em que o tempo de jogo é determinado. Exemplo Dos EUA ou do Leste dos EUA.

    • Grupo de recursos - Grupo de recursos sob o qual a conta-alvo será criada e restaurada. O grupo de recursos já deve existir.

    • Restaurar a Conta Alvo – O nome da conta-alvo 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.

Acompanhe o estado da operação de restauro

Depois de iniciar uma operação de restauro, selecione o ícone da campainha de notificação no canto superior direito do portal. Dá um link que mostra o estado da conta a ser restaurada. Enquanto a restauração estiver em curso, o estado da conta será criar, após a operação de restauro concluída, o estado da conta será alterado para Online.

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

Restaurar uma conta usando Azure PowerShell

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

  1. Inscreva-se em Azure utilizando o seguinte comando:

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

    Select-AzSubscription -Subscription <SubscriptionName>
    
    

Trigger a restore operation

The following cmdlet is an example to trigger a restore operation with the restore command by using the target account, source account, location, resource group, and timestamp:


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 do MyDB1 e toda a base de dados MyDB2, que inclui todos os contentores por baixo.

$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"

Enumerar recursos ressurreíveis para SQL API

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

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

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

A resposta inclui todas as contas de base de dados (ao vivo e eliminadas) que podem ser restauradas e as regiões a partir das qual 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 a CreationTime conta ou para a DeletionTime conta, há um ou para CreationTime a DeletionTime região também. Estes tempos permitem-lhe escolher a região certa e um intervalo de tempo válido para restaurar naquela região.

Listar todas as versões de bases de dados SQL numa conta de base de dados ao vivo

A listagem de todas as versões de 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 PowerShell para listar todas as versões das bases de dados. Este comando só funciona com contas ao vivo. Os DatabaseAccountInstanceId parâmetros e os Location parâmetros são obtidos a partir da name location esto de propriedades 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 de SQL contentores de uma base de dados numa conta de base de dados ao vivo

Utilize o seguinte comando para listar todas as versões de SQL recipientes. Este comando só funciona com contas ao vivo. O DatabaseRId parâmetro é a base de ResourceId dados que quer restaurar. É o valor do ownerResourceid atributo encontrado na resposta do Get-AzCosmosdbSqlRestorableDatabase cmdlet. A resposta inclui ainda 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"

Encontre bases de dados ou contentores que possam ser restaurados em qualquer momento

Utilize o seguinte comando para obter a lista de bases de dados ou contentores que podem ser restaurados em qualquer data. Este comando só funciona com contas ao vivo.


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

Enumerar recursos restauradores na API para a MongoDB

Os comandos de enumeração descritos abaixo ajudam-no a descobrir os recursos disponíveis para restauro em vários picos de tempo. Além disso, fornecem também um feed de eventos-chave na conta, base de dados e recursos de contentores restauradores. Estes comandos funcionam apenas para contas ao vivo e são semelhantes aos comandos da API SQL, mas com MongoDB o nome de comando em vez de sql .

Listar todas as versões das bases de dados do MongoDB numa conta de base de dados ao vivo


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

Listar todas as versões de coleções de mongodb de uma base de dados numa conta de base de dados ao vivo


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

Listar todos os recursos de uma conta de base de dados de mongodb que estão disponíveis para restaurar em um determinado timetamp e região


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

Restaurar uma conta usando O Azure CLI

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

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

    • Instale a versão mais recente do Azure CLI ou versão superior a 2.26.0
    • Se já instalou o CLI, execute az upgrade o comando para atualizar para a versão mais recente. Este comando só funcionará com a versão CLI superior a 2.11. Se tiver uma versão anterior, utilize o link acima para instalar a versão mais recente.
  2. Iniciar sôr-se e selecionar a sua subscrição

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

Desencadear uma operação de restauro com CLI

A forma mais simples de desencadear uma restauração é emitindo o comando de restauro com o nome da conta-alvo, conta de origem, localização, grupo de recursos, timetamp (na UTC), e opcionalmente a base de dados e os nomes dos contentores. Seguem-se alguns exemplos para desencadear a operação de restauro:

  1. Crie uma nova conta DB Azure Cosmos restaurando 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"
    
    
  2. Crie uma nova conta DB Azure Cosmos restaurando 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
    
    

Enumerar recursos ressurreíveis para SQL API

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

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

Executar o seguinte comando CLI 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 (ao vivo e eliminadas) que podem ser restauradas e as regiões que podem ser restauradas a partir 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/7133a59a-d1c0-4645-a699-6e296d6ac865",
    "identity": null,
    "location": "West US",
    "name": "7133a59a-d1c0-4645-a699-6e296d6ac865",
    "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 a CreationTime conta ou para a DeletionTime conta, há um ou para CreationTime a DeletionTime região também. Estes tempos permitem-lhe escolher a região certa e um intervalo de tempo válido para restaurar naquela região.

Listar todas as versões de bases de dados numa conta de base de dados ao vivo

A listagem de todas as versões de 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 CLI para listar todas as versões de bases de dados. Este comando só funciona com contas ao vivo. Os instance-id parâmetros e os location parâmetros são obtidos a partir da name location esmandagem na resposta ao az cosmosdb restorable-database-account list comando. O atributo casoId é 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 "7133a59a-d1c0-4645-a699-6e296d6ac865" \
  --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/7133a59a-d1c0-4645-a699-6e296d6ac865/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/7133a59a-d1c0-4645-a699-6e296d6ac865/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 SQL contentores de uma base de dados numa conta de base de dados ao vivo

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

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

Esta saída de comando mostra que a 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="
  },
]

Encontre bases de dados ou contentores que possam ser restaurados em qualquer momento

Utilize o seguinte comando para obter a lista de bases de dados ou contentores que podem ser restaurados em qualquer data. Este comando só funciona com contas ao vivo.


az cosmosdb sql restorable-resource list \
  --instance-id "7133a59a-d1c0-4645-a699-6e296d6ac865" \
  --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 ressurreíveis para conta mongodb API

Os comandos de enumeração descritos abaixo ajudam-no a descobrir os recursos disponíveis para restauro em vários picos de tempo. Além disso, fornecem também um feed de eventos-chave na conta, base de dados e recursos de contentores restauradores. Estes comandos só funcionam para contas ao vivo.

Listar todas as versões das bases de dados de Mongodb numa conta de base de dados ao vivo

az cosmosdb mongodb restorable-database list \
    --instance-id "7133a59a-d1c0-4645-a699-6e296d6ac865" \
    --location "West US"

Listar todas as versões de coleções de mongodb de uma base de dados numa conta de base de dados ao vivo

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

Listar todos os recursos de uma conta de base de dados de mongodb que estão disponíveis para restaurar em um determinado timetamp e região

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

Restaurar usando o modelo de Gestor de Recursos

Também pode restaurar uma conta usando o modelo de Gestor de Recursos. Ao definir o modelo incluem os seguintes parâmetros:

  • Definir o createMode parâmetro para restaurar
  • Defina o restoreParameters , note que o valor é extraído da saída do comando para a sua conta de restoreSource az cosmosdb restorable-database-account list origem. O atributo de identificação de exemplo para o seu nome de conta é usado para fazer a restauração.
  • Defina o restoreMode parâmetro para PointInTime e configuure o restoreTimestampInUtc valor.
{
  "$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"
        }
      }
    }
  ]
}

Em seguida, desloque o modelo utilizando Azure PowerShell ou CLI. O exemplo a seguir mostra como implantar o modelo com um comando CLI:

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

Passos seguintes