Cómo utilizar la utilidad Sqldumper.exe para generar un archivo de volcado en SQL Server

Resumen

La utilidad Sqldumper.exe se incluye con Microsoft SQL Server 2005, Microsoft SQL Server 2008, Microsoft SQL Server 2008 R2 y Microsoft SQL Server 2012. En este artículo se describe cómo utilizar la utilidad Sqldumper.exe para generar archivos de volcado para el informe de errores de Watson o para tareas de depuración.

Más información

Puede utilizar la utilidad Sqldumper.exe para generar archivos de volcado a petición para cualquier aplicación de Microsoft Windows. Por ejemplo, puede generar un archivo de volcado para depurar un problema de aplicación cuando un equipo que está ejecutando SQL Server 2005, Microsoft SQL Server 2008, Microsoft SQL Server 2008 R2 o Microsoft SQL Server 2012 no responde a las solicitudes del usuario. Un archivo de volcado puede ser un archivo de minivolcado, un archivo de volcado completo o un archivo de volcado filtrada.

Sin embargo, no puede utilizar la utilidad Sqldumper.exe para la depuración de propósito general. Para obtener más información acerca de la depuración de propósito general, visite el siguiente sitio Web de Microsoft:El proceso de SQL Server llama a la utilidad Sqldumper.exe internamente para generar un archivo de volcado cuando el proceso experimenta todas las excepciones. SQL Server pasa indicadores para la utilidad Sqldumper.exe. Puede utilizar indicadores de traza para modificar los indicadores que SQL Server pasa a la utilidad en el contexto de una excepción o en el contexto de una aserción. Estos indicadores de seguimiento están en el rango de 2540 a 2559. Puede utilizar los siguientes indicadores de traza para generar determinados tipos de archivos de volcado. Por ejemplo:
  • Indicador de traza 2551: Realiza un volcado de memoria filtrada
  • Indicador de traza 2544: Realiza un volcado de memoria completa
  • Indicador de traza 2546: Vuelca todos los subprocesos de SQL Server en el archivo de volcado
  • Indicador de traza 8026: SQL Server borrará una dumptrigger después de generar el volcado de una vez
Si dos o más indicadores de seguimiento están activos, se respetará la opción que indica el volcado de memoria más grande. Si se utilizan los indicadores de traza 2551 y 2544, SQL Server creará un volcado de memoria completa.

Cómo obtener un identificador de proceso de la aplicación de Microsoft Windows

Para generar un archivo de volcado mediante la utilidad Sqldumper.exe, debe tener el identificador de proceso de la aplicación de Windows para el que desea generar un archivo de volcado. Para obtener el identificador de proceso, siga estos pasos:
  1. Presione CTRL + ALT + SUPR y, a continuación, haga clic en Administrador de tareas.
  2. En el cuadro de diálogo Administrador de tareas de Windows , haga clic en la ficha procesos .
  3. En el menú Ver , haga clic en Seleccionar columnas.
  4. En el cuadro de diálogo Seleccionar columnas , haga clic para activar la casilla de verificación PID (identificador de proceso) y, a continuación, haga clic en Aceptar.
  5. Observe el identificador de proceso de la aplicación de Windows para el que desea generar un archivo de volcado. Para la aplicación de SQL Server, observe el identificador de proceso del proceso Sqlservr.exe.
  6. Cierre El Administrador de tareas.
También se puede obtener el identificador de proceso de la aplicación de SQL Server que se ejecuta en el equipo utilizando el archivo de registro de errores de SQL Server. Por ejemplo, similar a la siguiente parte del archivo de registro de error de SQL Server:

2006-04-18 09:53:03.94 servidor de Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)

14 de octubre de 2005 00:33:37

Copyright (c) 1988-2005 Microsoft Corporation

Enterprise Edition en Windows NT 5.2 (compilación 3790: Service Pack 1)



Servidor de 09:53:03.94 2006-04-18 (c) 2005 Microsoft Corporation.

2006-04-18 09:53:03.94 Server todos los derechos reservados.

Id. de proceso de servidor de 2006-04-18 09:53:03.94 es 3716.

El número que aparece después de Id. de proceso de servidor es el identificador de proceso del proceso Sqlservr.exe.

Cómo ejecutar la utilidad Sqldumper.exe

