Compartilhar via


Utilitário SQLdiag

Aplica-se:SQL Server

O utilitário SQLdiag é um utilitário de coleta de diagnósticos para fins gerais que pode ser executado como um aplicativo do console ou um serviço. É possível usar o SQLdiag para coletar logs e arquivos de dados do SQL Server e de outros tipos de servidores, e usá-lo para monitorar os servidores ao longo do tempo ou para solucionar problemas específicos com seus servidores. OSQLdiag foi criado para agilizar e simplificar a coleta de informações de diagnóstico para os Serviços de Atendimento ao Cliente da Microsoft .

Observação

Esse utilitário pode ser alterado e aplicativos ou scripts que dependem de seus argumentos ou comportamentos de linha de comando podem não funcionar corretamente em versões futuras.

OSQLdiag pode coletar os seguintes tipos de informações de diagnóstico:

  • Logs de desempenho do Windows
  • Logs de eventos do Windows
  • Rastreamentos do SQL Server Profiler
  • Informações sobre bloqueio no SQL Server
  • Informações de configuração do SQL Server

Você pode especificar quais tipos de informações deseja que o SQLdiag colete editando o arquivo SQLdiag.xmlde configuração, que é descrito em uma seção a seguir.

Sintaxe

sqldiag
    { [ /? ] }
    |
    {
      [ /I configuration_file ]
      [ /O output_folder_path ]
      [ /P support_folder_path ]
      [ /N output_folder_management_option ]
      [ /M machine1 [ machine2 machineN ] | @machinelistfile ]
      [ /C file_compression_type ]
      [ /B [+]start_time ]
      [ /E [+]stop_time ]
      [ /A SQLdiag_application_name ]
      [ /T { tcp [ ,port ] | np | lpc } ]
      [ /Q ] [ /G ] [ /R ] [ /U ] [ /L ] [ /X ]
    }
    |
    { [ START | STOP | STOP_ABORT ] }
    |
    { [ START | STOP | STOP_ABORT ] /A SQLdiag_application_name }

Argumentos

/?

Exibe informações de uso.

/configuration_file

Define o arquivo de configuração para o SQLdiag usar. Por padrão, /I é definido como SQLdiag.xml.

/O output_folder_path

Redireciona a saída do SQLdiag para a pasta especificada. Se a opção /O não for especificada, a saída do SQLdiag será gravada em uma subpasta nomeada SQLDIAG na pasta de inicialização do SQLdiag . Se a SQLDIAG pasta não existir, o SQLdiag tentará criá-la.

Observação

O local da pasta de saída é relativo ao local da pasta de suporte que pode ser especificado com /P. Para definir um local totalmente diferente para a pasta de saída, especifique o caminho completo do diretório para /O.

/P support_folder_path

Define o caminho da pasta de suporte. Por padrão, /P é definido como a pasta em que o executável SQLdiag reside. A pasta de suporte contém os arquivos de suporte do SQLdiag , como o arquivo de configuração XML, scripts Transact-SQL e outros arquivos que o utilitário usa durante a coleta de diagnósticos. Se você usar essa opção para especificar um caminho de arquivos de suporte alternativo, o SQLdiag copiará automaticamente os arquivos de suporte necessários para a pasta especificada se eles ainda não existirem.

Para definir sua pasta atual como o caminho de suporte, especifique %cd% na linha de comando da seguinte maneira:

sqldiag /P %cd%

/N output_folder_management_option

Define se o SQLdiag substitui ou renomeia a pasta de saída na inicialização. Opções disponíveis:

  • 1 = Sobrescreve a pasta de saída (padrão)
  • 2 = Quando o SQLdiag é iniciado, ele renomeia a pasta de saída para SQLDIAG_00001, SQLDIAG_00002e assim por diante. Depois de renomear a pasta de saída atual, o SQLdiag grava a saída na pasta SQLDIAGde saída padrão.

