Restaurar bancos de dados do SQL Server em VMs do Azure

Este artigo descreve como restaurar um banco de dados do SQL Server em execução em uma VM (máquina virtual) do Azure cujo backup foi feito pelo serviço Backup do Azure para um cofre dos Serviços de Recuperação do Backup do Azure.

Este artigo descreve como restaurar bancos de dados do SQL Server. Para saber mais, confira Fazer backup de bancos de dados do SQL Server em VMs do Azure.

Observação

Confira a Matriz de suporte ao backup de SQL para saber mais sobre as configurações e os cenários com suporte.

Restaurar para uma hora ou um ponto de recuperação

O Backup do Azure pode restaurar bancos de dados do SQL Server em execução em VMs do Azure da seguinte maneira:

  • Restaure a uma data e hora específicas (com precisão de segundos), usando backups de log de transações. O Backup do Azure determina automaticamente o backup diferencial completo adequado e a cadeia de backups de log de transações necessários para restaurar com base na hora selecionada.
  • Restaure um backup completo ou diferencial específico para restaurar um ponto de recuperação específico.

Pré-requisitos da restauração

Antes de restaurar um banco de dados, observe as seguintes informações:

  • Você pode restaurar o banco de dados para uma instância de um SQL Server na mesma região do Azure.
  • O servidor de destino precisa ser registrado no mesmo cofre que a fonte. Se você quiser restaurar backups em um cofre diferente, habilite a Restauração entre Assinaturas.
  • Se você tem várias instâncias em execução em um servidor, todas elas devem estar ativas e em execução. Caso contrário, o servidor não será exibido na lista de servidores de destino nos quais você pode restaurar o banco de dados. Para mais informações, confira as etapas de solução de problemas.
  • Para restaurar um banco de dados criptografado por TDE em outro SQL Server, primeiramente, você precisa restaurar o certificado no servidor de destino.
  • Os bancos de dados habilitados para CDA devem ser restaurados usando a opção Restaurar como arquivos.
  • É altamente recomendável restaurar o banco de dados "mestre" usando a opção Restaurar como arquivos e, em seguida, restaurar pelos comandos T-SQL.
  • Para todos os bancos de dados do sistema (modelo, msdb), interrompa o serviço SQL Server Agent antes de acionar a restauração.
  • Feche todos os aplicativos que podem tentar levar uma conexão a um desses bancos de dados.

Restaurar um banco de dados

Para restaurar você precisará das seguintes permissões:

  • Permissões de Operador de Backup no cofre em que você está fazendo a restauração.
  • Acesso de Colaborador (gravação) à VM de origem da qual será feito backup.
  • Acesso de Colaborador (gravação) à VM de destino:
    • Se você estiver restaurando na mesma VM, esta é a VM de origem.
    • Se você estiver restaurando em uma localização alternativa, esta é a nova VM de destino.

Restaure da seguinte maneira:

  1. No portal do Azure, acesse o Centro de backupe clique em Restaurar.

    Screenshot showing the start the restore process.

  2. Selecione SQL na VM do Azure como o tipo datasource, selecione um banco de dados a ser restaurado e clique em Continuar.

    Screenshot showing to select the datasource type.

  3. Em Restaurar Configuração, especifique onde (ou como) restaurar os dados:

    • Local alternativo: restaure o banco de dados em um local alternativo e mantenha o banco de dados de origem original.

    • Substituir Banco de Dados: restaure os dados para a mesma instância do SQL Server que a fonte original. Essa opção substitui o banco de dados original.

      Importante

      Se o banco de dados selecionado pertencer a um grupo de disponibilidade Always On, o SQL Server não permitirá que o banco de dados seja substituído. Somente Localização Alternativa está disponível.

    • Restaurar como arquivos: em vez de restaurar como um banco de dados, restaure os arquivos de backup que podem ser recuperados como um banco de dados posteriormente em qualquer computador em que os arquivos estejam presentes, usando o SQL Server Management Studio.

Restaurar para um local alternativo

  1. No menu Restaurar Configuração, em Onde Restaurar, selecione Localização Alternativa.

  2. Selecione o nome do SQL Server e a instância na qual você deseja restaurar o banco de dados.

  3. Na caixa Nome do Banco de Dados Restaurado, digite o nome do banco de dados de destino.

  4. Se aplicável, selecione Substituir se o BD com o mesmo nome já existir na instância do SQL selecionada.

  5. Escolha Ponto de restauração e escolha se deseja restaurar a um ponto específico no tempo ou restaurar a um ponto de recuperação específico.

    Screenshot showing to select Restore Point.

    Screenshot showing restore to point in time.

  6. No menu Configuração Avançada:

    • Se você quiser manter o banco de dados não operacional após a restauração, habilite Restaurar com NORECOVERY.

    • Se quiser mudar a localização de restauração no servidor de destino, insira novos caminhos de destino.

      Enter target paths

  7. Escolha OK para acionar a restauração. Acompanhe o progresso da restauração na área Notificações ou acompanhe-o na exibição Trabalhos de backup do cofre.

    Observação

    A restauração pontual só está disponível para backups de log de bancos de dados que estão no modo de recuperação completa e bulk-logged.

