Como Instalar o SQL Server 2025
![]() |
Nesse
artigo, resolvi trazer um pouco da melhor rotina de manutenção de bases de
dados SQL Server, existente atualmente, sendo utilizada inclusive por grandes corporações,
me refiro à rotina Maintenance Solution, criada pelo Ola Hallengren.
A rotina em questão é um verdadeiro “Canivete Suíço”, pode ser utilizada para
otimização de índices e estatísticas, checagem de integridade de bases de
dados, e backup database.
Para
esse exemplo estou utilizando a base de dados StackOverflow2010 com aproximadamente
11Gbs, essa base é uma versão publica de código aberto do Stack Overflow Data
Export, é possível realizar o download dessa database, facilmente através do
link StackOverflow2010
no site do Brent Ozar, para realizar testes na sua
máquina.
Na
primeira etapa eu criei uma Storage Account no Azure, um container, e 3
diretórios de blob, para armazenar os backups, seguindo a hierarquia de nomes
para cada tipo de backup, como pode ser observado na imagem abaixo, posteriormente
no SQLServer crie uma Credential Shared Access Signature(SAS), e salvei
a chave no Key Vault no Azure.
Se
o download for realizado através do link do Github, você pode baixar todos os scripts
que criam os objetos dependentes da Rotina MaintenanceSolution, como mostra a imagem abaixo, porém você pode executar somente o script
em destaque com a seta vermelha que ele irá criar toda a estrutura necessária e
depois executar os scripts das tabelas Queue e
QueueDatabase.
Realizado
o passo acima, se você deixar por default ele cria tudo na base master, como
recomendação, e boas práticas, eu gosto de mudar e colocar para criar dentro de
uma base de dados de monitoramento que nós DBAs utilizamos, nesse Lab de testes, criei
uma base chamada Monitoring que utilizo para criar rotinas de monitoramento!
A
estrutura gerada pelos scripts do Ola, será igual a estrutura abaixo, eu gosto
de renomear os Jobs colocar a sigla DBA – "nomejob", para eu saber identificar
meus Jobs caso estejam em produção, e por uma questão de organização, nesse Lab, vou seguir com o nome criado por default:
Estrutura
de Jobs criada:
Estrutura
de tabelas e Procedures criadas:
No
caso dos Jobs quando vou implantar em cliente, deixo somente os Jobs que vou
precisar usar, os demais eu deleto, depois posso criar os mesmos manualmente, de
acordo com a necessidade do cliente, isso me ajuda a manter a organização no
ambiente do cliente.
Parâmetros
utilizados nesse Laboratório:
EXECUTE dbo.DatabaseBackup
@Databases = 'USER_DATABASES', => Deixando por default USER_DATABASES, será feito o backup de todos os bancos de dados de usuário.
@URL = 'https://myaccount.blob.core.windows.net/mycontainer', => Onde vou passar a URL do meu container de blobs no Azure.
@BackupType = 'FULL', => Tipo de backup que será realizado.
@Compress = 'Y', => Passo o parâmetro Y para que o backup seja realizado com compressão, N para não comprimir, por default o parâmetro é NULL seguindo os padrões da DMV sys.configurations.
@Verify = 'Y', => Baseado no parâmetro VERIFYONLY, verifica se o backup pode ser lido, porém sem restaurar o mesmo.
@CleanupMode = AFTER_BACKUP, => Especifica se quero excluir os arquivos antigos de backup, depois da execução do backup, nesse caso se backup falhar o arquivo antigo não será excluído, BEFORE_BACKUP, exclui os arquivos de backup antigos antes que o backup seja executado.
@DatabasesInParallel = 'Y', => Significa que posso realizar o processo em mais de uma base de dados em paralelo com os mesmos parâmetros.
@LogToTable = 'Y', => Registra os comandos na tabela commandlog criada pela rotina do Ola Hallegren.
@CheckSum = 'Y', => Verifica as páginas de backup, certificando que não houve danos durante o processo de leitura e gravação.
@NumberOfFiles = 1, => Seta o número de arquivos de backups que serão criados, sendo limitados a até 64 arquivos.
@DirectoryStructure = NULL, => Cria uma estrutura de diretórios baseada nos parâmetros a seguir, vou para NULL para que não seja criada a estrutura.
Default directory structure: {ServerName}${InstanceName}{DirectorySeparator}{DatabaseName}{DirectorySeparator}{BackupType}_{Partial}_{CopyOnly}
@FileName => Estrutura de nome do arquivo de backup, vou deixar a estrutura abaixo:
{DatabaseName}_{Year}{Month}{Day}_{Hour}{Minute}.{FileExtension}'
Default file name: {ServerName}${InstanceName}_{DatabaseName}_{BackupType}_{Partial}_{CopyOnly}_{Year}{Month}{Day}_{Hour}{Minute}{Second}_{FileNumber}.{FileExtension}
A rotina de backups para esse laboratório ficará, conforme apresentado na imagem abaixo:
Para automatizar a execução do Script, vou colocar ele no Job que foi criado automaticamente pela rotina do Ola Hallengren, caso necessite pode criar um job manualmente, passando os parâmetros que deseja e apontando para a base de dados onde a rotina foi implementada, como mostra a imagem abaixo:
Referências:
SQL Server backup to URL for
Microsoft Azure Blob Storage
MaintenanceSolution Ola Hallegren
Comentários
Postar um comentário
Deixe seu comentário, sua opinião é muito importante para aprendermos juntos, Obrigado!!!