O SQLdiag não acrescenta a saída à pasta de saída atual quando é iniciado. Ele só pode substituir a pasta de saída padrão (opção 1) ou renomear a pasta (opção 2) e, em seguida, grava a saída na nova pasta de saída padrão chamada SQLDIAG.

/M machine1 [ machine2machineN ] | @machinelistfile

Substitui as máquinas especificadas no arquivo de configuração. Por padrão, o arquivo de configuração é SQLdiag.xmlou é definido com o /I parâmetro. Ao especificar mais de uma máquina, separe cada nome de máquina com um espaço.

A opção @machinelistfile especifica um nome de arquivo de lista de computadores a ser armazenado no arquivo de configuração.

/C tipo_de_compressão_de_arquivo

Define o tipo de compactação de arquivo usado nos arquivos da pasta de saída do SQLdiag . Opções disponíveis:

  • 0 = nenhum (padrão)
  • 1 = usa compactação NTFS

/B [+]start_time

Especifica a data e a hora para começar a coletar dados de diagnóstico no seguinte formato: yyyyMMdd_HH:mm:ss

A hora é especificada usando a notação de 24 horas. Por exemplo, 14h deve ser especificada como 14:00:00.

Use + sem a data (somente HH:mm:ss) para especificar uma hora relativa à data e hora atuais. Por exemplo, se você especificar /B +02:00:00, o SQLdiag aguarda 2 horas antes de começar a coletar informações.

Não insira um espaço entre + a start_time especificada.

Se você especificar uma hora de início no passado, o SQLdiag forçará a alteração da data de modo que a data e a hora de início estejam no futuro. Por exemplo, se você especificar /B 01:00:00 e a hora atual for 08:00:00, o SQLdiag alterará à força a data de início para que a data de início seja no dia seguinte.

O SQLdiag usa a hora local no computador em que o utilitário está em execução.

/E [+]stop_time

Especifica a data e a hora para interromper a coleta de dados de diagnóstico no seguinte formato: yyyyMMdd_HH:mm:ss

A hora é especificada usando a notação de 24 horas. Por exemplo, 14h deve ser especificada como 14:00:00.

Use + sem a data (somente HH:mm:ss) para especificar uma hora relativa à data e hora de início . Por exemplo, se você especificar uma hora de início e hora de término usando /B +02:00:00 /E +03:00:00, o SQLdiag aguarda 2 horas antes de começar a coletar informações e coleta informações por 3 horas antes de parar e sair. Se /B não for especificado, o SQLdiag começará a coletar diagnósticos imediatamente e terminará na data e hora especificadas por /E.

Não insira um espaço entre + o start_time ou o end_time especificado.

O SQLdiag usa a hora local no computador em que o utilitário está em execução.

/A SQLdiag_application_name

Habilita a execução de várias instâncias do utilitário SQLdiag na mesma instância do SQL Server .

Cada SQLdiag_application_name identifica uma instância diferente do SQLdiag. Não existe relação entre uma instância do SQLdiag_application_name e um nome de instância do SQL Server .

SQLdiag_application_name pode ser usado para iniciar ou interromper uma instância específica de serviço do SQLdiag .

Neste exemplo, substitua <SQLdiag_application_name> pelo valor apropriado para SQLdiag_application_name:

sqldiag START /A <SQLdiag_application_name>

Ele também pode ser usado com a opção /R de registrar uma instância específica do SQLdiag como um serviço. Neste exemplo, substitua <SQLdiag_application_name> pelo valor apropriado para SQLdiag_application_name:

sqldiag /R /A <SQLdiag_application_name>

Observação

O SQLdiag prefixa DIAG$ automaticamente o nome da instância especificado para SQLdiag_application_name. Isso fornecerá um nome de serviço sensato se você registrar o SQLdiag como um serviço.

/T Protocolo

Conecta-se a uma instância do SQL Server usando um dos seguintes valores de protocolo.

