SQL Server e Powershell – Já ouviu falar sobre dbatools?
O dbatools é um módulo Powershell de código aberto (open source) no qual foi criado pela MVP Chrissy LeMaire, porém atualmente possui mais de 215 colaboradores das comunidades SQL Server, PowerShell e C#. O dbatools tem como funcionalidade facilitar o trabalho do DBA SQL Server em seu gerenciamento de instâncias SQL Server.
Em ambientes que possuem várias instâncias de banco de dados, precisamos otimizar o tempo para que seja possível analisar problemas que de fato precisam mais de atenção, com isso o dbatools pode lhe auxiliar com tarefas automatizadas substituindo aquelas tarefas chatas repetitivas que antes era feita de forma manual.
O dbatools não necessariamente precisa ser instalado no servidor de banco de dados , ele pode ser executado de uma estação de trabalho que possui acesso aos host de banco de dados.
E o melhor, o módulo é gratuito (0800) com mais de 500 comandos entre as categorias (boas práticas, administração, desenvolvimento, migração).
O dbatools também pode ser útil para o time de DevOps \ InfraOps \ SRE, para provisionamentos de ambientes de banco de dados SQL Server.
Neste post vamos aprender como é feito a instalação do módulo, irei demonstrar a instalação no próprio servidor de banco de dados porém isso não altera a forma de instalar em outras estações que não possuem banco de dados.
Será necessário iniciar o PowerShell como administrador para que seja possível a execução do comando de instalação.
Este método de instalação depende da internet para que seja possível o download do dbatools. Porém é possível efetuar a instalação offline.
Install-Module dbatools
Ao executar o comando acima, o PowerShell solicita a interação do usuário para que seja possível a continuação da instalação do módulo, neste caso vamos prosseguir com a opção de [ Y ] YES.
Para melhor visualização da imagem, clique sobre ela para visualizar no tamanho real.

Logo em seguida é solicitado outra interação do usuário para permitir a instalação do módulo obtido na PSGallery. Como visto na imagem acima, a opção utiliza é [ A ] Yes to All.
Abaixo temos o print após a instalação do dbatools.
Após a instalação é possível verificar se o dbatools foi instalado de fato, podemos executar o comando conforme imagem abaixo para listar os comandos disponibilizados.
Get-command -Module dbatools
Porém é possível também abrir o PowerShell ISE e no menu “Commands > Modules:” podemos selecionar o “dbatools” no qual será listados apenas os comandos do módulo.
No site do dbatools é possível visualizar todos os comandos e help.
Vamos efetuar o teste de conexão na instância SQLNODE1.
Ao executar o comando de teste de conexão na instância será retornado algumas informações.
Test-DbaConnection SQLNODE1

Bora fazer um backup de um banco de dados utilizando o dbatools?
Neste exemplo vamos efetuar o backup full do database AdventureWorks2019 localizado na instância SQLNODE1 salvando o arquivo no diretório F:\Backup.
Backup-DbaDatabase -SqlInstance SQLNODE1 -Path F:\backup -Database AdventureWorks2019 -Type Full
No print abaixo podemos visualizar o arquivo gerado no diretório.
Pessoal, este foi o post para apresentar um pouco das várias funcionalidades do dbatools. Lembrando que para estudo faça um laboratório de teste para ter mais segurança e controle sobre o ambiente em testes da ferramenta.
Espero que tenham gostado do post.
Uai bora tomar aquele cafezinho quente com um pão de queijo?!