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

Author: SQLCrespi

Rodrigo Crespi é MVP Data Platform, MCT, MCSE, MCSA, MCIT, MCDBA e MCP em SQL Server, possuí outras certificações em .NET Framework, Dynamics CRM e etc. Iniciou trabalhando com SQL Server na versão 6.5 na época como desenvolvedor, logo direcionou a sua carreira para a área de administração de bancos de dados. Atualmente é Sócio da CrespiDB – Soluções em Plataformas de Dados, além de professor universitário na Uniftec – Caxias do Sul Autor de diversos artigos publicados em sites e revistas sobre SQL Server e engenharia de software, mantem o canal SQLCrespi no Youtube, o blog SQLCrespi, além de ser dedicado ao SQL Server RS PASS Chapter Leader do grupo de profissionais em SQL Server do Rio Grande do Sul.

Deixe uma resposta

This site uses Akismet to reduce spam. Learn how your comment data is processed.