Fazer backup de uma máquina virtual do SQL Server

Concluído

O Backup do Azure pode fazer backup de VMs que contêm o SQL Server. Esses backups não conteriam apenas bancos de dados do SQL Server; eles conteriam tudo o que está na VM para que pudesse ser restaurado como um todo. Embora esta opção possa não ser adequada para todos, pode potencialmente proteger contra problemas como ransomware.

Os backups no nível de VM reconhecem o SQL Server, também conhecidos como reconhecimento de aplicativos, portanto, criarão um backup consistente com o aplicativo. Isso significa que, se você restaurar um backup no nível da VM, ele não 'quebrará' o SQL Server. Se estiver usando essa opção, ao procurar no log do SQL Server, você verá que a E/S foi momentaneamente congelada e, em seguida, reinicia quando concluída. Se isso causar problemas com recursos de disponibilidade, como AGs, convém considerar outra estratégia de backup.

A combinação de backups do SQL Server com instantâneos pode causar problemas. Se os atrasos de instantâneo causarem falhas de backup, defina a seguinte chave do Registro:

[HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\BCDRAGENT]

"USEVSSCOPYBACKUP"="VERDADEIRO"

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

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

Backup de bancos de dados e restauração a partir de URL

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

O backup para URL requer uma conta de armazenamento do Azure e usa o serviço de armazenamento de blob do Azure. Dentro da conta de armazenamento, há contêineres e os blobs são armazenados lá. Ao contrário de um caminho no disco local, o caminho para um arquivo de backup terá a aparência de 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 restaurar a partir de uma 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á sendo executado no Azure. Uma Credencial do SQL Server pode ser composta pelo nome da conta de armazenamento do Azure e pela autenticação da chave de acesso ou por uma Assinatura de Acesso Compartilhado. Se o primeiro for usado, o backup será armazenado como um blob de página e, se o segundo, será armazenado como um blob de bloco. A partir do SQL Server 2016, apenas o blob de bloco está disponível, portanto, você deve usar uma Assinatura de Acesso Compartilhado. Do ponto de vista dos custos, os blobs de bloco também são mais baratos e os tokens de Assinatura de Acesso Compartilhado oferecem um melhor controle de segurança.

Restaurar a partir de um URL é tão simples como restaurar a partir de um disco ou de uma partilha de rede. Na interface do usuário do SQL Server Management Studio, selecione URL no tipo de mídia de backup no Assistente. Se estiver usando Transact-SQL, em vez de usar FROM DISK, você usaria FROM URL com o local apropriado e o(s) nome(s) do(s) arquivo(s) de backup. Aqui estão algumas instruções de exemplo:

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 de banco de dados completo sem recuperá-lo, para que um backup diferencial ou de log de transações pudesse ser aplicado.

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. Requer o uso de uma conta de armazenamento.

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

Configuring automated backups for SQL Server in a VM in the Azure portal

Atualmente, 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 os configure também no nível da instância dentro da VM. Você pode causar problemas com a cadeia de logs com a restauração de um banco de dados se as coisas estiverem descoordenadas, porque cada backup de log limpa o log e você deve ter uma cadeia inteira ininterrupta de backups de log para fazer uma restauração de log. Por exemplo, se os backups de log de transações acontecerem dentro do convidado, bem como 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 de URL no SQL Server.