DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 917825 - Última revisão: segunda-feira, 4 de fevereiro de 2013 - Revisão: 2.0

 

Nesta página

Sumário

O utilitário Sqldumper.exe está incluído no Microsoft SQL Server 2005, Microsoft SQL Server 2008, Microsoft SQL Server 2008 R2 e Microsoft SQL Server 2012. Este artigo descreve como usar o utilitário Sqldumper.exe para gerar um arquivo de despejo para o relatório de erros do Watson ou para tarefas de depuração.

Mais Informações

Você pode usar o utilitário Sqldumper.exe para gerar um arquivo de despejo sob demanda para qualquer aplicativo do Microsoft Windows. Por exemplo, você pode gerar um arquivo de despejo para depurar um problema de aplicativo quando um computador que esteja executando o SQL Server 2005, Microsoft SQL Server 2008, Microsoft SQL Server 2008 R2 ou 2012 do Microsoft SQL Server não está respondendo às solicitações do usuário. Um arquivo de despejo pode ser um arquivo de mini-despejo, um arquivo de despejo completo ou um arquivo de despejo filtrado.

No entanto, você não pode usar o utilitário Sqldumper.exe para depuração de finalidade geral. Para obter mais informações sobre a depuração de finalidade geral, visite o seguinte site da Microsoft:
http://www.microsoft.com/whdc/devtools/debugging/default.mspx (http://www.microsoft.com/whdc/devtools/debugging/default.mspx)
O processo do SQL Server chama o utilitário Sqldumper.exe internamente para gerar um arquivo de despejo de memória quando o processo passa por todas as exceções. SQL Server passa sinalizadores para o utilitário Sqldumper.exe. Você pode usar sinalizadores de rastreamento para alterar os sinalizadores do SQL Server passa para o utilitário no contexto de uma exceção ou no contexto de uma declaração. Esses sinalizadores de rastreamento estão no intervalo de 2540 a 2559. Você pode usar esses sinalizadores de rastreamento para gerar determinados tipos de arquivos de despejo de memória. Por exemplo:
  • Sinalizador de rastreamento 2551: Produz um despejo de memória filtrada
  • Sinalizador de rastreamento 2544: Produz um despejo de memória completo
  • Sinalizador de rastreamento 2546: Descarta todos os threads para SQL Server no arquivo de despejo de memória
  • Sinalizador de rastreamento 8026: SQL Server limpará um dumptrigger depois de gerar o despejo de uma vez
Se dois ou mais sinalizadores de rastreamento estão ativos, a opção que indica o despejo de memória maior será respeitada. Se os sinalizadores de rastreamento 2551 e 2544 são usados, o SQL Server criará um despejo de memória completo.

Como obter um identificador de processo de aplicativo do Microsoft Windows

Para gerar um arquivo de despejo usando o utilitário Sqldumper.exe, você deve ter o identificador do processo do aplicativo do Windows para o qual você deseja gerar um arquivo de despejo. Para obter o identificador do processo, execute estas etapas:
  1. Pressione CTRL + ALT + DELETE e, em seguida, clique em Gerenciador de tarefas.
  2. No Gerenciador de tarefas do Windows caixa de diálogo, clique no Processos guia.
  3. Sobre o Modo de exibição menu, clique em Selecionar colunas.
  4. No Selecionar colunas caixa de diálogo, clique para selecionar o Processo (PID) caixa de seleção e, em seguida, clique em OK.
  5. Observe o identificador do processo do aplicativo do Windows para o qual você deseja gerar um arquivo de despejo. Para o aplicativo do SQL Server, observe o identificador do processo do processo de Sqlservr.exe.
  6. Fechar Gerenciador de tarefas.
Você também pode obter o identificador do processo do aplicativo do SQL Server que está sendo executado no seu computador usando o arquivo de log de erro do SQL Server. Por exemplo, parte do arquivo de log de erro do SQL Server é semelhante ao seguinte:

2006-04-18 09:53:03.94 Servidor do Microsoft SQL Server 2005 - 9.00.1399.06 (Intel x86)
14 De outubro de 2005 00:33:37
Copyright (c) 1988-2005 Microsoft Corporation
Enterprise Edition no Windows NT 5.2 (compilação 3790: Service Pack 1)

