Fazer backup de uma máquina virtual do SQL Server

Concluído

O Backup do Azure oferece a capacidade de fazer backup de VMs (máquinas virtuais) que hospedam o SQL Server. Esses backups contêm não apenas os bancos de dados do SQL Server, mas também todos os outros conteúdos dentro da VM, permitindo uma restauração completa, se necessário. Embora essa abordagem possa não ser adequada para todos os cenários, ela fornece uma proteção robusta contra problemas como ataques de ransomware.

Os backups no nível da VM têm reconhecimento do SQL Server, também conhecido como reconhecimento de aplicativos, garantindo a criação de backups consistentes com o aplicativo. Isso significa que restaurar um backup no nível da VM não interromperá a funcionalidade do SQL Server. Ao usar essa opção, o log do SQL Server indica que a E/S foi congelada momentaneamente e, em seguida, retomada após a conclusão.

Combinar backups do SQL Server com instantâneos pode causar problemas. Se atrasos de instantâneo causarem falhas de backup, defina o seguinte valor na chave [HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\BCDRAGENT]:

"USEVSSCOPYBACKUP"="TRUE"

Usar discos locais ou um compartilhamento de rede para arquivos de backup

Assim como acontece com instâncias locais do SQL Server, os bancos de dados podem ser copiados para discos anexados à VM ou para compartilhamentos de rede (incluindo o compartilhamento de arquivos no Azure chamado Azure Files) aos quais o SQL Server tem acesso. Se você estiver fazendo backup em discos locais para a VM, verifique se eles não foram gravados no armazenamento efêmero que é apagado após o desligamento ou reinicialização. Você também pode querer garantir que os backups sejam copiados para um segundo local para não criar um único ponto de falha.

Backup e restauração de bancos de dados da URL

Outra opção é configurar o backup em uma URL para a instância do SQL Server instalada na VM. Ao contrário dos backups feitos localmente, o backup e restauração a partir de uma URL para uma VM IaaS é efetivamente uma opção local.

O backup na URL requer uma conta de armazenamento do Azure e usa o serviço de armazenamento de blobs do Azure. Dentro da conta de armazenamento, há contêineres e blobs armazenados. Ao contrário de um caminho em seu disco local, o caminho para um arquivo de backup se parece com https://ACCOUNTNAME.blob.core.windows.net/ContainerName/MyDatabase.bak. Você pode incluir mais nomes de pastas em seu contêiner para facilitar a identificação de backups (por exemplo, FULL, DIFF, LOG).

Para fazer backup ou restauração por meio de um URL, a autenticação deve ser estabelecida entre a instância do SQL Server e o Azure. Lembre-se de que, dentro de uma VM do Azure, o SQL Server não sabe que está em execução no Azure. Uma Credencial do SQL Server pode ser composta pelo nome da conta de armazenamento do Azure e autenticação de chave de acesso ou uma Assinatura de Acesso Compartilhado. Se o primeiro for usado, o backup será armazenado como um blob de páginas e, se o último, ele será armazenado como um blob de blocos. A partir do SQL Server 2016, somente o blob de blocos está disponível, portanto, você deve usar uma Assinatura de Acesso Compartilhado. Do ponto de vista de custo, os blobs de blocos também são mais baratos e os tokens de Assinatura de Acesso Compartilhado oferecem melhor controle de segurança.

A restauração a partir de uma URL é tão fácil quanto restaurar do disco ou de um compartilhamento de rede. Na interface do usuário do SQL Server Management Studio, selecione a URL do tipo de mídia de backup no assistente. Se estiver usando o Transact-SQL, em vez de usar FROM DISK, você usará a URL FROM com o local apropriado e o nome do arquivo de backup. Aqui estão alguns exemplos de declarações:

A instrução a seguir faria backup de um log de transações.

BACKUP LOG contoso 
TO URL = 'https://myacc.blob.core.windows.net/mycontainer/contoso202003271200.trn' 

A instrução a seguir restauraria um backup completo do banco de dados sem recuperá-lo, para que backups diferenciais ou de log de transações pudessem ser aplicados.

RESTORE DATABASE contoso 
FROM URL = 'https://myacc.blob.core.windows.net/mycontainer/contoso20200327.bak' 
WITH NORECOVERY

Backups automatizados usando o provedor de recursos do SQL Server

Qualquer VM IaaS que tenha o SQL Server instalado pode usar o provedor de recursos do SQL Server. Uma de suas opções é a capacidade de configurar backups automatizados para que o Azure cuide do backup de bancos de dados do SQL Server. Ele requer o uso de uma conta de armazenamento.

Um benefício da implementação de backups dessa maneira é que você pode gerenciar os tempos de retenção para os backups. Outro benefício é que você pode garantir o RPO devido à capacidade de fazer backups de log de transações e de banco de dados em um local fácil de configurar. A imagem a seguir mostra um exemplo de como é a configuração de um backup automatizado no portal do Azure.

Configurando backups automatizados para o SQL Server em uma VM no portal do Azure

No momento, a opção de backup automatizado só está disponível para instalações do SQL Server baseadas no Windows Server.

Importante

Você escolhe um método de backup de bancos de dados com implantações do SQL Server baseadas em IaaS. Por exemplo, se você usar backups automatizados, especialmente com backups de log de transações, não configure esses backups também no nível de instância dentro da VM. Isso poderá causar problemas com a cadeia de logs ao restaurar um banco de dados se as coisas não forem coordenadas, porque cada backup de log limpa o log, e você deve ter uma cadeia inteira ininterrupta de backups de log para restaurá-lo. Por exemplo, se os backups de log de transações ocorrerem dentro do convidado e no nível do Azure, talvez seja necessário reunir os backups para fazer uma restauração.

Embora os backups possam ser automatizados, as restaurações não podem ser. Você precisaria configurar e usar a funcionalidade de restauração a partir de URL no SQL Server.