Ejecute la utilidad Sqldumper.exe bajo el contexto de la carpeta donde SQL Server originalmente instaló la utilidad. De forma predeterminada, la ruta de instalación de la utilidad Sqldumper.exe es como sigue:
SQLServerInstallDrive: \Program Files\Microsoft SQL Server\90\Shared\SQLDumper.exe
Nota: SQLServerInstallDrive es un marcador de posición para la unidad donde se instaló SQL Server 2005.

Para generar un archivo de volcado mediante la utilidad Sqldumper.exe, siga estos pasos:
  1. Abra la carpeta siguiente:
    SQLServerInstallDrive: \Program Files\Microsoft SQL Server\número\Shared
    Nota: En esta ruta de acceso de la carpeta, el número es un marcador de posición para uno de los siguientes:
    • El nombre de carpeta es 110 para SQL Server 2012.
    • El nombre de carpeta es 100 para SQL Server 2008.
    • El nombre de la carpeta 90 para SQL Server 2005.

  2. Asegúrese de que el archivo Dbghelp.dll está en esta carpeta.
  3. Haga clic en Inicio, haga clic en Ejecutar, escriba cmd y, a continuación, haga clic en Aceptar.
  4. En el símbolo del sistema, escriba el comando siguiente y, a continuación, presione ENTRAR:
    CD SQLServerInstallDrive: \Program Files\Microsoft SQL Server\número\Shared
    Nota: En esta ruta de acceso de la carpeta, el número es un marcador de posición para uno de los siguientes:
    • El nombre de carpeta es 110 para SQL Server 2012.
    • El nombre de carpeta es 100 para SQL Server 2008.
    • El nombre de la carpeta 90 para SQL Server 2005.
  5. Para generar un tipo específico de archivo de volcado, escriba el comando correspondiente en el símbolo del sistema y, a continuación, presione ENTRAR:
    • Archivo de volcado completo
      Sqldumper.exe ProcessID 0 0x01100
    • Archivo de minivolcado
      Sqldumper.exe ProcessID 0 0 x 0120
    • Archivo de minivolcado que incluye indirectamente referencia a la memoria
      Sqldumper.exe ProcessID 0 0x0120:40
    • Archivo de volcado filtrada
      Sqldumper.exe ProcessID 0 0 x 8100
    Nota: ProcessID es un marcador de posición para el identificador de proceso de la aplicación de Windows para el que desea generar un archivo de volcado.
Si la utilidad Sqldumper.exe se ejecuta correctamente, la utilidad genera un archivo de volcado en la carpeta donde está instalada la utilidad.

El archivo de volcado que genera la utilidad Sqldumper.exe tiene un patrón de nombre de archivo similar al siguiente:
SQLDmprxxxx.mdmp
En este modelo, xxxx es un número creciente se determina basándose en otros archivos que tienen un nombre de archivo similar en la misma carpeta. Si ya tiene archivos en la carpeta que tienen nombres de archivo en el modelo especificado, tendrá que comparar la fecha y la hora en que se creó el archivo para identificar el archivo que desee.

Consideraciones e información adicional

Cuando la utilidad Sqldumper.exe genera un archivo de volcado para una aplicación Windows, el archivo de volcado puede ser tan grande como la memoria que está utilizando actualmente la aplicación de Windows. Asegúrese de que hay suficiente espacio en disco en la unidad a la que la utilidad Sqldumper.exe está escribiendo el archivo de volcado.

Puede especificar el directorio donde desea que la utilidad Sqldumper.exe para escribir el archivo de volcado. El directorio debe existir antes de ejecutar la utilidad Sqldumper.exe. De lo contrario, se producirá un error en la utilidad Sqldumper.exe. No utilice una ruta de acceso UNC como ubicación para el archivo de volcado. El siguiente es un ejemplo de cómo especificar la ubicación del archivo de volcado del archivo de minivolcado:
  1. Haga clic en Inicio, haga clic en Ejecutar, escriba cmd y, a continuación, haga clic en Aceptar.
  2. En el símbolo del sistema, escriba el comando siguiente y, a continuación, presione ENTRAR:
    CD SQLServerInstallDrive: \Program Files\Microsoft SQL Server\número\Shared
    Nota: En esta ruta de acceso de la carpeta, el número es un marcador de posición para uno de los siguientes:
    • El nombre de carpeta es 110 para SQL Server 2012.
    • El nombre de carpeta es 100 para SQL Server 2008.
    • El nombre de la carpeta 90 para SQL Server 2005.
  3. Escriba el comando siguiente en el símbolo del sistema y, a continuación, presione ENTRAR:
    Sqldumper.exe ProcessID 0 0 x 0120 0 MdumpPath
    Nota: MdumpPath es un marcador de posición para el directorio donde desea que la utilidad Sqldumper.exe para escribir el archivo de volcado. De forma predeterminada, el archivo se escribe en la carpeta actual.