Servidor 09:53:03.94 de 2006-04-18 (c) 2005 Microsoft Corporation.
2006-04-18 09:53:03.94 Server todos os direitos reservados.
Identificação do processo de servidor de 09:53:03.94 de 2006-04-18 é 3716.

O número que aparece após Identificação de processo do servidor é o identificador de processo para o processo de Sqlservr.exe.

Como executar o utilitário de Sqldumper.exe

Execute o utilitário Sqldumper.exe sob o contexto da pasta onde o SQL Server instalado originalmente o utilitário. Por padrão, o caminho de instalação do utilitário Sqldumper.exe é:
SQLServerInstallDrive: \Program Files\Microsoft SQL Server\90\Shared\SQLDumper.exe
ObservaçãoSQLServerInstallDrive é um espaço reservado para a unidade onde você instalou o SQL Server 2005.

Para gerar um arquivo de despejo usando o utilitário Sqldumper.exe, siga estas etapas:
  1. Abra a seguinte pasta:
    SQLServerInstallDrive: Servidor \ do SQL \Program Files\Microsoftnúmero\Shared
    Observação Nesse caminho de pasta, número é um espaço reservado para um destes procedimentos:
    • O nome da pasta é 110 para SQL Server 2012.
    • O nome da pasta é 100 para o SQL Server 2008.
    • O nome da pasta 90 para o SQL Server 2005.

  2. Certifique-se de que o arquivo Dbghelp. dll está na pasta.
  3. Clique em Iniciar, clique em Executar, tipo cmde, em seguida, clique em OK.
  4. No prompt de comando, digite o seguinte comando e pressione ENTER:
    CD SQLServerInstallDrive: Servidor \ do SQL \Program Files\Microsoftnúmero\Shared
    Observação Nesse caminho de pasta, o número é um espaço reservado para um destes procedimentos:
    • O nome da pasta é 110 para SQL Server 2012.
    • O nome da pasta é 100 para o SQL Server 2008.
    • O nome da pasta 90 para o SQL Server 2005.
  5. Para gerar um tipo específico de arquivo de despejo, digite o comando correspondente no prompt de comando e pressione ENTER:
    • Arquivo de despejo completo
      Sqldumper.exe ProcessID 0 0x01100
    • Arquivo de mini-despejo
      Sqldumper.exe ProcessID 0x0120 0
    • Arquivo de mini-despejo inclui memória referenciada indiretamente
      Sqldumper.exe ProcessID 0 0x0120:40
    • Arquivo de despejo filtrado
      Sqldumper.exe ProcessID 0x8100 0
    ObservaçãoProcessID é um espaço reservado para o identificador do processo do aplicativo do Windows para o qual você deseja gerar um arquivo de despejo.
Se o utilitário Sqldumper.exe é executado com êxito, o utilitário gera um arquivo de despejo de memória na pasta onde o utilitário é instalado.

O arquivo de despejo que gera o utilitário Sqldumper.exe possui um padrão de nome de arquivo semelhante à seguinte:
SQLDmprxxxx.mdmp
Nesse padrão, xxxx um número crescente que é determinado com base em outros arquivos que tenham um nome semelhante na mesma pasta. Se você já tiver arquivos na pasta com nomes de arquivo no padrão especificado, talvez precise comparar a data e a hora em que o arquivo foi criado para identificar o arquivo que você deseja.

Considerações e informações adicionais

Quando o utilitário Sqldumper.exe gera um arquivo de despejo de memória para um aplicativo do Windows, o arquivo de despejo pode ser tão grande quanto a memória que o aplicativo do Windows está usando atualmente. Verifique se há espaço em disco suficiente disponível na unidade em que o utilitário Sqldumper.exe está gravando o arquivo de despejo.

