Thor Logo dbatools

Install-DbaMultiTool

View Source
John McCall (@lowlydba), lowlydba.com
Windows, Linux, macOS

Synopsis

Installs five essential T-SQL stored procedures for database documentation, index optimization, and administrative tasks.

Description

Downloads and installs the DBA MultiTool collection of T-SQL stored procedures into a specified database. This toolkit provides five key utilities that help DBAs with common documentation and optimization tasks that would otherwise require manual T-SQL scripting.

The installed procedures include:
• sp_helpme - Enhanced version of sp_help that provides detailed object information
• sp_doc - Generates comprehensive database documentation
• sp_sizeoptimiser - Analyzes and recommends optimal database file sizing
• sp_estindex - Estimates potential storage savings from index compression
• sp_help_revlogin - Creates scripts to recreate logins with their original SIDs and passwords

These procedures are particularly valuable for database migrations, compliance reporting, capacity planning, and general administrative documentation. The function automatically handles downloading the latest version from GitHub and can install across multiple instances simultaneously.

DBA MultiTool links:
https://dba-multitool.org
https://github.com/LowlyDBA/dba-multitool/

Syntax

Install-DbaMultiTool
    [-SqlInstance] <DbaInstanceParameter[]>
    [[-SqlCredential] <PSCredential>]
    [[-Branch] <String>]
    [[-Database] <Object>]
    [[-LocalFile] <String>]
    [-Force]
    [-EnableException]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

 

Examples

 

Example: 1
PS C:\> Install-DbaMultiTool -SqlInstance server1 -Database main

Logs into server1 with Windows authentication and then installs the DBA MultiTool in the main database.

Example: 2
PS C:\> Install-DbaMultiTool -SqlInstance server1\instance1 -Database DBA

Logs into server1\instance1 with Windows authentication and then installs the DBA MultiTool in the DBA database.

Example: 3
PS C:\> Install-DbaMultiTool -SqlInstance server1\instance1 -Database main -SqlCredential $cred

Logs into server1\instance1 with SQL authentication and then installs the DBA MultiTool in the main database.

Example: 4
PS C:\> Install-DbaMultiTool -SqlInstance sql2016\standardrtm, sql2016\sqlexpress, sql2014

Logs into sql2016\standardrtm, sql2016\sqlexpress and sql2014 with Windows authentication and then installs the DBA MultiTool in the main database.

Example: 5
PS C:\> $servers = "sql2016\standardrtm", "sql2016\sqlexpress", "sql2014"
PS C:\> $servers | Install-DbaMultiTool

Logs into sql2016\standardrtm, sql2016\sqlexpress and sql2014 with Windows authentication and then installs the DBA MultiTool in the main database.

Example: 6
PS C:\> Install-DbaMultiTool -SqlInstance sql2016 -Branch development

Installs the development branch version of the DBA MultiTool in the main database on sql2016 instance.

Required Parameters

-SqlInstance

The target SQL Server instance or instances.

PropertyValue
Alias
RequiredTrue
Pipelinetrue (ByValue)
Default Value

Optional Parameters

-SqlCredential

Login to the target instance using alternative credentials. Accepts PowerShell credentials (Get-Credential).
Windows Authentication, SQL Server Authentication, Active Directory - Password, and Active Directory - Integrated are all supported.
For MFA support, please use Connect-DbaInstance.

PropertyValue
Alias
RequiredFalse
Pipelinefalse
Default Value
-Branch

Specifies which branch of the DBA MultiTool repository to download and install. Defaults to ‘main’ for stable releases.
Use ‘development’ only when you need to test upcoming features or bug fixes before they are officially released.
The development branch may contain untested code and should not be used in production environments.

PropertyValue
Alias
RequiredFalse
Pipelinefalse
Default Valuemain
Accepted Valuesmain,development
-Database

Specifies the target database where the five DBA MultiTool stored procedures will be installed. Defaults to ‘master’ database if not specified.
Choose a dedicated DBA or utility database to keep administrative procedures organized and separate from application databases.

PropertyValue
Alias
RequiredFalse
Pipelinefalse
Default Valuemaster
-LocalFile

Specifies the path to a local zip file containing the DBA MultiTool scripts instead of downloading from GitHub.
Use this when installing in environments without internet access, when you need to install a specific version, or when your organization requires using pre-approved software packages.
The file must be the official zip distribution from the DBA MultiTool maintainers.

PropertyValue
Alias
RequiredFalse
Pipelinefalse
Default Value
-Force

Forces a fresh download of the DBA MultiTool from GitHub, ignoring any locally cached version.
Use this when you need to ensure you have the absolute latest version or when troubleshooting installation issues with cached files.
Without this switch, the function will use the cached version if it exists to improve performance and reduce network usage.

PropertyValue
Alias
RequiredFalse
Pipelinefalse
Default ValueFalse
-EnableException

By default, when something goes wrong we try to catch it, interpret it and give you a friendly warning message.
This avoids overwhelming you with “sea of red” exceptions, but is inconvenient because it basically disables advanced scripting.
Using this switch turns this “nice by default” feature off and enables you to catch exceptions with your own try/catch.

PropertyValue
Alias
RequiredFalse
Pipelinefalse
Default ValueFalse
-WhatIf

Shows what would happen if the command were to run. No actions are actually performed.

PropertyValue
Aliaswi
RequiredFalse
Pipelinefalse
Default Value
-Confirm

Prompts to confirm actions.

PropertyValue
Aliascf
RequiredFalse
Pipelinefalse
Default Value