Si especifica un archivo de volcado completo o un archivo de volcado filtrada a generarse, la utilidad Sqldumper.exe puede tardar varios minutos para generar el archivo de volcado. El tiempo depende de las siguientes variables:
  • La cantidad de memoria que está utilizando actualmente la utilidad Sqldumper.exe
  • La velocidad de la unidad en la que la utilidad está escribiendo el archivo de volcado
Durante este tiempo, la utilidad Sqldumper.exe no procesará los comandos. Observará que el servidor ha dejado de responder. Además, puede producirse una conmutación por error del clúster.

Para ejecutar la utilidad Sqldumper.exe, debe iniciar sesión en Windows utilizando uno de los métodos siguientes:
  • Utilice una cuenta que sea miembro del grupo Administradores en el equipo.
  • Utilizar la misma cuenta de usuario bajo la que se ejecuta el servicio SQL Server.
La utilidad Sqldumper.exe funcione correctamente a través de escritorio remoto o servicios de Terminal Server, debe iniciar escritorio remoto o servicios de Terminal Server en modo de consola. Por ejemplo, para iniciar escritorio remoto en modo de consola, haga clic en Inicio, haga clic en Ejecutar, escriba mstsc /consoley, a continuación, haga clic en Aceptar. Tenga en cuenta que si el servidor de destino ejecuta Windows 2000, la opción /console se omite. Puede conectarse al servidor mediante Escritorio remoto. Pero no utilizará la sesión de consola.
Si observa que no se ha generado ningún archivo de volcado en la carpeta actual, después de ejecutar la utilidad Sqldumper.exe, revise la información que ha generado la utilidad en la línea de comandos para intentar determinar la causa posible del error. Esta información también se registra en el archivo Sqldumper_errorlog.log en el directorio actual. Las siguientes son dos posibles mensajes de error y sus causas:
Mensaje 1
Error de OpenProcess 0x57 - el parámetro es incorrecto

No es válido el ID de proceso se pasó a la utilidad Sqldumper.exe.
Mensaje 2
Valor no válido para identificador de subproceso - error en el parámetro < parámetro no válido >

Se pasó un parámetro no válido a la utilidad Sqldumper.exe.

Si se genera un mensaje de error similar a uno de los procedimientos siguientes, puede ignorar este mensaje:

Tipo de devolución de llamada desconocida durante minivolcado 6
Tipo de devolución de llamada desconocida durante minivolcado 7

Conmutaciones por error de clúster y la utilidad Sqldumper.exe

En escenarios de conmutación por error de clúster, el recurso de SQL Server DLL ahora puede obtener un archivo de volcado antes de que se produce la conmutación por error. Cuando el archivo DLL de recursos de SQL Server determina que un recurso de SQL Server ha fallado, el recurso de SQL Server DLL utiliza la utilidad Sqldumper.exe para obtener un archivo de volcado del proceso de SQL Server. Para asegurarse de que la utilidad Sqldumper.exe genera correctamente el archivo de volcado, debe establecer las tres propiedades siguientes como requisitos previos:
  • SqlDumperDumpTimeOut
    Un tiempo de espera especificado por el usuario. El recurso que dll espera a que el archivo de volcado para completarse antes de la DLL de recursos, detiene el servicio de SQL Server.
  • SqlDumperDumpPath
    La ubicación donde la utilidad Sqldumper.exe genera el archivo de volcado.
  • SqlDumperDumpFlags
    Indicadores que utiliza la utilidad Sqldumper.exe.
Si no se establece cualquiera de las propiedades, la utilidad Sqldumper.exe no puede generar el archivo de volcado. Un mensaje de advertencia se registrará en el registro de sucesos y en el registro del clúster siempre que se conecte el recurso.