Você pode especificar o diretório onde você deseja que o utilitário Sqldumper.exe para gravar o arquivo de despejo de memória. O diretório já deve existir antes de executar o utilitário Sqldumper.exe. Caso contrário, o utilitário Sqldumper.exe falhará. Não use um caminho UNC como um local para o arquivo de despejo. Este é um exemplo de como especificar o local do arquivo de despejo de memória do arquivo mini-despejo:
  1. Clique em Iniciar, clique em Executar, tipo cmde, em seguida, clique em OK.
  2. No prompt de comando, digite o seguinte comando e pressione ENTER:
    CD SQLServerInstallDrive: Servidor \ do SQL \Program Files\Microsoftnúmero\Shared
    Observação Nesse caminho de pasta, número é um espaço reservado para um destes procedimentos:
    • O nome da pasta é 110 para SQL Server 2012.
    • O nome da pasta é 100 para o SQL Server 2008.
    • O nome da pasta 90 para o SQL Server 2005.
  3. Digite o seguinte comando no prompt de comando e pressione ENTER:
    Sqldumper.exe ProcessID 0 0x0120 0 MdumpPath
    ObservaçãoMdumpPathé um espaço reservado para o diretório onde você deseja que o utilitário Sqldumper.exe para gravar o arquivo de despejo de memória. Por padrão, o arquivo é gravado para a pasta atual.
Se você especificar um arquivo de despejo completo ou um arquivo de despejo filtrado seja gerado, o utilitário Sqldumper.exe pode levar vários minutos para gerar o arquivo de despejo. O tempo depende das seguintes variáveis:
  • A quantidade de memória que está usando o utilitário Sqldumper.exe
  • A velocidade da unidade para o qual o utilitário está gravando o arquivo de despejo
Durante esse período, o utilitário de Sqldumper.exe não processará comandos. Você irá notar que o servidor parou de responder. Além disso, pode ocorrer um failover de cluster.

Para executar o utilitário Sqldumper.exe, você deve fazer logon no Windows usando um dos seguintes métodos:
  • Use uma conta que seja membro do grupo Administradores no computador.
  • Use a mesma conta de usuário sob a qual o serviço do SQL Server está sendo executado.
Para o utilitário Sqldumper.exe trabalhar com êxito por meio da área de trabalho remota ou serviços de Terminal, você deve iniciar a área de trabalho remota ou serviços de Terminal no modo de console. Por exemplo, para iniciar a área de trabalho remota no modo de console, clique em Iniciar, clique em Executar, tipo mstsc /consolee, em seguida, clique em OK. Lembre-se de que, se o servidor de destino executa o Windows 2000, a opção /console silenciosamente é ignorada. Você pode se conectar ao servidor através de área de trabalho remota. Mas você não usará a sessão de console.
Se você perceber que nenhum arquivo de despejo de memória foi gerado na pasta atual antes de executar o utilitário Sqldumper.exe, revise as informações que o utilitário tem gerado na linha de comando para tentar determinar a possível causa da falha. Essas informações também são registradas no arquivo SQLDUMPER_ERRORLOG no diretório atual. Estes são dois possíveis mensagens de erro e suas causas:
Mensagem 1
OpenProcess falha 0x57 - o parâmetro está incorreto

Uma inválido ID de processo foi passado para o utilitário Sqldumper.exe.
Mensagem 2
Valor inválido para o identificador do segmento - erro de parâmetro de <invalid parameter=""> </invalid>

Um parâmetro inválido foi passado para o utilitário Sqldumper.exe.

Se uma mensagem de erro semelhante a uma das seguintes opções for gerada, você pode ignorar esta mensagem:

Tipo de retorno de chamada desconhecida durante minidump 6
Tipo de retorno de chamada desconhecida durante minidump 7

Failovers de cluster e o utilitário de Sqldumper.exe

Em situações de failover do cluster, o recurso do SQL Server DLL agora pode obter um arquivo de despejo antes de ocorre o failover. Quando a DLL de recurso do SQL Server determina que um recurso do SQL Server falhou, o recurso do SQL Server DLL usa o utilitário Sqldumper.exe para obter um arquivo de despejo do processo do SQL Server. Para certificar-se de que o utilitário de Sqldumper.exe com êxito gera o arquivo de despejo de memória, você deve definir as seguintes três propriedades como pré-requisitos:
  • SqlDumperDumpTimeOut
    Um tempo limite especificado pelo usuário. O recurso que dll aguarda até que o arquivo de despejo seja concluída antes da DLL de recurso interrompe o serviço do SQL Server.
  • SqlDumperDumpPath
    O local onde o utilitário Sqldumper.exe gera o arquivo de despejo.
  • SqlDumperDumpFlags
    Sinalizadores que usa o utilitário Sqldumper.exe.
