Olá pessoal,
É muito comum termos a necessiade de proteger VMs com SQL Server que possuem databases que utilizam o Transaction Log. O Transaction Log armazena as transações do banco de dados até que um backup seja efetuado e pode ser utilizado para restaurar a database em qualquer ponto de quando houve as transações.
Nesse post irei demonstrar como fazer o backup das databases e do transaction log para assim ter a possibildiade de restaurar uma database para o ponto que for necessário.
Pré-Requisitos
Para configurar o backup do SQL Server e Transaction logs nós temos que seguir alguns pré-requisitos.
A conta utilizada durante o Application-Aware precisa ter as seguintes permissões:
- A conta deve ser Administrador Local na VM;
- A contade deve ter a role de sysadmin no SQL Server;
- Se não for possível utilizar a role de sysadmin para o usuário, então deve ter pelo menos essas permissões:
- Public e dbcreator role
- Roles a nível de database:
- Model: db_backupoperator, db_denydatareader, public;
- Master: db_backupoperator, db_datareader, public;
- MSDB: db_backupoperator, db_datareader, public, db_datawriter.
- Versões do SQL Server suportadas:
- Microsoft SQL Server 2022 (only for Windows)
- Microsoft SQL Server 2019 (only for Windows)
- Microsoft SQL Server 2017 (only for Windows)
- Microsoft SQL Server 2016 SP2
- Microsoft SQL Server 2014 SP3
- Microsoft SQL Server 2012 SP4
- Microsoft SQL Server 2008 R2 SP3
- Microsoft SQL Server 2008 SP4
Em meu teste as VMs estão todas na mesma rede, então não preciso me preocupar com as portas necessárias para o processo funcionar.
Entretanto, em um ambiente onde o VBR está emu ma rede isolada e a VM que será protegida em outra é necessário ter muita atenção nas portas que devem ser abertas para que funcione corretamente.
Todas as portas estão listadas nos links abaixo:
- MS SQL Guest OS Connections: https://helpcenter.veeam.com/docs/backup/vsphere/used_ports.html?#ms-sql-guest-os-connections
- Log Shipping Server Connections: https://helpcenter.veeam.com/docs/backup/vsphere/used_ports.html?#log-shipping-server-connections
- Guest Processing Components: https://helpcenter.veeam.com/docs/backup/vsphere/used_ports.html?#guest-processing-components
Criando Job
Em meu ambiente eu possuo uma VM com o SQL Server 2019 Standard instalado com uma única database.
Para gerar tráfego e ter Transaction Logs para demonstrar o backup eu instalei o Veeam One e deixei coletando informações do meu ambiente. Dessa forma posso fazer backup da database do Veeam One e demonstrar o backup funcionando.
O primeiro passo é a criação do job.
Vamos criar um job de VM normalmente e habilitar a opção para fazer backup dos Transaction Logs.
Defina um nome para o Job.
Escolha as VMs que deseja criar o backup.
Defina o repositório, proxy e retenção.
Em Guest Processing vamos habilitar a opção de “Enable application-aware processing.
Clicando em Applications e depois em Edit Podemos definir quais aplicações vamos interagir.
Por padrão, as opções que precisamos já vem habilitada na aba “General”. Em VSS Settings a opção de processor os transaction logs já é habilitada por padrão.
Na aba “SQL” é onde vamos configurar o backup dos Transaction Logs.
Escolha a Terceira opção e defina de quanto em quanto tempo devemos fazer o backup dos transaction logs. Isso vai depender muito de como o sistema que utiliza a database funciona. Se muitas transações são feitas pode ser que você precise que o backup seja feito com mais frequência.
Em meu exemplo vou deixar o default de 1h para termos dados suficientes para fazer o backup.
Precisamos também definir a retenção do backup do transaction logs. Eles podem seguir a retenção do backup da VM que é a opção padrão, ou você pode definir uma retenção específica.
Nessa parte também Podemos definir quem será o Log shipping server. Por padrão o próprio servidor SQL irá enviar o Transaction Log para o repositório, mas dependendo da sua infraestrutura de rede isso pode não ser possível, então você pode definir o Log Shipping server para extrair e enviar os transaction logs para o repositório.
Agora precisamos definir o usuário que fará a conexão com o Sistema operacional para instalar o Guest Processing agent e também para conectar ao SQL Server e fazer o backup das databases e transaction log.
Como dito anteriormente, esse usuário precisa ter uma série de permissões para que funcione corretamente. Ao definir a credencial, clique em “Test Now” para validar se a conexão está funcionando.
Defina o agendamento deseja e inicie o job.
Ao iniciar veremos que duas tarefas serão iniciadas. São elas o backup da VM e o backup do transaction log.
O backup do Transaction Log irá aguardar a criação do backup da VM para então começar a processar os logs.
Assim que o backup finaliza, a primiera sessão do backup do Transaction Log irá iniciar.
Ao finalizar, veremos que a sessão entrará em um novo status “Waiting for transaction log backup interval to expire”. Ou seja, está esperando passer o tempo que definimos para coletar os transaction logs, no meu exemplo, é 1 hora.
Essa sessão não finaliza, ela sempre fica executando aguardando o próximo interval de backup do transaction logs.
Também é mostrado estatísticas como tamanho do último backup, RPO, quanto foi lido e quanto foi transferido.
No repositório vamos encontrar o arquivo VBK do backup full e também os arquivos VLB e VLM referents ao backup do transaction log.
Assim como o report do backup da VM, também conseguimos visualizar o report das últimas execuções do backup do transaction logs.
Ao selecionar o job teremos a opção de SQL Server log backup.
No report teremos informações das databases protegidas, assim como o resultado de cada um dos intervalos de backup do transaction log.
Importante ressaltar que quando habilitamos o backup do Transaction Log utilizando o Veeam Backup & Replication, mais nenhuma outra ferramenta pode fazer o backup da database que não seja o próprio VBR. Nós precisamos saber quando foi feito o último backup da database para ser possível continuar o backup do transaction log.
Isso é importante porque se o DBA reponsável pelo banco de dados executar um backup full manualmente utilizando outra ferramenta não iremos conseguir coletar o Transaction Log.
Links Importantes
- Ports
- Microsoft SQL Server Log Backup
- How Microsoft SQL Server Log Backups Works
- Log Shipping Servers
Compartilhe!