Rotinas administrativas SQL Server : Ola Hallengren – BACKUP

Rotinas administrativas SQL Server : Ola Hallengren – BACKUP

Tempo de leitura: 6 minutos

E aí galerinha… estamos de volta.

A dica que venho postar hoje envolve rotinas administrativas para o SQL Server como Backup,  manutenção de índices e estatísticas dentre outras.

Geralmente cada DBA já tem um padrão ou a sua própria forma de criação. Irei disponibilizar o método que utilizo.

Em primeiro momento quero mostrar o site:

https://ola.hallengren.com/

O site do Ola Hallengren disponibiliza uma série de rotinas administrativas internas. Você só tem que saber implementar da forma correta.

Como é muita coisa, eu vou mostrar a implementação de uma rotina simples de backup. Lembrando que as outras implementações como a de índices e estatísticas, seguem a mesma lógica. O intuito no post não é mostrar como funciona um backup, é demonstrar a utilização do Ola Hallengren, logo se houver alguma dúvida técnica relacionado a backup, sugiro a busca e os estudos na própria documentação da Microsoft.

Uma rotina descente de backup na minha opinião consiste em três pontos: Backup FULL, Diferencial e Logs. Entretanto, tudo é baseado em cenários. Por exemplo, você pode não ter recursos suficientes de disco para implementar e vai precisar adaptar.

Se você não sabe a diferença de um backup FULL, Diferencial ou de log, recomendo que leia o artigo abaixo. É um excelente artigo pra você entender como funciona toda essa arquitetura.

https://edvaldocastro.com/bkps-full-diff-log/

Bom, agora voltamos ao Ola Hallengren. O site disponibiliza a implementação e a documentação necessária para implementação, e para entender melhor, vamos ao laboratório.

Laboratório

No link:  https://ola.hallengren.com/downloads.html você encontra todas as rotinas disponíveis, por categoria ou inteiras realizando o download do arquivo MaintenanceSolution.sql ou específico.

No nosso caso vamos implementar a rotina de backup, entretanto, iremos baixar a solução completa a fim de mostrar como funciona outras rotinas em futuros posts.

Então, vamos realizar o download do arquivo MaintenanceSolution.sql.

1) Antes de abrir o arquivo e executar, podemos verificar no nosso SQL Server Agent/jobs que não há nenhum job criado ou agendado para execução.

 

2) Agora execute o script de manutenção e perceba que os serviços foram criados e só precisam ser configurados.

3) Lembrando que no nosso caso, vamos configurar uma rotina de backup, entretanto, poderia ser uma rotina de rebuild ou manutenção de estatísticas por exemplo.

4) Para continuar a implementação vamos acessar o link https://ola.hallengren.com/sql-server-backup.html e verificar o que a documentação informa, antes disso, vejamos que na imagem acima ele já criou os três tipos de serviços (jobs) de backup, ou seja, FULL, DIFF e LOG.

 

Nota: Os jobs são criados, mas sem schedules definidos.

Vamos configurar o backup full de acordo com a documentação disponibilizada. Vejamos um exemplo:

EXECUTE dbo.DatabaseBackup
@Databases = 'USER_DATABASES',
@Directory = 'C:\Backup',
@BackupType = 'FULL',
@Verify = 'Y',
@Compress = 'Y',
@CheckSum = 'Y',
@CleanupTime = 24

Nesse caso, estamos configurando uma rotina de backup que usa validações como o checksum , faz compressões no arquivo, e ainda realiza a limpeza de backups antigos. Tudo isso disponibilizado por parâmetros que podem ser estudados dentro da própria documentação do Ola Hallengren. Por exemplo, o parâmetro @CleanupTime=24 define que a limpeza seja realizada a cada 24hrs. Interessante não é mesmo?

Nota: Em algumas versões não é possível utilizar compressões para o backup por exemplo, portanto é necessário ficar atento. Segue o link de referência: https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-version-15?view=sql-server-ver15

 

 

Então partimos para a configuração:

5) Vá nos passos (steps)  do serviço (job) de backup full  que a própria rotina criou:

 

 

6) Ao editar, configure os parâmetros como deseja, no meu caso estou solicitando que o diretório de backup seja no C:\Backup, limpeza seja a cada 48hrs e com validações de integridade como CheckSum.

 

 

7) Após isso, vamos forçar a execução do job e ver se a rotina irá funcionar. Lembrando que o horário de execução do job é a critério do próprio administrador.

8) Forçando a execução do job, podemos verificar que na pasta que setamos o diretório para onde os backups seriam salvos, a própria rotina já se encarregou de separar por instancia, por pasta e por banco de dados. Vejamos:

 

 

9) Após a execução do job finalizar, podemos perceber que o arquivo .bak foi gerado com sucesso:

 

Backup FULL implementado, vamos implementar o diferencial?

1) Seguindo a mesma lógica, vamos editar o step do job DatabaseBackup – USER_DATABASES – DIFF

 

EXECUTE [dbo].[DatabaseBackup]
@Databases = 'USER_DATABASES',
@Directory = 'C:\Backup\Diferencial',
@BackupType = 'DIFF',
@Verify = 'Y',
@CleanupTime = 48,
@CheckSum = 'Y'

 

A lógica é a mesma usada para o BACKUP FULL, mudando apenas os parâmetros, no caso acima o @BackupType foi alterado para DIFF de diferencial e o diretório também mudou.

2) Ao forçar a execução do JOB, temos o arquivo do backup:

Agendamentos (Schedules)

Como funciona os schedules?  Por experiência própria, geralmente coloco um backup FULL para os finais de semanas, um DIFF todos os dias e os backups de Logs a cada 1h. Entretanto, como sempre costumo dizer, tudo é baseado em cenários, ou seja, é necessário avaliar o seu.

Conclusão:

Bom pessoal, essa demonstração visa mostrar a implementação de rotinas através do Ola Hallengren. Particularmente uso bastante para manter os meus ambientes de saudáveis.

No artigo foi utilizado o backup, mas é viável usar a mesma lógica de implementação para rebuilds, entre outros. É isso que a torna tão legal.

Espero que tenham gostado do post, e fiquem a vontade para perguntas.

5 1 vote
Article Rating
Subscribe
Notify of
guest

3 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Geovanna
Geovanna
3 anos atrás

Parabéns!! Obrigada pelo post, sanou várias dúvidas ??????

Anderson Aroucha
3 anos atrás

Parabéns meu amigo. Post fera demais!!!