Conhecendo um pouco sobre o DBA Tools

DBA e Consultor de Banco de Dados

Conhecendo um pouco sobre o DBA Tools

Tempo de leitura: 8 minutos

Fala Galera,

Espero que estejam todos bem!

Hoje vou falar sobre uma ferramenta que literalmente mudou minha vida como DBA: o DBA Tools. Ano passado fiz uma apresentação sobre esse assunto e resolvi transformar todo o conteúdo em um artigo aqui no blog para compartilhar com vocês.

Se você é DBA SQL Server e ainda não conhece essa ferramenta, pode ter certeza que depois deste artigo você vai querer instalar na mesma hora. E se já conhece, garanto que vai aprender algumas dicas que talvez não sabia.

O que é o DBA Tools?

Basicamente, o DBA Tools é uma suíte de comandos em PowerShell de código aberto que foi projetada especificamente para automatizar uma variedade de tarefas de administração de banco de dados para usuários do Microsoft SQL Server.

A ferramenta é amplamente utilizada pela comunidade SQL Server e serve para simplificar e automatizar tarefas complexas e rotineiras de DBAs, tornando o gerenciamento de bancos de dados muito mais prático e ágil.

Para vocês terem uma ideia do poder dessa ferramenta: ela tem mais de 700 comandos disponíveis! Imaginem quantas tarefas manuais podemos automatizar com isso.

Como nasceu o DBA Tools

A história do DBA Tools é bem curiosa e acho que vale a pena contar para vocês entenderem como essa ferramenta se tornou tão poderosa.

Tudo começou com a Chrissy LeMaire, que precisava migrar muitas instâncias de um SharePoint que tinha toneladas de bancos de dados, linked servers, jobs e outros objetos. Imaginem a trabalheira que seria fazer isso tudo manualmente!

Ela então criou um script para automatizar essas tarefas migratórias. O script funcionou muito bem, mas não estava muito fácil para outras pessoas usarem devido à complexidade do código.

A comunidade convenceu ela a transformar esse script em um módulo PowerShell para dividir essas tarefas em partes diferentes. Ela então publicou o script no GitHub em setembro de 2015.

Aqui vem a parte interessante, demorou quase 4 anos para chegar à versão 1.0, que foi lançada em junho de 2019. Por que tanto tempo? Porque a Chrissy queria ter certeza de que tudo estava padronizado – nomenclatura dos parâmetros, ajuda dos comandos, documentação, segurança. Ela queria garantir que tudo estava bem documentado, seguro e funcionando adequadamente.

Quando a versão 1.0 foi lançada, já havia mais de 100 contribuidores trabalhando junto com a Chrissy e 550 comandos estavam disponíveis no primeiro release oficial.

Atualmente a ferramenta conta com mais de 700 comandos desenvolvidos, 140 contribuidores ativos, mais de 1700 usuários no Slack oficial da plataforma e está sempre sendo atualizada. É uma comunidade gigantesca!

Como Instalar o DBA Tools

Existem duas formas principais de instalar a ferramenta:

Instalação Direta

Esta é a forma mais simples. Você pode instalar o módulo diretamente da PowerShell Gallery usando o comando:

Instalação Offline

Para ambientes sem acesso à internet, você pode baixar o módulo e instalar offline. Existe um tutorial específico para isso que vocês podem encontrar na documentação, segue o link.

https://blog.netnerds.net/2023/04/offline-install-of-dbatools-and-dbatools-library/

 

Dica Bonus – Instalando Versão Específica

 

Aqui vai uma dica que pode ser muito útil. Como instalar uma versão específica do DBA Tools.
Primeiro, visitem o PowerShell Gallery para ver as versões disponíveis. Depois, no PowerShell, utilizem este comando:

Isso é muito útil quando você quer manter uma versão específica em produção ou quando precisa de compatibilidade com determinada versão.

Comandos essenciais para começar

 

Vou compartilhar com vocês os comandos básicos que todo mundo deveria conhecer:

Comandos de Gerenciamento do Módulo

 

Configurações de Conexão

Comandos de ajuda

Exemplo Prático 1 – Trabalhando com Compressão

Um dos comandos que uso bastante é o relacionado à compressão de dados. Vou mostrar como trabalhar com ele:

 

Agora vou mostrar uma técnica bem útil chamada “splatting”. Splatting é um método usado para passar uma coleção de parâmetros unificados em uma única variável:

 

Essa técnica deixa o código muito mais limpo e organizando, principalmente quando você tem muitos parâmetros.

Exemplo Prático 2 – Testando Backups Automaticamente

Agora vou mostrar uma das funções mais legais do DBA Tools: a Test-DbaLastBackup.
Essa função é simplesmente incrível! Ela faz a restauração da cadeia LSN do backup de uma ou mais bases em um servidor da sua escolha, depois de restaurado faz um CHECKDB na base e ainda no final é possível salvar o resultado dentro de uma tabela no banco de dados.

Isso possibilita um grande gerenciamento e também dá uma previsão para o DBA de quanto tempo leva para um eventual restore de determinada base, além de garantir maior segurança na política de backup da organização.

