Restaurar bases de dados do SQL Server em VMs do Azure

Este artigo descreve como restaurar um banco de dados do SQL Server que está sendo executado em uma máquina virtual (VM) do Azure que o serviço de Backup do Azure fez backup em um cofre dos Serviços de Recuperação de Backup do Azure.

Este artigo descreve como restaurar bancos de dados do SQL Server. Para obter mais informações, consulte Fazer backup de bancos de dados do SQL Server em VMs do Azure.

Nota

Consulte a matriz de suporte de backup SQL para saber mais sobre as configurações e cenários suportados.

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

O Backup do Azure pode restaurar bancos de dados do SQL Server que estão sendo executados em VMs do Azure da seguinte maneira:

  • Restaure para uma data ou hora específica (para a segunda) usando backups de log de transações. O Backup do Azure determina automaticamente o backup diferencial completo apropriado e a cadeia de backups de log que são necessários para restaurar com base no tempo selecionado.
  • Restaure um backup completo ou diferencial específico para restaurar para um ponto de recuperação específico.

Restaurar pré-requisitos

Antes de restaurar um banco de dados, observe o seguinte:

  • Pode restaurar a base de dados numa instância do SQL Server na mesma região do Azure.
  • O servidor de destino tem de estar registado no mesmo cofre que a origem. Se quiser restaurar backups para um cofre diferente, habilite a restauração entre assinaturas.
  • Se tiver várias instâncias em execução num servidor, todas as instâncias deverão estar a funcionar. Caso contrário, o servidor não aparecerá na lista de servidores de destino para os quais restaurar a base de dados. Para obter mais informações, consulte as etapas de solução de problemas.
  • Para restaurar um banco de dados criptografado TDE para outro SQL Server, você precisa primeiro restaurar o certificado para o servidor de destino.
  • Os bancos de dados habilitados para CDC 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 usando comandos T-SQL.
  • Para todos os bancos de dados do sistema (modelo, msdb), pare o serviço SQL Server Agent antes de acionar a restauração.
  • Feche todos os aplicativos que possam tentar estabelecer uma conexão com qualquer um desses bancos de dados.

Restaurar uma base de dados

Para restaurar, você precisa das seguintes permissões:

  • Permissões de Operador de Backup no cofre onde você está fazendo a restauração.
  • Acesso de colaborador (gravação) à VM de origem cujo backup é feito.
  • Acesso de colaborador (gravação) à VM de destino:
    • Se estiver a restaurar para a mesma VM, esta será a VM de origem.
    • Se estiver a restaurar para uma localização alternativa, esta será a nova VM de destino.

Restaure da seguinte forma:

  1. No portal do Azure, vá para Centro de backup e clique em Restaurar.

    Screenshot showing the start the restore process.

  2. Selecione SQL na VM do Azure como o tipo de fonte de dados, selecione um banco de dados para restaurar 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 para um local alternativo e mantenha o banco de dados de origem original.

    • Substituir DB: restaure os dados para a mesma instância do SQL Server que a fonte original. Esta 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. Apenas a 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 máquina onde os arquivos estejam presentes usando o SQL Server Management Studio.

Restaurar para uma localização alternativa

  1. No menu Restaurar configuração, em Onde restaurar, selecione Local alternativo.

  2. Selecione o nome e a instância do SQL Server para a 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 banco de dados com o mesmo nome já existir na instância SQL selecionada.

  5. Selecione Ponto de Restauração e selecione se deseja restaurar para um point-in-time específico ou restaurar para 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 desejar alterar o local de restauração no servidor de destino, insira novos caminhos de destino.

      Enter target paths

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

    Nota

    A restauração point-in-time está disponível apenas para backups de log para 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 DB>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 selecione Full & Differential para restaurar para um ponto de recuperação específico.

    Nota

    A restauração point-in-time está disponível apenas para backups de log para bancos de dados que estão no modo de recuperação completa e bulk-logged.

Restaurar como ficheiros

Para restaurar os dados de backup como arquivos .bak em vez de um banco de dados, escolha Restaurar como arquivos. Uma vez que os arquivos são despejados para um caminho especificado, você pode levar esses arquivos para qualquer máquina onde você deseja restaurá-los como um banco de dados. Como você pode mover esses arquivos para qualquer máquina, agora pode restaurar os dados entre assinaturas e regiões.

  1. Em Onde e como Restaurar, selecione Restaurar como ficheiros.

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

  3. No caminho de destino no servidor, insira o caminho da pasta no servidor selecionado na etapa 2. Este é 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 arquivos do Azure montado quando especificado como o caminho de destino, permite um acesso mais fácil a esses arquivos por outras máquinas na mesma rede ou com o mesmo compartilhamento de arquivos do Azure montado nelas.

    Nota

    Para restaurar os arquivos de backup do banco de dados em um Compartilhamento de Arquivos do Azure montado na VM registrada de destino, verifique se NT AUTHORITY\SYSTEM tem acesso ao compartilhamento de arquivos. Você pode executar as etapas fornecidas 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>
    • Inicie uma restauração como arquivos do Cofre de Backup para \\<storageacct>.file.core.windows.net\<filesharename> como o caminho
      Você pode baixar o PsExec na página Sysinternals .
  4. Selecione OK.

    Select Restore As Files

  5. Selecione Ponto de Restauração e selecione se deseja restaurar para um point-in-time específico ou restaurar para um ponto de recuperação específico.

  6. Ao fazer a restauração point-in-time do banco de dados SQL usando Restaurar como arquivos, ele armazenará todos os pontos de recuperação do backup completo para o point-in-time selecionado. Em seguida, você pode restaurar usando esses arquivos como um banco de dados em qualquer máquina que eles estejam presentes usando o SQL Server Management Studio.

    Restored Backup Files in Destination Path

