
- DBA Shell 1: Deletando arquivos de backup com powershell
- DBA Shell 2: Obtendo mais informações sobre arquivos
- DBA Shell 3: Instalando o SQL Server com Powershell
Instalar o SQL Server é uma tarefa essencial que qualquer DBA deve saber fazer. E existem várias maneiras de fazer isso.
A mais comum é usar a interface gráfica! Porém, esta maneira pode não ser a mais rápida devido ao tempo que a mesma demora para carregar e à quantidade de interações que vocês precisa fazer! E também, já se perguntou como seria chato se você precisasse instalar muitas instâncias de uma só vez?

Minhas instâncias de testes, instaladas com o script deste post
Ao contrário do que muitos pensam, o SQL Server permite que você faça a instalação via linha de comando, e posui uma série de parâmetros que você pode enviar para o setup.exe
A documentação completa se encontra em: https://docs.microsoft.com/en-us/sql/database-engine/install-windows/install-sql-server-from-the-command-prompt?view=sql-server-ver15
Mesmo usando o setup.exe, você poderia gastar tanto tempo quanto a interface, ou até mais! Já que são tantas opções para escolher!
Para facilitar nossa vida, desenvolvi um script chamado Install-SQLServer.
Eu tenho usado este script há alguns anos, e venho constantemente evoluindo o mesmo. O objetivo é facilitar ao máximo a sua vida, pedindo o mínimo de informação possível.
Dentre as várias features deste script, destaco as seguinte:
- Possui uma série de valores default para maioria dos parâmetros, diminuindo suas interações.
- Você pode escolher as conta de serviços, collation, diretório de instalação, nome da instância, etc.
- Em caso de erros, lê o error log gerado pelo instalador para você, facilitando a sua vida na hora de encontrar as causas da falha
Como instalar
- Baixe o seguinte arquivo Install-SQLServer
- Talvez você tenha que clicar com o botão direito do mouse no seu navegador e escolher “salvar como”.
- Salve como Install-SQLServer.ps1
- Copie o arquivo para o servidor onde irá realizar a instalação.
Preparação para a instalação
Como uma instalação qualquer, incluindo interface gráfica, você também precisa se preparar:
- Você precisar ter o diretório do instalador disponível! (Para os exemplos deste artigo, considere E:\)
- Se a mídia estiver em formato .iso, você deve baixá-la e mandar montar (o próprio Windows faz isso, basta clicar com o botão direito no arquivo)
- Configuração da instância:
- Senha do sa
- Nome e senha da conta de serviço (caso queria usar uma diferente da padrão do instalador)
- Nome da instância (caso não seja uma instância default)
- Diretório de instalação dos binários (caso seja diferente do padrão do instalador)
- Collation (caso não seja Latin1_General_CI_AS, que é o padrão do script)
- Garanta que o powershell esteja liberado para execução de script
- A configuração default do powershell é não permitir a execução de scripts.
- Você pode contornar isso de várias formas, apresento uma delas:
- Mude a política (você precisar ser Administrador)
Set-ExecutionPolicy ByPass
- Mude a política (você precisar ser Administrador)
Um passo a passo
- Suponha que tenha copiado para C:\temp de algum servidor e queria instalar uma instância nomeada chamada PROD01
- Abra o powershell (garanta que pode executar scripts)
- Mude o diretório atual para o diretório onde copiou o script:
cd C:\temp
- Digite o seguinte comando (repare que o ponto e a barra no início do comando devem existir):
.\Install-SQLServer.ps1 -Setup E:\ -AddCurrentAsAdmin -InstanceName PROD01 -LoadProductKey
No comando acima, você irá instalar um SQL Server cujo instalador se encontra em E:\, e o nome da instância será PROD01.
- -Setup especifica o caminho para o diretório do instalador
- O parâmetro -AddCurrentAsAdmin adiciona o usuário que está instalando como sysadmin
- -InstanceName é o nome da instância
- -LoadProductKey faz o script procurar a product key dentro do diretório do instalador
Lembre-se: A versão e edição da instância a ser instalada vai depender do instalador que você disponibilizou!
- Na primeira execução, o script irá pedir a senha do sa. A conta de serviço usada será a padrão do instalador (o parâmetro -ServiceAccount não foi especificado)
- A saída do comando acima será algo semelhante a esta:
- Por padrão, o comando exibe um resumo dos parâmetros que serão enviado ao setup.exe!
Para que o instalador inicie de verdade, repita o comando utilizando o parâmetro -Execute:.\Install-SQLServer.ps1 -AddCurrentAsAdmin -LoadProductKey -Setup E:\ -InstanceName PROD01 -Execute
O progresso será exibido:
- Caso haja erros durante a instalação, o script irá reportar:
- Caso saia tudo certo, você receberá este resultado:
Outros exemplos de parâmetros:
- Instância DEFAULT
Para uma instância DEFAULT, basta retirar o parâmetro “-InstanceName”.\Install-SQLServer -AddCurrentAsAdmin -LoadProductKey -Setup E:\ -Execute
- Especificando uma Product key
O parâmetro -ProductKey deve ser usado quando quiser especificar a chave de ativação..\Install-SQLServer -AddCurrentAsAdmin -ProductKey "0000-1111-2222-33333-44444" -Setup E:\ -Execute
- Especificando uma conta de serviço de domínio
O parâmetro -ServiceAccount permite especificar a conta de serviço. Na primeira execução, ele irá solicitar a senha..\Install-SQLServer -AddCurrentAsAdmin -Setup E:\ -ServiceAccount "Dominio\sqlserver" -Execute
O script também irá validar se a conta é válida! Caso encontre erros, os mesmos serão reportados e a instalação não irá proceder.
- Especificando uma conta de serviço local (A conta local é construída com o nome da máquina)
.\Install-SQLServer -AddCurrentAsAdmin -Setup E:\ -ServiceAccount "NomeMaquina\sqlserver" -Execute
- Especificando o collation
.\Install-SQLServer -AddCurrentAsAdmin -Setup E:\ -ServerCollation Latin1_General_BIN -Execute
Para obter mais ajuda consulte o help do arquivo ou os comentários.
Se encontrar algum problema, submeta uma issue no repositório do github
E lembre-se, apesar de facilitar a sua vida, sempre planeje e revise sua instalação, principalmente em ambientes de produção. Utilize por sua própria conta e risco.
DBA Team Leader na Power Tuning
Comments ( 2 )