Protocolo (e porta) Description
tcp [ ,port ] Protocolo de Controle de Transmissão/Protocolo da Internet (TCP/IP). Opcionalmente, é possível especificar um número de porta para a conexão.
Np Pipes nomeados. Por padrão, a instância padrão do SQL Server escuta nos pipes nomeados \\.\pipe\sql\query e \\.\pipe\MSSQL$<instancename>\sql\query em busca de uma instância nomeada. Você não pode se conectar a uma instância do SQL Server usando um nome de pipe alternativo.
Lpc Chamada de procedimento local. Esse protocolo de memória compartilhada também estará disponível se o cliente estiver se conectando a uma instância do SQL Server no mesmo computador.

/Q

Executa o SQLdiag no modo silencioso. /Q suprime todas as solicitações, como as de senha.

/G

Executa o SQLdiag no modo genérico. Quando /G especificado, na inicialização, o SQLdiag não impõe verificações de conectividade do SQL Server nem verifica se o usuário é membro da função de servidor fixa sysadmin . Em vez disso, o SQLdiag transfere ao Windows a responsabilidade por determinar se um usuário tem os direitos apropriados para coletar cada diagnóstico solicitado.

Se /G não for especificado, o SQLdiag verificará se o usuário é membro do grupo Administradores do Windows e não coletará diagnósticos do SQL Server se o usuário não for um membro do grupo Administradores .

/R

Registra o SQLdiag como um serviço. Quaisquer argumentos de linha de comando especificados ao registrar o SQLdiag como um serviço são preservados para execuções futuras do serviço.

Quando o SQLdiag é registrado como um serviço, o nome do serviço padrão é SQLDIAG. Você pode alterar o nome do serviço usando o /A argumento.

Use o argumento de START linha de comando para iniciar o serviço:

sqldiag START

Você também pode usar o net start comando para iniciar o serviço:

net start SQLDIAG

/U

Cancela o registro do SQLdiag como um serviço.

Use o /A argumento também se desregistrar uma instância SQLdiag nomeada.

/L

Executa o SQLdiag no modo contínuo quando uma hora de início ou uma hora de término também é especificada com os argumentos /B ou /E, respectivamente. OSQLdiag reinicia automaticamente depois que a coleta de diagnósticos é interrompida devido a um desligamento agendado. Por exemplo, usando os /E argumentos ou os /X argumentos.

Observação

O SQLdiag ignora o /L argumento se uma hora de início ou hora de término não for especificada usando os /B e /E argumentos de linha de comando.

Usar /L não implica o modo de serviço. Para usar /L ao executar o SQLdiag como um serviço, especifique-o na linha de comando ao registrar o serviço.

/X

Executa o SQLdiag no modo de instantâneo. O SQLdiag tira um instantâneo de todo o diagnóstico configurado e desliga automaticamente.

START | STOP | STOP_ABORT

Inicia ou interrompe o serviço do SQLdiag . STOP_ABORT força o serviço a encerrar o mais rapidamente possível sem concluir a coleta dos diagnósticos que está atualmente coletando.

Quando esses argumentos de controle de serviço forem usados, eles deverão ser o primeiro argumento usado na linha de comando. Por exemplo:

sqldiag START

Somente o /A argumento, que especifica uma instância nomeada do SQLdiag, pode ser usado com START, STOPou STOP_ABORT para controlar uma instância específica do serviço SQLdiag . Neste exemplo, substitua <SQLdiag_application_name> pelo valor apropriado para SQLdiag_application_name:

sqldiag START /A <SQLdiag_application_name>

Requisitos de segurança

A menos que o SQLdiag seja executado no modo genérico (especificando o /G argumento de linha de comando), o usuário que executa o SQLdiag deve ser membro do grupo Administradores do Windows e membro da função de servidor fixa sysadmin do SQL Server. Por padrão, o SQLdiag conecta-se ao SQL Server usando a Autenticação do Windows, mas também tem suporte para a Autenticação do SQL Server .

Considerações sobre desempenho

