[SQL Server: Azure VM] Como funciona o Automated Backup?

Olá pessoal, depois de um tempo distante estou retornando com um tópico que sempre levanta questionamentos dos clientes quando falamos sobre a automatização de backups do SQL Server em maquinas virtuais (VMs) no Azure.

O Azure oferece uma vasta opção de templates de VMs com SQL Server, sem dúvidas essa é uma forma muito prática de criar um servidor SQL Server rapidamente.

Quando optamos por criar uma VM a partir destes templates, o portal do Azure exibe uma série de recursos que só se aplicam para VMs com SQL Server; uma das opções é o "Automated Backup" (essa opção não está disponível para Linux VMs). A descrição desse recurso informa:

" Configure backups for databases in your virtual machine".

A idéia aqui é bem simples: ao habilitar esta funcionalidade, você passa a ter backup automatizado das bases daquela VM, sem a necessidade de criar planos de manutenção, jobs, schedules e etc; mas vamos às perguntas recorrentes:

  • "Qual a política desse backup automatizado?"

  • "Qual o papel do SQL Server Agent nesse cenário?"

  • "As bases de sistema são incluídas nos backups automáticos?"

Seguem alguns pontos que precisamos considerar:

  • Até esta data (estamos em Maio de 2018) o Automated Backup só realiza backups das bases da instância DEFAULT; ou seja, instâncias nomeadas não usufruem desse recurso;
  • O Automated Backup só está disponível para VMs com SQL Server 2014 ou superior;
  • Esse recurso não cria Jobs no SQL Server Agent; porém para que o recurso funcione o SQL Server Agent deve estar executando;
  • A VM precisa ter o serviço SQL IaaS agent em execução (esse serviço já vem configurado em VMs que criamos a partir de templates);
  • Os backups ficam armazenados na storage account indicada no momento da configuração:

 

No SQL Server 2014 tinhamos algumas limitações, mas se a instância default for SQL Server 2016 (ou superior) temos alguns recursos adicionais:

  • As bases de sistema estão incluídas na política de backup automático;
  • É possível determinar um período ideal para a execução do backup full; por exemplo, podemos determinar que o backup full só ocorrerá entre 1h e 5h da manhã;
  • É possível determinar a frequência do backup de log (de 5 a 60 minutos).

"Se não customizarmos os horários do Automated Backup, quais serão os critérios para a execução dos backups automatizados?"

Em resumo teremos um backup full semanal e um backup de log a cada 2 horas, porém isso pode mudar de acordo com o workload da instância. Quanto maior o volume de modificações, maior a probabilidade de novos backups ocorrerem; exemplo: se o espaço utilizado no transaction log for igual ou maior que 5 MB um novo backup de log ocorrerá. Se o transaction log crescer 1 GB desde o último backup full, um novo backup full acontecerá. Para evitar que um backup full execute durante horário produtivo é importante configurar o Automated Backup definindo os horários apropriados. Outro fator que pode influenciar são ações que "quebram" a sequência de backups, como uma mudança de recovery model de FULL para SIMPLE, por exemplo.

Outro ponto que é importante destacar: a escolha do Recovery Model tem a mesma relevância na política do backup automatizado, portanto se sua base estiver no modo SIMPLE o Automated Backup não fará backups do t-log e consequentemente você não terá o recurso do point-in-time restore.

 

"Posso fazer backups sob demanda (backup manual)?"

Sim, no entanto, para evitar que o seu backup manual "quebre" a cadeia dos backups anteriores é recomendável que você faça o backup (full ou log) utilizando a procedure sp_backup_on_demand. Backups feitos a partir desta procedure serão armazenados na storage account definida no momento da configuração do Automated Backup.

 

"Como monitorar?"

Você pode visualizar todo o histórico de backups através do SSMS (ex: Reports > Standard Reports > Backup and Restore Events) ou através das views de catálogo na MSDB. Além disso é possível utilizar a procedure sp_get_backup_diagnostics que retorna informações mais detalhadas de todas as ações do Automated Backup:

 

É possível configurar o Automated Backup em uma Azure VM que não foi criada a partir de um template?

Sim. O primeiro passo é garantir que o serviço SQL IaaS agent esteja configurado e executando. Para verificar o processo de configuração do SQL IaaS agent consulte este link.

 

Referências adicionais: Automated Backup v2 for Azure Virtual Machines SQL Server Managed Backup to Microsoft Azure

Até+

Silas Mendes

 

============================