Restaurar para um ponto específico no tempo

Se você selecionou Logs (Point in Time) como o tipo de restauração, faça o seguinte:

  1. Em Restaurar Data/Hora, abra o calendário. No calendário, as datas com pontos de recuperação são exibidas em negrito e a data atual é realçada.

  2. Selecione uma data que tenha pontos de recuperação. Não é possível selecionar datas que não tenham pontos de recuperação.

    Open the calendar

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

  4. Especifique um tempo para a recuperação no gráfico da linha do tempo ou selecione um horário. Em seguida, selecione OK.

Restauração parcial como arquivos

O serviço de Backup do Azure decide a cadeia de arquivos a serem baixados durante a restauração como arquivos. Mas há cenários em que você pode não querer baixar o conteúdo inteiro novamente.

Por exemplo, quando você tem uma política de backup de fulls semanais, diferenciais diários e logs, e você já baixou arquivos para um determinado diferencial. Você descobriu que este 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 o início completo. Com a restauração parcial como capacidade de arquivos, fornecida pelo Backup do Azure, agora você pode excluir o completo da cadeia de download e baixar apenas o diferencial.

Excluindo tipos de arquivos de backup

O ExtensionSettingsOverrides.json é um arquivo JSON (JavaScript Object Notation) que contém substituições para várias configurações do serviço de Backup do Azure para SQL. Para a operação "Restauração parcial como arquivos", um novo campo RecoveryPointTypesToBeExcludedForRestoreAsFiles JSON deve ser adicionado. Este 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 operação de restauração como arquivos.

  1. Na máquina de destino onde os arquivos devem ser baixados, vá para a pasta "C:\Program Files\Azure Workload Backup\bin"

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

  3. Adicione o seguinte par de valores de chave JSON

    {
    "RecoveryPointTypesToBeExcludedForRestoreAsFiles": "ExcludeFull"
    }
    
  4. Não é necessário reiniciar qualquer serviço. O serviço de 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 diferencial 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 para um ponto de restauro específico

Se você selecionou Full & Differential como o tipo de restauração, faça o seguinte:

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

    Choose a full recovery point

    Nota

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

Restaurar bases de dados com um elevado número de ficheiros

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

Restore Database with large file

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

Você pode usar a operação Restaurar como arquivos para restaurar os arquivos de banco de dados no .bak formato enquanto restaura a partir do portal do Azure. Mais informações.

Quando a restauração do arquivo para a máquina virtual do Azure estiver concluída, você poderá acionar a .bak 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 TSQL.   Exemplo

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

Nota

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 arquivos no servidor de destino para reduzir a sobrecarga do 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. Mais informações.

Nota

Para recuperação de banco de dados grande, recomendamos que você use instruções TSQL. Se desejar 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 .

Restauro Entre Regiões

Como uma das opções de restauração, o Cross Region Restore (CRR) permite restaurar 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 ver se a CRR está ativada, siga as instruções em Configurar 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 Itens de backup do cofre>dos Serviços de Recuperação.
  2. Selecione Região secundária para exibir os itens na região secundária .

Nota

Somente os tipos de gerenciamento de backup que suportam o recurso CRR serão mostrados na lista. Atualmente, apenas o suporte para restaurar dados de região secundária para uma região secundária é permitido.

Backup items in secondary region

Databases in secondary region

Restaurar na região secundária

A experiência do usuário de restauração da região secundária será semelhante à experiência do usuário de restauração da região primária. Ao configurar detalhes no painel Restaurar configuração para configurar sua restauração, você será solicitado a fornecer apenas 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

Nota

  • Depois que a restauração for acionada e na fase de transferência de dados, o trabalho de restauração não poderá ser cancelado.
  • O nível de função/acesso necessário para executar a operação de restauração em regiões cruzadas é a função Operador de Backup na assinatura e o acesso de Colaborador (gravação) nas máquinas virtuais de origem e de destino. Para exibir trabalhos de backup, o leitor de backup é a permissão mínima necessária na assinatura.
  • O RPO para que os dados de backup estejam disponíveis na região secundária é de 12 horas. Portanto, quando você ativa a CRR, o RPO para a região secundária é de 12 horas + duração da 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.

Monitorando trabalhos de restauração de região secundária

  1. No portal do Azure, vá para Trabalhos de Backup do centro>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 de assinatura cruzada

O Backup do Azure agora permite restaurar o banco de dados SQL para qualquer assinatura (de acordo com os seguintes requisitos do RBAC do Azure) 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 o Cross Subscription Restore (CSR), você tem a flexibilidade de restaurar para qualquer assinatura e qualquer cofre sob seu locatário se as permissões de restauração estiverem disponíveis. Por padrão, o CSR está habilitado em todos os cofres dos Serviços de Recuperação (cofres existentes e recém-criados).

Nota

  • Você pode acionar a restauração entre assinaturas a partir do cofre dos Serviços de Recuperação.
  • O CSR é suportado apenas para backup baseado em streaming e não é suportado para backup baseado em instantâneo.
  • Não há suporte para CRR (Cross Regional Restore) com CSR.

Requisitos do RBAC do Azure

Tipo de operação Operador de cópias de segurança Cofre dos Serviços de Recuperação Operador alternativo
Restaurar banco de dados ou restaurar como arquivos Virtual Machine Contributor VM de origem cujo backup foi feito Em vez de uma função interna, você pode considerar uma função personalizada que tenha as seguintes permissões:

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

- Microsoft.Compute/virtualMachines/write
- Microsoft.Compute/virtualMachines/read
Backup Operator Cofre dos Serviços de Recuperação de 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, vá para Propriedades>Cross Subscription Restore 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óximos passos

Gerencie e monitore bancos de dados do SQL Server cujo backup é feito pelo Backup do Azure.