Restaurar e substituir

  1. No menu Restaurar Configuração, em Onde Restaurar, selecione Substituir BD>OK.

    Select Overwrite DB

  2. Em Selecionar ponto de restauração, selecione Logs (Ponto no Tempo) para restaurar para um ponto específico no tempo. Ou escolha Completo e diferencial para restaurar a um ponto de recuperação específico.

    Observação

    A restauração pontual só está disponível para backups de log de bancos de dados que estão no modo de recuperação completa e bulk-logged.

Restaurar como arquivos

Para restaurar os dados de backup como arquivos .bak em vez de um banco de dados, escolha Restaurar como Arquivos. Assim que os arquivos forem despejados em um caminho especificado, você poderá levá-los a qualquer computador onde você deseja restaurá-los como um banco de dados. Como é possível mover esses arquivos para qualquer computador, agora, é possível restaurar os dados entre assinaturas e regiões.

  1. Em Onde e como restaurar, escolha Restaurar como arquivos.

  2. Escolha o nome do SQL Server no qual você deseja restaurar os arquivos de backup.

  3. No Caminho de destino do servidor, insira o caminho da pasta do servidor selecionado na etapa 2. Esse é o local onde o serviço despejará todos os arquivos de backup necessários. Normalmente, um caminho de compartilhamento de rede (ou caminho de um compartilhamento de arquivo do Azure montado quando especificado como o caminho de destino) permite o acesso mais fácil a esses arquivos por outros computadores na mesma rede ou com o mesmo compartilhamento de arquivo do Azure montado neles.

    Observação

    Para restaurar os arquivos de backup de banco de dados em um compartilhamento de arquivo do Azure montado na VM registrada no destino, verifique se NT AUTHORITY\SYSTEM tem acesso ao compartilhamento de arquivo. Você pode seguir as etapas informadas abaixo para conceder as permissões de leitura/gravação ao AFS montado na VM:

    • Executar PsExec -s cmd para entrar no shell NT AUTHORITY\SYSTEM
      • Execute cmdkey /add:<storageacct>.file.core.windows.net /user:AZURE\<storageacct> /pass:<storagekey>
      • Verificar o acesso com dir \\<storageacct>.file.core.windows.net\<filesharename>
    • Iniciar uma restauração como arquivos no cofre de backup, usando \\<storageacct>.file.core.windows.net\<filesharename> como o caminho
      Você pode fazer download do PsExec na página Sysinternals.
  4. Selecione OK.

    Select Restore As Files

  5. Escolha Ponto de restauração e escolha se deseja restaurar a um ponto específico no tempo ou restaurar a um ponto de recuperação específico.

  6. Ao fazer a restauração pontual do banco de dados SQL usando Restaurar como arquivos, ela armazenará todos os pontos de recuperação do Backup completo no ponto no tempo selecionado. Em seguida, você pode restaurar esses arquivos como um banco de dados em qualquer computador em que eles estejam presentes, usando o SQL Server Management Studio.

    Restored Backup Files in Destination Path

Restaurar a um ponto específico no tempo

Se você tiver selecionado Logs (Pontual) como o tipo de restauração, faça o seguinte:

  1. Em Data/hora de restauração, abra o calendário. No calendário, as datas que têm pontos de recuperação são exibidas em negrito e a data atual é realçada.

  2. Escolha uma data que tenha pontos de recuperação. Não é possível escolher datas sem pontos de recuperação.

    Open the calendar

  3. Depois de você selecionar uma data, o gráfico de linha do tempo exibirá os pontos de recuperação disponíveis em um intervalo contínuo.

  4. Especifique uma hora para a recuperação usando o grafo de linha do tempo ou escolha uma hora. Depois, selecione OK.

Restauração parcial como arquivos

O serviço Backup do Azure decide a cadeia de arquivos a ser baixada durante a restauração como arquivos. Mas há cenários em que talvez você não queira baixar todo o conteúdo novamente.

Por exemplo, quando você tem uma política de backup de completos semanais, diferenciais e logs diários, e já baixou arquivos para um diferencial específico. Você descobriu que esse não é o ponto de recuperação certo e decidiu baixar o diferencial do dia seguinte. Agora você só precisa do arquivo diferencial, pois já tem a inicialização completa. Com a restauração parcial como capacidade de arquivos, fornecida por Backup do Azure, agora você pode excluir o completo da cadeia de download e baixar apenas o diferencial.

Excluindo tipos de arquivo de backup

