En esta nueva etapa hemos querido mostraros una utilidad que es parte de nuestro día a día como DBAs: el módulo de PowerShell DBATOOLS.
DBATools es un módulo de código abierto creado por la comunidad SQL Server, paralelamente al módulo que nos proporciona Microsoft ‘SqlServer’. Nos ayuda a realizar diferentes operaciones en las instancias y bases de datos gracias a sus más de 500 cmdlets, unas 5 veces más de lo que obtiene en el módulo SqlServer. Estas operaciones nos ayudan a automatizar las tareas de SQL Server y fomentan las mejores prácticas. Pero no solamente DBATools se diferencia del módulo oficial de Microsoft por su mayor número de comandos, para los que habéis trabajado con este último habréis podido comprobar tediosidad y complejidad a la hora de realizar cualquier fácil tarea a diferencia de DBATools que sorprende por su facilidad de uso con comandos mucho más simples.
¿Cómo instalarlo?
Instalar el módulo DBATools es extremadamente fácil y sus únicos requisitos a grandes rasgos son PS 3.0 y SQL 2000. Como nos indica su documentación oficial , hay diferentes métodos y aquí repasaremos dos de ellos:
1. Instalar dbatools desde la galería de Power Shell, para equipos con salida a internet:
Realizamos la instalación a través de la propia consola de PowerShell:
#Install the dbatools module from the PowerShell gallery
Install-Module -Name dbatools
Es posible que nos solicite durante la instalación que queremos instalar el módulo a pesar de ser de un repositorio de confianza:
Tras ello el módulo ya estaría instalado.
Si os indica que ya lo tenéis instalado y queréis actualizarlo o queréis desinstalarlo por cualquier motivo podéis realizarlo de la siguiente manera:
#If the module is already installed, update it using the following commands:
#For PowerShell 5.0 or later
Update-Module -Name dbatools
#For PowerShell version earlier than 5.0
Uninstall-Module -Name dbatools
Install-Module -Name dbatools
2. Instalación dbatools de modo manual sin conexión:
Descargamos la última versión del repositorio de GitHub de dbatools: dbatools.io/zip
Descomprimimos el fichero en la ruta C:\Program Files\WindowsPowerShell\Modules
Tras ello renombramos la carpeta creada a ‘dbatools’.
Una vez instalado el módulo podemos realizar una conexión a cualquier instancia y sus bases de datos para comprobar la instalación y su sencillez:
# To test connectivity to a SQL instance
Test-DbaConnection localhost
# To test connectivity to a specific database
Get-DbaDatabase -SqlInstance localhost -Database MyDatabase
¿Por qué DBATools?
DBATools se va constantemente actualizando a través de la retroalimentación de la comunidad, y es que cualquiera de nosotros puede informar sobre bugs, solicitar mejoras o sugerir nuevas funciones a través de su página de issues de GitHub.
El número de prácticas, tareas y funciones que podemos realizar es muy amplio, y no mentimos cuando decimos que casi toda actividad que puede realizar un DBA puede hacerse con la ayuda de varios comandos disponibles en su biblioteca:
- Migración
- Copia de seguridad y restauración: base de datos
- Copia de seguridad y restauración: certificados
- Diagnóstico y rendimiento
- Traces y Profiler
- Eventos extendidos
- DBCC
- Envío de registro
- Trabajo con bases de datos
- Inicio de sesión y gestión de usuarios
- Seguridad y cifrado
- Exportar
- Separar y adjuntar
- SQL Agent
- Correo y registro
- Escribir en tablas SQL
- Gestión del servidor
- Endpoints
- Instantáneas
- Sistema de archivos y almacenamiento
- Servicios
- Despliegue
- Cadenas de conexión
- Red y conectividad
- Configuración del cliente SQL
- SSIS
- Gestión basada en políticas
- sp_configure
- Replicación
- Servidores registrados
…y mucho más.
Aquí https://dbatools.io/commands/ podéis comprobar toda la lista de funciones que nos permite dbatools.
Como se indicó anteriormente, dbatools contiene cientos de comandos, por lo que es imposible poder mostraros todos en una entrada. Dado el gran alcance de DBATools es posible que no se sepa por dónde empezar. Una de los métodos para ir comenzando a familiarizarnos con sus más de 500 cmdlets puede ser echar un vistazo a Aprenda dbatools en un mes de almuerzos » de Chrissy y Rob, y ver las grandes posibilidades de administración que nos proporciona el módulo. Hasta ahora, tan solo hay publicados 8 artículos, pero ya podemos repasar tareas como el inventariado de entornos, instalación de instancias, recuperación de desastres, administración de logins y usuarios, etc.
Conclusión
En esta entrada solo hemos querido cubrir la presentación del módulo y su instalación. Prometemos en futuras artículos realizar varias tareas y operaciones con DBATools.
Aunque Microsoft recomienda usar el módulo SqlServer para interactuar con SQL Server desde PowerShell, en nuestra opinión, DBAtools debería ser su módulo PowerShell predeterminado para cualquier trabajo de SQL Server. Os lo recomendamos.
También, para más información, puedes visitar la web oficial así como la comunidad.
Si tienes alguna consulta no dudes en hacérnosla llegar a través de los comentarios o mediante nuestro formulario de contacto.
¡Nos muy vemos pronto!