Os efeitos no desempenho da execução do SQLdiag dependem do tipo de dados de diagnóstico que você configurou para coletar. Por exemplo, se você configurou o SQLdiag para coletar informações de rastreamento do SQL Server Profiler , quanto maior o número de classes de evento que você escolher para rastreamento, mais o desempenho do servidor será afetado.

O impacto no desempenho ao executar o SQLdiag é aproximadamente equivalente à soma dos custos de coleta do diagnóstico configurado separadamente. Por exemplo, coletar um rastreamento com o SQLdiag gera o mesmo custo de desempenho que coletá-lo com o SQL Server Profiler. O impacto no desempenho ao usar o SQLdiag é desprezível.

Espaço em disco necessário

Como o SQLdiag pode coletar diferentes tipos de informações de diagnóstico, o espaço em disco livre exigido para executar o SQLdiag varia. A quantidade de informações de diagnóstico coletadas depende da natureza e do volume da carga de trabalho que o servidor está processando e pode variar de alguns megabytes a vários gigabytes.

Arquivos de configuração

Ao inicializar, o SQLdiag lê o arquivo de configuração e os argumentos de linha de comando que foram especificados. Você especifica os tipos de informações de diagnóstico que o SQLdiag coleta no arquivo de configuração. Por padrão, o SQLdiag usa o SQLdiag.xml arquivo de configuração, que é extraído sempre que a ferramenta é executada e está localizada na pasta de inicialização do utilitário SQLdiag . O arquivo de configuração utiliza o esquema XML, SQLDiag_schema.xsd, que também é extraído no diretório de inicialização do utilitário por meio do arquivo executável sempre que o SQLdiag é executado.

Editar os arquivos de configuração

Você pode copiar e editar SQLdiag.xml para alterar os tipos de dados de diagnóstico coletados pelo SQLdiag . Ao editar o arquivo de configuração, sempre use um editor de XML que pode validar o arquivo de configuração em seu esquema XML como o Management Studio. Você não deve editar SQLdiag.xml diretamente. Em vez disso, faça uma cópia SQLdiag.xml e renomeie-a para um novo nome de arquivo na mesma pasta. Em seguida, edite o novo arquivo e use o /I argumento para passá-lo para o SQLdiag.

Editar o arquivo de configuração quando o SQLdiag for executado como um serviço

Se você já executou o SQLdiag como um serviço e precisa editar o arquivo de configuração, cancele o registro do SQLDIAG serviço especificando o /U argumento de linha de comando e registre novamente o serviço usando o argumento de /R linha de comando. Cancelar o registro e registrar novamente o serviço remove informações de configuração antigas que foram armazenadas no registro do Windows.

Pasta de saída

Se você não especificar uma pasta de saída com o argumento, o /OSQLdiag criará uma subpasta nomeada SQLDIAG na pasta de inicialização do SQLdiag . Para obter uma coleção de informações de diagnóstico que envolva rastreamento de alto volume, como o SQL Server Profiler, verifique se a pasta de saída está em uma unidade local com espaço suficiente para armazenar a saída de diagnóstico solicitada.

Quando o SQLdiag é reiniciado, ele substitui o conteúdo da pasta de saída. Para evitar isso, especifique /N 2 na linha de comando.

Processo de coleta de dados

Quando o SQLdiag é iniciado, ele executa as verificações de inicialização necessárias para coletar os dados de diagnóstico especificados em SQLdiag.xml. Esse processo pode levar vários segundos. Depois que o SQLdiag começou a coletar dados de diagnóstico quando ele é executado como um aplicativo de console, uma mensagem é exibida informando que a coleção SQLdiag foi iniciada e que você pode pressionar CTRL+C para interrompê-la. Quando o SQLdiag é executado como um serviço, uma mensagem semelhante é gravada no log de eventos do Windows.

Se você estiver usando SQLdiag para diagnosticar um problema que você consegue reproduzir, aguarde até receber a mensagem específica antes de reproduzir o problema no servidor.