O ExtensionSettingsOverrides.json é um arquivo JSON (JavaScript Object Notation), que contém substituições para várias configurações do serviço Backup do Azure para SQL. Para a operação "Restauração parcial como arquivos", um novo campo JSON RecoveryPointTypesToBeExcludedForRestoreAsFiles deve ser adicionado. Esse campo contém um valor de cadeia de caracteres que indica quais tipos de ponto de recuperação devem ser excluídos na próxima restauração como operação de arquivos.

  1. No computador de destino em que os arquivos devem ser baixados, vá para a pasta "C:\Arquivos de Programas\Backup de Carga de Trabalho do Azure\bin"

  2. Crie um arquivo JSON chamado "ExtensionSettingsOverrides.JSON", se ele ainda não existir.

  3. Adicionar o seguinte par de valores de chave JSON

    {
    "RecoveryPointTypesToBeExcludedForRestoreAsFiles": "ExcludeFull"
    }
    
  4. Não é necessário reiniciar nenhum serviço. O serviço Backup do Azure tentará excluir tipos de backup na cadeia de restauração, conforme mencionado neste arquivo.

O RecoveryPointTypesToBeExcludedForRestoreAsFiles só usa valores específicos que denotam os pontos de recuperação a serem excluídos durante a restauração. Para SQL, esses valores são:

  • ExcludeFull (outros tipos de backup, como diferenciais e logs, serão baixados, se estiverem presentes na cadeia de pontos de restauração)
  • ExcludeFullAndDifferential (outros tipos de backup, como logs, serão baixados, se estiverem presentes na cadeia de pontos de restauração)
  • ExcludeFullAndIncremental (outros tipos de backup, como logs, serão baixados, se estiverem presentes na cadeia de pontos de restauração)
  • ExcludeFullAndDifferentialAndIncremental (Outros tipos de backup, como logs, serão baixados, se estiverem presentes na cadeia de pontos de restauração.)

Restaurar a um ponto de restauração específico

Se você tiver selecionado Completo e Diferencial como o tipo de restauração, faça o seguinte:

  1. Selecione um ponto de recuperação da lista e selecione OK para concluir o procedimento de ponto de restauração.

    Choose a full recovery point

    Observação

    Por padrão, são exibidos os pontos de recuperação dos últimos 30 dias. Você pode exibir pontos de recuperação anteriores a 30 dias escolhendo Filtrar e um intervalo personalizado.

Restaurar bancos de dados com muitos arquivos

Se o tamanho total da cadeia de caracteres dos arquivos em um banco de dados for maior que um limite específico, o Backup do Azure armazenará a lista de arquivos de banco de dados em um componente Pit diferente. Assim, você não poderá configurar o caminho de restauração de destino durante a operação de restauração. Em vez disso, os arquivos serão restaurados no caminho padrão do SQL.

Restore Database with large file

Recuperar um banco de dados do arquivo .bak usando o SSMS

Você pode usar a operação Restaurar como Arquivos para restaurar os arquivos de banco de dados no formato .bak durante a restauração do portal do Azure. Saiba mais.

Quando a restauração do arquivo .bak para a máquina virtual do Azure for concluída, você poderá disparar a restauração usando comandos TSQL por meio do SSMS.   Para restaurar os arquivos de banco de dados para o caminho original no servidor de origem, remova a MOVE cláusula da consulta de restauração do TSQL.   Exemplo

  USE [master] 
  RESTORE DATABASE [<DBName>] FROM  DISK = N'<.bak file path>'

Observação

Você não deve ter os mesmos arquivos de banco de dados no servidor de destino (restaurar com substituir).  Além disso, você pode habilitar a inicialização instantânea de arquivo no servidor de destino para reduzir a sobrecarga de tempo de inicialização do arquivo.

Para realocar os arquivos de banco de dados do servidor de restauração de destino, você pode enquadrar um comando TSQL usando as MOVE cláusulas.

  USE [master] 
  RESTORE DATABASE [<DBName>] FROM  DISK = N'<.bak file path>'  MOVE N'<LogicalName1>' TO N'<TargetFilePath1OnDisk>',  MOVE N'<LogicalName2>' TO N'<TargetFilePath2OnDisk>' GO

Exemplo

  USE [master] 
  RESTORE DATABASE [test] FROM  DISK = N'J:\dbBackupFiles\test.bak' WITH  FILE = 1,  MOVE N'test' TO N'F:\data\test.mdf',  MOVE N'test_log' TO N'G:\log\test_log.ldf',  NOUNLOAD,  STATS = 5 
  GO

Se houver mais de dois arquivos para o banco de dados, você poderá adicionar cláusulas adicionais MOVE à consulta de restauração. Você também pode usar o SSMS para recuperação de banco de dados usando .bak arquivos. Saiba mais.

Observação