Para establecer las propiedades de la utilidad Sqldumper.exe para clúster de conmutación por error, siga estos pasos:
  1. Haga clic en Inicio, haga clic en Ejecutar, escriba cmd y, a continuación, haga clic en Aceptar.
  2. Para cada propiedad, escriba el comando correspondiente en el símbolo del sistema y, a continuación, presione ENTRAR:
    • La propiedad SqlDumperDumpFlags
      Para establecer la propiedad SqlDumperDumpFlags de un tipo específico de archivo de volcado, escriba el comando correspondiente en el símbolo del sistema y, a continuación, presione ENTRAR:
      • Archivo de volcado completo de todos los subprocesos
        • Instancia predeterminada
          Cluster resource "SQL Server" /priv SqlDumperDumpFlags = 0x01100
        • Instancia con nombre
          Cluster resource "de SQL Server (INSTANCE1)" /priv SqlDumperDumpFlags = 0x01100
      • Todos los archivos de minivolcado de subproceso
        • Instancia predeterminada
          Cluster resource "SQL Server" /priv SqlDumperDumpFlags = 0 x 0120
        • Instancia con nombre
          Cluster resource "de SQL Server (INSTANCE1)" /priv SqlDumperDumpFlags = 0 x 0120
      • Filtra todos los archivo de volcado de subproceso
        • Instancia predeterminada
          Cluster resource "SQL Server" /priv SqlDumperDumpFlags = 0 x 8100
        • Instancia con nombre
          Cluster resource "de SQL Server (INSTANCE1)" /priv SqlDumperDumpFlags = 0 x 8100
    • La propiedad SqlDumperDumpPath
      Cluster resource "SQL Server" /priv SqlDumperDumpPath = DirectoryPath
      Nota: DirectoryPath es un marcador de posición para el directorio en el que se generará el archivo de volcado y que debe especificarse entre comillas ("").
    • La propiedad SqlDumperDumpTimeOut
      Cluster resource "SQL Server" /priv SqlDumperDumpTimeOut = Timeout
      Nota: Tiempo de espera es un marcador de posición para el tiempo de espera en milisegundos (ms).

      El tiempo que tarda la utilidad para generar un archivo de volcado de un proceso de SQL Server depende de la configuración del equipo. Para un equipo que tenga mucha memoria, el tiempo podría ser significativo. Para obtener una estimación del tiempo que tarda el proceso, utilice la utilidad Sqldumper.exe para generar manualmente un archivo de volcado. Los valores válidos para la propiedad SqlDumperDumpTimeOut son de 10000 ms para MAXDWORD. MAXDWORD representa el valor más alto en el intervalo del tipo de datos DWORD (4294967295).
Para comprobar que se han habilitado la configuración, puede ejecutar el siguiente comando:

Cluster /priv "SQL Server" de recursos"

Para quitar las propiedades de la utilidad Sqldumper.exe para clúster de conmutación por error, siga estos pasos:
  1. Haga clic en Inicio, haga clic en Ejecutar, escriba cmd y, a continuación, haga clic en Aceptar.
  2. Para una propiedad específica, escriba el comando correspondiente en el símbolo del sistema y, a continuación, presione ENTRAR:
    • La propiedad SqlDumperDumpFlags
      • Instancia predeterminada
        Cluster resource "SQL Server" /priv:SqlDumperDumpFlags /usedefault
      • Instancia con nombre
        Cluster resource "de SQL Server (INSTANCE1)" /priv:SqlDumperDumpFlags /usedefault
    • La propiedad SqlDumperDumpPath
      • Instancia predeterminada
        Cluster resource "SQL Server" /priv:SqlDumperDumpPath /usedefault
      • Instancia con nombre
        Cluster resource "de SQL Server (INSTANCE1)" /priv:SqlDumperDumpPath /usedefault
    • La propiedad SqlDumperDumpTimeOut
      • Instancia predeterminada
        Cluster resource "SQL Server" /priv:SqlDumperDumpTimeOut /usedefault
      • Instancia con nombre
        Cluster resource "de SQL Server (INSTANCE1)" /priv:SqlDumperDumpTimeOut /usedefault
Propiedades

Id. de artículo: 917825 - Última revisión: 27 ene. 2017 - Revisión: 2

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

Comentarios