OSQLdiag coleta a maioria dos dados de diagnóstico em paralelo. Todas as informações de diagnóstico são coletadas por meio da conexão com as ferramentas, como o utilitário SQL Server sqlcmd ou o processador de comandos do Windows, exceto quando as informações são coletadas dos logs de desempenho e logs de evento do Windows. O SQLdiag utiliza um thread de trabalho por computador para monitorar a coleção de dados de diagnóstico dessas outras ferramentas, frequentemente aguardando a conclusão de várias ferramentas simultaneamente. Durante o processo de coleta, o SQLdiag roteia a saída de cada diagnóstico para o diretório de saída.

Interromper a coleta de dados

Depois que o SQLdiag começa a coletar dados de diagnóstico, ele continua a fazê-lo, a menos que você interrompa manualmente por meio Ctrl+Cou crie um sqldiag.stop arquivo ou configure-o para parar em um momento especificado. Você pode configurar o SQLdiag para parar em um momento específico usando o /E argumento, ou usar o /X argumento, que faz com que o SQLdiag seja executado no modo instantâneo.

Quando o SQLdiag é interrompido, ele interrompe todos os diagnósticos iniciados. Por exemplo, ele interrompe os rastreamentos que o SQL Server Profiler estava coletando, a execução de scripts do Transact-SQL e qualquer subprocesso gerado durante a coleta de dados. Após a conclusão da coleção de dados de diagnóstico, o SQLdiag é encerrado.

Parar o SQLdiag ao ser executado como um aplicativo de console

Se você estiver executando o SQLdiag como um aplicativo de console, pressione CTRL+C na janela do console em que o SQLdiag está sendo executado para pará-lo. Depois de pressionar CTRL+C, uma mensagem é exibida na janela do console informando que a coleta de dados do SQLdiag está terminando e que você deve aguardar até que o processo seja desligado, o que pode levar vários minutos.

Pressione Ctrl+C duas vezes para finalizar todos os processos de diagnóstico filho e encerrar imediatamente o aplicativo.

Parar SQLdiag ao executar como um serviço

Se você estiver executando o SQLdiag como um serviço, execute sqldiag STOP na pasta de inicialização do SQLdiag para pará-lo. Ou você pode parar os serviços SQLdiag no applet Services.msc .

Observação

Não há suporte para pausar o serviço SQLdiag . Se você tentar pausar o serviço SQLdiag , ele será interrompido depois de concluir a coleta de diagnósticos que estava executando quando você o pausou. Se você reiniciar o SQLdiag depois de interrompê-lo, o aplicativo reiniciará e substituirá a pasta de saída. Para evitar substituir a pasta de saída, especifique /N 2 na linha de comando.

Se você estiver executando várias instâncias do SQLdiag no mesmo computador, também poderá passar o nome da instância do SQLdiag para a linha de comando ao parar o serviço. Por exemplo, para interromper uma instância do SQLdiag chamada Instância 1, use a seguinte sintaxe:

sqldiag STOP /A Instance1

/A é o único argumento de linha de comando que pode ser usado com START, STOPou STOP_ABORT. Se você precisar especificar uma instância nomeada do SQLdiag com um dos verbos de controle de serviço, especifique /A após o verbo de controle na linha de comando, conforme mostrado no exemplo de sintaxe anterior. Quando verbos de controle são usados, eles devem ser o primeiro argumento na linha de comando.

Para interromper o serviço o mais rápido possível, execute sqldiag STOP_ABORT na pasta de inicialização do utilitário. Esse comando aborta qualquer coleta de diagnóstico que está sendo executada atualmente sem esperar a sua conclusão.

Observação

Use sqldiag STOP ou sqldiag STOP_ABORT para interromper o serviço SQLdiag. Não use o Console dos Serviços windows para interromper o SQLdiag ou outros serviços do SQL Server.

Parar SQLdiag usando o arquivo sqldiag.stop