Para recuperação de banco de dados grande, recomendamos que você use instruções TSQL. Se você quiser realocar os arquivos de banco de dados específicos, consulte a lista de arquivos de banco de dados no formato JSON criado durante a operação Restaurar como Arquivos.

Restauração Entre Regiões

Como uma das opções de restauração, a CRR (restauração entre regiões) permite que você restaure bancos de dados SQL hospedados em VMs do Azure em uma região secundária, que é uma região emparelhada do Azure.

Para integrar o recurso, leia a seção Antes de começar.

Para conferir se a CRR está habilitada, siga as instruções em Configurar a Restauração entre Regiões

Exibir itens de backup na região secundária

Se a CRR estiver habilitada, você poderá exibir os itens de backup na região secundária.

  1. No portal, vá para cofre dos Serviços de Recuperação>Itens de Backup.
  2. Selecione Região secundária para exibir os itens na região secundária.

Observação

Somente os tipos de gerenciamento de backup compatíveis com o recurso CRR serão mostrados na lista. Atualmente, é permitido somente o suporte para a restauração de dados de região secundária em uma região secundária.

Backup items in secondary region

Databases in secondary region

Restauração na região secundária

A experiência do usuário na restauração da região secundária será semelhante à experiência do usuário na restauração da região primária. Ao configurar os detalhes no painel Configuração de Restauração para configurar a restauração, você será solicitado a fornecer somente parâmetros de região secundária. Um cofre deve existir na região secundária e o servidor SQL deve ser registrado no cofre na região secundária.

Where and how to restore

Trigger restore in progress notification

Observação

  • Depois que a restauração é disparada e está na fase de transferência de dados, o trabalho de restauração não pode ser cancelado.
  • O nível de função/acesso necessário para executar a operação de restauração entre regiões são a função Operador de Backup na assinatura e o acesso de Colaborador (gravação) nas máquinas virtuais de origem e destino. Para ver os trabalhos de backup, a permissão mínima necessária na assinatura é Leitor de backup.
  • O RPO para que os dados de backup estejam disponíveis na região secundária é de 12 horas. Portanto, quando você ativa o CRR, o RPO para a região secundária é de 12 horas + a duração de frequência de log (que pode ser definida para um mínimo de 15 minutos).

Saiba mais sobre os requisitos mínimos de função para restauração entre regiões.

Monitoramento de trabalhos de restauração na região secundária

  1. No portal do Azure, acesse o Centro de backup>Trabalhos de backup.

  2. Operação de filtro para CrossRegionRestore para exibir os trabalhos na região secundária.

    Screenshot showing the filtered Backup jobs.

Restauração Entre Assinaturas

O Backup do Azure agora permite que você restaure o banco de dados SQL para qualquer assinatura (de acordo com os requisitos de RBAC do Azure a seguir) a partir do ponto de restauração. Por padrão, o Backup do Azure restaura para a mesma assinatura em que os pontos de restauração estão disponíveis.

Com a Restauração Entre Assinaturas (CSR), você tem a flexibilidade de restaurar para qualquer assinatura e qualquer cofre do seu locatário, se as permissões de restauração estiverem disponíveis. Por padrão, a CSR está habilitada em todos os cofres dos Serviços de Recuperação (cofres existentes e recém-criados).

Observação

  • Você pode acionar a Restauração Entre Assinaturas a partir do cofre dos Serviços de Recuperação.
  • O CSR tem suporte apenas para backup baseado em streaming e não tem suporte para backup baseado em instantâneo.
  • Não há suporte para Restauração Entre Regiões (CRR) com CSR.

Requisitos do RBAC do Azure

Tipo de operação Operador de backup Cofre dos Serviços de Recuperação Operador alternativo
Restaurar o banco de dados ou restaurar como arquivos Virtual Machine Contributor VM de origem que foi submetida a backup Em vez de uma função integrada, você pode pensar em uma função personalizada que tenha as seguintes permissões:

- Microsoft.Compute/virtualMachines/write
- Microsoft.Compute/virtualMachines/read
Virtual Machine Contributor VM de destino em que o banco de dados será restaurado ou os arquivos serão criados. Em vez de uma função interna, você pode pensar em uma função personalizada com as seguintes permissões:

- Microsoft.Compute/virtualMachines/write
- Microsoft.Compute/virtualMachines/read
Backup Operator Cofre dos Serviços de Recuperação do Destino

Por padrão, o CSR está habilitado no cofre dos Serviços de Recuperação. Para atualizar as configurações de restauração do cofre dos Serviços de Recuperação, acesse Propriedades>Restauração Entre Assinaturas e faça as alterações necessárias.

Screenshot shows how to modify the Cross Subscription Restore settings on a Recovery Services vault for SQL database.

Próximas etapas

Gerenciar e monitorar bancos de dados do SQL Server cujo backup é feito pelo Backup do Azure.