Parâmetros de Inicialização do SQL Server

20 de janeiro de 2020 Off Por Rodrigo Crespi

O serviço do SQL Server conta com diversos parâmetros de inicialização. Temos 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:

https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/database-engine-service-startup-options?view=sql-server-2017

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 deve-se 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.

Abraço, Equipe CrespiDB.