O SQLdiag também é desligado automaticamente quando encontra um arquivo nomeado sqldiag.stop na pasta do \Output utilitário. Essa opção se aplica independentemente de o SQLdiag ser executado como um aplicativo de console ou como um serviço. A criação de um .stop arquivo pode ser útil quando você deseja desligar programaticamente o SQLdiag depois que algum evento ocorre, mas você não sabe com antecedência o tempo em que esse evento ocorre. O conteúdo do arquivo sqldiag.stop é irrelevante. Uma opção, além de criar o arquivo manualmente, é usar um comando como o seguinte em um arquivo em lote para criar sqldiag.stop:

ECHO stop > F:\PSSDIAG\Output\sqldiag.stop

Outra opção é usar o PowerShell:

Set-Content -Value "stop" -Path "F:\PSSDIAG\Output\sqldiag.stop"

Iniciar e parar automaticamente o SQLdiag

Para iniciar e parar automaticamente a coleta de dados de diagnóstico em um momento especificado, use os argumentos /B <start_time> e /E <stop_time> com notação de 24 horas. Por exemplo, se você estiver solucionando um problema que aparece consistentemente aproximadamente às 02:00:00, poderá configurar o SQLdiag para iniciar automaticamente a coleta de dados de diagnóstico às 01:45 e parar automaticamente às 03:00:00.

Use os argumentos /B e /E para especificar a hora de início e parada. Use a notação de 24 horas para especificar uma data e hora exatas de início e parada com o formato geral yyyyMMdd_HH:mm:ss. O exemplo a seguir inicia a coleta de dados às 01:45 e interrompe-a às 3:00.

sqldiag /B 01:45:00 /E 03:00:00

Para especificar uma hora relativa de início ou de parada, prefixe a hora de início e a de parada com +, omitindo a parte de data (yyyyMMdd_) conforme mostrado no exemplo a seguir. Isso faz com que o SQLdiag aguarde uma hora antes de começar a coletar informações e, em seguida, coleta informações por duas horas e meia antes de parar e sair:

sqldiag /B +01:00:00 /E +02:30:00

Quando uma start_time relativa é especificada, o SQLdiag inicia em uma hora relativa à data e à hora atuais. Quando uma end_time relativa é especificada, o SQLdiag encerra em uma hora relativa à start_timeespecificada. Se a data e a hora de início e de parada especificadas estiverem no passado, o SQLdiag forçará a alteração da data de início de modo que a data e a hora de início estejam no futuro.

Isto tem implicações importantes nas datas de início e de término que você escolhe. Considere o exemplo a seguir:

sqldiag /B +01:00:00 /E 08:30:00

Se a hora atual for 08:00, a hora de término passará antes da coleta de diagnóstico começar de fato. Como o SQLdiag ajusta automaticamente as datas de início e término para o dia seguinte, quando elas ocorrem no passado, neste exemplo, a coleta de diagnóstico começa às 09:00 de hoje (uma hora de início relativa foi especificada em 1 hora a partir de agora usando +) e continua coletando até as 08:30 da manhã seguinte.

Parar e reiniciar o SQLdiag para coletar diagnósticos diários

Para coletar um conjunto de diagnósticos especificado diariamente sem precisar iniciar manualmente e parar o SQLdiag, use o /L argumento. O /L argumento faz com que o SQLdiag seja executado continuamente reiniciando-se automaticamente após um desligamento agendado. Quando /L é especificado, e o SQLdiag é interrompido porque atingiu a hora de término especificada com o /E argumento, ou é interrompido porque está sendo executado no modo de instantâneo usando o argumento /X, o SQLdiag é reiniciado em vez de sair.

O exemplo a seguir especifica que o SQLdiag seja executado no modo contínuo para reiniciar automaticamente depois que a coleta de dados de diagnóstico ocorrer entre 03:00:00 e 05:00:00.

sqldiag /B 03:00:00 /E 05:00:00 /L

O exemplo a seguir especifica que o SQLdiag seja executado no modo contínuo para reiniciar automaticamente depois de tirar um instantâneo dos dados de diagnóstico às 03:00:00.

sqldiag /B 03:00:00 /X /L