Imaginem o valor disso! Em vez de ficar na esperança de que os backups estão funcionando, vocês podem ter certeza absoluta de que conseguem restaurar quando precisarem.

Para demonstrarmos um exemplo prático dessa funcionalidade, vamos primeiro fazer um backup da base AdventureWorksDW2019 em nosso servidor local.

Agora Vamos selecionar um registro qualquer na tabela DimEmployee.

Agora, apenas com a finalidade de demonstrar que o teste do Backup vai funcionar, vou fazer um UPDATE na tabela DimEmployee mudando a coluna FirstName para “Lucas” e logo em seguida um Backup de LOG.

Pra finalizar, o Backup de LOG

Agora, vamos usar a função Test-DbaLastBackup para fazer um teste de restore em nosso ambiente, aproveitar e validar se ela restaurou o banco já com o LOG e se gravou algum histórico de consulta.

Comando executado com sucesso. Repare que utilizei a técnica mencionada acima de splatting, onde facilitou a passagem de parametros do codigo, veja também que interessante, primeiro na passagem de parâmetros do Test-DbaLastBackup declaramos um OutVariable (para ele imprimir o resultado na variável “results”).

Na sequencia utilizamos a função WRITE-DbaDataTable para inserir o resultado nos testes em uma tabela chamada TestRestore no banco DB_Teste, observe que utilizei um parametro NoDrop para que ao final do teste não seja dropada a base de dados, com a finalidade de demonstrar a vocês que realmente restaurou a base e deu tudo certo.

O DBA Tools irá restaurar a base de dados onde estiver parametrizado os caminhos default do SQL Server, ou você pode especificar por parâmetro.

Consultando se ele restaurou Backup FULL + LOG depois do nosso UPDATE.

Na base DB_Teste, ele gravou as métricas de tempo para execução do restore, bem como detalhes sobre tamanho, tempo para executar o checkdb, caminho, data, etc… muito útil para planejar migrações (saber os tempos que levam para restaurar todas as bases do seu ambiente, ou até mesmo para testes regulares.

Exemplo Prático 3 – Migrações Simplificadas

Vou mostrar agora como é simples migrar artefatos de uma instância SQL Server usando o DBA Tools.

É imprescindível que o DBA saiba fazer cada um desses itens manualmente também, pois nem em todo ambiente existirá o DBA Tools para trabalhar. Mas quando você tem a ferramenta disponível, a produtividade aumenta exponencialmente!

O DBA Tools tem tantas funcionalidades que seria praticamente impossível cobrir tudo em um artigo. Mas vou listar algumas coisas incríveis :

  • É possível instalar e gerenciar a sp_WhoIsActive pelo DBA Tools
  • Você pode gerenciar VLFs por meio de comandos simples
  • Até as opções de energia do Windows podem ser consultadas e alteradas
  • Validar o espaço em disco consumido pelas bases de uma instância
  • Reparar usuários órfãos automaticamente
  • Identificar índices sem utilização ou duplicados
  • Validar a performance dos discos
  • Verificar as features instaladas na instância SQL Server
  • Validar as configurações dos discos
  • Listar configurações de determinado KB da Microsoft
  • Instalar a ferramenta de monitoramento SQLWATCH embarcada no DBA Tools

A lista é grande! Podem visitar o site oficial https://dbatools.io/commands/ para ver todos os comandos disponíveis.

Considerações Importantes

Algumas coisas importantes que quero destacar:

  • Mesmo com toda essa automação, é fundamental que o DBA entenda o que cada comando está fazendo por baixo dos panos. A ferramenta é poderosa, mas não substitui o conhecimento técnico.
  • Sempre testem os comandos em ambiente de desenvolvimento antes de executar em produção. Mesmo sendo uma ferramenta madura, cada ambiente tem suas particularidades.
  • Mantenham a ferramenta sempre atualizada. A comunidade está sempre corrigindo bugs e adicionando novas funcionalidades.

Na minha experiência, o DBA Tools mudou completamente minha forma de trabalhar. Tarefas que antes levavam horas agora levam minutos. Migrações que eram complexas agora são executadas com poucos comandos.

Além disso, a consistência é muito maior. Quando você faz algo manualmente, sempre há chance de esquecer algum passo ou cometer algum erro. Com os comandos padronizados, isso não acontece.

A ferramenta também é excelente para documentação. Os comandos ficam registrados e você pode criar scripts reutilizáveis para tarefas recorrentes.


Conclusão

O DBA Tools é uma dessas ferramentas que você usa uma vez e não consegue mais viver sem. Se você ainda não conhecia, recomendo fortemente que instalem e comecem a explorar.

Comecem pelos comandos básicos, depois vão evoluindo conforme a necessidade. A curva de aprendizado vale muito a pena!

E vocês? Já usam o DBA Tools? Qual comando mais os impressiona? Compartilhem nos comentários suas experiências!

Até a próxima pessoal!

Gustavo Larocca

Consultor SQL Server

Links Úteis:

 

Deixe uma resposta

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.