Se qualquer uma das propriedades não estiver definida, o utilitário de Sqldumper.exe não é possível gerar o arquivo de despejo. Uma mensagem de aviso será registrada no log de eventos e no log de cluster sempre que o recurso for colocado on-line.

Para definir as propriedades de utilitário Sqldumper.exe para cluster de failover, siga estas etapas:
  1. Clique em Iniciar, clique em Executar, tipo cmde, em seguida, clique em OK.
  2. Para cada propriedade, digite o comando correspondente no prompt de comando e pressione ENTER:
    • O SqlDumperDumpFlags propriedade
      Para definir o SqlDumperDumpFlags propriedade para um tipo específico de arquivo de despejo, digite o comando correspondente no prompt de comando e pressione ENTER:
      • Todos os arquivos de despejo completo de thread
        • Instância padrão
          cluster resource "SQL Server" /priv SqlDumperDumpFlags = 0x01100
        • Instância nomeada
          cluster resource "SQL Server (INSTANCE1)" /priv SqlDumperDumpFlags = 0x01100
      • Todos os arquivo de mini-despejo de segmento
        • Instância padrão
          cluster resource "SQL Server" /priv SqlDumperDumpFlags = 0x0120
        • Instância nomeada
          cluster resource "SQL Server (INSTANCE1)" /priv SqlDumperDumpFlags = 0x0120
      • Filtrados todos os arquivos de despejo de thread
        • Instância padrão
          cluster resource "SQL Server" /priv SqlDumperDumpFlags = 0x8100
        • Instância nomeada
          recurso de cluster do SQL Server"(INSTANCE1)"/priv SqlDumperDumpFlags = 0x8100
    • OSqlDumperDumpPath propriedade
      cluster resource "SQL Server" /priv SqlDumperDumpPath = DirectoryPath
      Observação DirectoryPath é um espaço reservado para o diretório no qual será gerado o arquivo de despejo de memória e deve ser especificado entre aspas ("").
    • O SqlDumperDumpTimeOut propriedade
      cluster resource "SQL Server" /priv SqlDumperDumpTimeOut = Tempo limite
      Observação Tempo limite é um espaço reservado para o tempo limite em milissegundos (ms).

      O tempo que leva o utilitário para gerar um arquivo de despejo de memória de um processo do SQL Server depende da configuração do computador. Para um computador que tenha muita memória, o tempo pode ser significativo. Para obter uma estimativa do tempo que o processo leva, use o utilitário Sqldumper.exe para gerar manualmente um arquivo de despejo. Os valores válidos para o SqlDumperDumpTimeOut são de propriedade de ms 10000 para MAXDWORD. MAXDWORD representa o maior valor no intervalo do tipo de dados DWORD (4294967295).
Para verificar que as configurações tenham sido ativadas, você pode executar o seguinte comando:
cluster resource "SQL Server" /priv "

Para remover as propriedades de utilitário Sqldumper.exe para cluster de failover, siga estas etapas:
  1. Clique em Iniciar, clique em Executar, tipo cmde, em seguida, clique em OK.
  2. Para uma propriedade específica, digite o comando correspondente no prompt de comando e pressione ENTER:
    • O SqlDumperDumpFlags propriedade
      • Instância padrão
        /usedefault de /priv:SqlDumperDumpFlags de "SQL Server" do recurso de cluster
      • Instância nomeada
        /usedefault de /priv:SqlDumperDumpFlags de "(INSTANCE1) do SQL Server" do recurso de cluster
    • O SqlDumperDumpPath propriedade
      • Instância padrão
        /usedefault de /priv:SqlDumperDumpPath de "SQL Server" do recurso de cluster
      • Instância nomeada
        recurso de cluster do SQL Server"(INSTANCE1)/usedefault de /priv:SqlDumperDumpPath"
    • O SqlDumperDumpTimeOutpropriedade
      • Instância padrão
        /usedefault de /priv:SqlDumperDumpTimeOut de "SQL Server" do recurso de cluster
      • Instância nomeada
        recurso de cluster do SQL Server"(INSTANCE1)/usedefault de /priv:SqlDumperDumpTimeOut"

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Express Edition
Palavras-chave: 
kbsql2005tool kbexpertiseadvanced kbhowto kbinfo kbmt KB917825 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 917825  (http://support.microsoft.com/kb/917825/en-us/ )
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store