Executar o SQLdiag como um serviço

Quando você quiser usar o SQLdiag para coletar dados de diagnóstico por longos períodos de tempo durante os quais talvez seja necessário sair do computador no qual o SQLdiag está em execução, você pode executá-los como um serviço.

Registrar o SQLdiag para ser executado como um serviço

Você pode registrar o SQLdiag para ser executado como um serviço especificando o /R argumento na linha de comando. Isso registra o SQLdiag para ser executado como um serviço O nome do serviço SQLdiag é SQLDIAG. Todos os outros argumentos que você especificar na linha de comando ao registrar o SQLdiag como um serviço são preservados e reutilizados quando o serviço é iniciado.

Para alterar o nome do serviço padrão SQLDIAG , use o /A argumento de linha de comando para especificar outro nome. O SQLdiag prefixa automaticamente DIAG$ a qualquer nome de instância SQLdiag especificado com /A para criar nomes de serviço sensatos.

Cancelar o registro do serviço SQLDIAG

Para cancelar o registro do serviço, especifique o /U argumento. Cancelar o registro do SQLdiag como um serviço também exclui as chaves do Registro do Windows do serviço.

Iniciar ou reiniciar o serviço SQLDIAG

Para iniciar ou reiniciar o SQLDIAG serviço, execute sqldiag START na linha de comando.

Se você estiver executando várias instâncias do SQLdiag usando o /A argumento, também poderá passar o nome da instância do SQLdiag na linha de comando ao iniciar o serviço. Por exemplo, para iniciar uma instância do SQLdiag chamada Instância 1, use a seguinte sintaxe:

sqldiag START /A Instance1

Você também pode usar o net start comando para iniciar o SQLDIAG serviço.

Ao reiniciar o SQLdiag, ele substitui o conteúdo na pasta de saída atual. Para evitar isso, especifique /N 2 na linha de comando para renomear a pasta de saída quando o utilitário for iniciado.

Não há suporte para pausar o serviço SQLdiag .

Executar várias instâncias do SQLdiag

Execute várias instâncias do SQLdiag no mesmo computador especificando /A <SQLdiag_application_name> na linha de comando. Isso é útil para coletar conjuntos diferentes de diagnósticos simultaneamente da mesma instância do SQL Server . Por exemplo, você pode configurar uma instância nomeada do SQLdiag para executar continuamente coletas de dados leves. Em seguida, se ocorrer um problema específico no SQL Server, você poderá executar a instância padrão do SQLdiag para coletar diagnósticos para esse problema ou coletar um conjunto de diagnósticos que os Serviços de Suporte ao Cliente da Microsoft solicitam que você reúna para diagnosticar um problema.

Coletar dados de diagnóstico de instâncias clusterizados do SQL Server

OSQLdiag oferece suporte à coleta de dados de diagnóstico de instâncias do SQL Server clusterizadas. Para coletar diagnósticos de instâncias do SQL Server em cluster, verifique se o atributo name do elemento <Machine> no arquivo de configuração SQLdiag.xml está especificado como "." e não especifique o argumento /G na linha de comando. Por padrão, "." é especificado para o name atributo no arquivo de configuração e o /G argumento está desativado. Normalmente, você não precisa editar o arquivo de configuração ou alterar os argumentos de linha de comando ao coletar de uma instância do SQL Server clusterizado.

Quando "." é especificado como o nome do computador, o SQLdiag detecta que ele está em execução em um cluster e recupera simultaneamente informações de diagnóstico de todas as instâncias virtuais do SQL Server instaladas no cluster. Se você quiser coletar informações de diagnóstico de apenas uma instância virtual do SQL Server em execução em um computador, especifique o SQL Server virtual para o atributo name do elemento <Machine> em SQLdiag.xml.

Observação

Para coletar informações de rastreamento do SQL Server Profiler de instâncias do SQL Server clusterizadas, os compartilhamentos administrativos (ADMIN$) devem estar habilitados no cluster.