Parâmetros de Inicialização do SQL Server

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:

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:

01

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:

02

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

03

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.

04

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.

05

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.

06

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.

07

Na sequência abra outro prompt de comando e inicie o trabalho através do sqlcmd.

08

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

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.