O serviço do SQL Server conta com diversos parâmetros de inicialização. Tenho certeza, que muitos que estão lendo este post já sabem disso e utilizaram os mesmos. Contudo, a finalidade deste post não é mostrar mais do mesmo, mas sim mostrar algumas formas de parametrizar o SQL Server em diversos cenários.
Conheça os Parâmetros do sqlservr.exe
Padrão
- -d indica o caminho e o arquivo do master data file do banco de dados master;
- -l igualmente ao parâmetro -d porém para o arquivo de log de transações;
- -e arquivo de log de erro do serviço;
Troubleshooting:
- -c inicia o SQL Server sem o Windows Service Control Manager;
- -f inicializa o SQL Server com o mínimo de configuração. Utilizado principalmente quando o Windows Server não permite que o SQL Server inicialize por falta de recursos;
- -m inicializa o serviço como Single-User mode. Este parâmetro será necessário para recompilar os bancos de dados do sistema;
- -x desabilita a coleta de monitoramento;
- SQL Server performance monitor counters;
- Keeping CPU time and cache-hit ratio statistics;
- Collecting information for the DBCC SQLPERF command;
- Collecting information for some dynamic management views;
- Many extended-events event points.
- -s indica que a instância deverá ser inicializada com um trace flag;
- -g define o Virtual Allocate Bytes;
Geral:
- -n indica o nome da instância que será inicializada;
- -T permite inicializar o serviço com um trace flag;
- -E aumenta o número de extents que serão alocados em cada arquivo;
Informações extraídas de:
Consultando as Configurações de Inicialização
Para quem possui mais experiência no SQL Server, saberá que os parâmetros são feitos no registry do Windows Server.
A forma mais simples de consultar os registros é através da DMV sys.dm_server_registry.
Veja a query abaixo:
Ainda filtrando somente o que é entrada no registry do Windows relacionados a argumentos de inicialização, podemos colocar o filtro sqlarg conforme a imagem abaixo:
Pensando em utilizar o Windows Core, iremos verificar e configurar esses mesmos parâmetros no registry do Windows. Veja a seguir …
Como configurar
A maior parte das configurações no SQL Server podem ser feitas através de cmdlets do PowerShell, SQL Server Configuration Manager ou diretamente no registry do Windows Server.
SQL Server Configuration Manager – SSCM
No SSCM apenas utilizando o Windows Server com interface gráfica.
Para fazer a chamada desta ferramenta vá em Iniciar, Executar e digite: SQLServerManager14.msc
Este arquivo encontra-se em C:\Windows\SysWOW64\mmc.exe /32 C:\Windows\SysWOW64\SQLServerManager14.msc
Ao abrir as propriedades do serviço da instância desejada, clique na guia Startup Parameters
Neste caso, para adicionar um novo parâmetro, basta digitar o parâmetro na caixa e clicar em Add. Assim como, para remover selecione o parâmetro na lista e clique em Remove.
Registry
Como não temos o SSCM no Windows Core, a maneira mais fácil de fazer este processo de parametrização é utilizando o registry do Windows. Para isso, abra o executar e digite regedit.
Observe que na barra de status está o caminho que vimos no retorno da query da sys.dm_server_registry.
Para adicionar um novo parâmetro, clique com o botão direito sobre o painel, New e em seguida String Value.
Aqui vale ressaltar, que devesse tomar o cuidado de incluir a sequência SQLArg3 e assim por diante. Caso isso não aconteça, o parâmetro não será lido pelo serviço.
Parâmetro no Executável
Em algum momento, ao fazer um troubleshooting você deverá inicializar o SQL Server com o parâmetro -m, ou seja, subir o serviço como single-user para realizar alguma manutenção. Se você chegou a esse ponto é sinal que seu SQL Server não está subindo adequadamente.
Para isso, no prompt de comando utilize a chamada do executável e o parâmetro, conforme a imagem abaixo.
Lembre-se que o parâmetro -s indica a instância que está sendo tratada.
Na sequência abra outro prompt de comando e inicie o trabalho através do sqlcmd.
Os parâmetros de inicialização do serviço estão entre os primeiros itens que um DBA deve aprender. Espero que este post tenha contribuído com os aspirantes. :D
Caso tenha interesse em ver como alterar os parâmetros de inicialização através do PowerShell, confira o script no GitHub.
Abraço, Rodrigo
Um comentário em “Parâmetros de Inicialização do SQL Server”