SQLdiag (utilidad)

La utilidad SQLdiag es una herramienta de recopilación de diagnósticos para fines generales que se puede ejecutar como una aplicación de consola o como un servicio. Puede usar SQLdiag para recopilar archivos de datos y registros de SQL Server y otros tipos de servidores, y para supervisar los servidores posteriormente o para solucionar problemas específicos de los mismos. SQLdiag se ha diseñado para acelerar y simplificar la recopilación de información de diagnóstico para los Servicios de soporte técnico de Microsoft.

[!NOTA]

Desde SQL Server 2005, la utilidad SQLdiag ha cambiado considerablemente. Los argumentos de la línea de comandos para esta utilidad no son compatibles con SQL Server 2000. Esta utilidad podría modificarse y las aplicaciones o scripts que dependen del comportamiento o de los argumentos de esta línea de comandos podrían no funcionar correctamente en versiones posteriores.

SQLdiag puede recopilar los siguientes tipos de información de diagnóstico:

  • Registros de rendimiento de Windows

  • Registros de eventos de Windows

  • Seguimientos de SQL Server Profiler

  • Información de bloqueo de SQL Server

  • Información de configuración de SQL Server

Puede especificar los tipos de información que desea que SQLdiag recopile editando el archivo de configuración SQLDiag.xml, que se describe en la siguiente sección.

Sintaxis

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 | via } ]
       [/Q] [/G] [/R] [/U] [/L] [/X] }
     |
     { [START | STOP | STOP_ABORT] }
     |
     { [START | STOP | STOP_ABORT] /A SQLdiag_application_name }

Argumentos

  • /?
    Muestra información de uso.

  • /Iconfiguration_file
    Establece el archivo de configuración que utilizará SQLdiag. De forma predeterminada, /I está establecido en SQLDiag.Xml.

  • /Ooutput_folder_path
    Redirige la salida de SQLdiag a la carpeta especificada. Si no se especifica la opción /O, la salida de SQLdiag se escribe en una subcarpeta denominada SQLDIAG en la carpeta de inicio de SQLdiag. Si no existe la carpeta SQLDIAG, SQLdiag intenta crearla.

    [!NOTA]

    La ubicación de la carpeta de salida es relativa a la ubicación de la carpeta Support que se puede especificar con /P. Para definir una ubicación completamente distinta de la carpeta de salida, especifique la ruta de acceso completa del directorio para /O.

  • /Psupport_folder_path
    Define la ruta de la carpeta Support. De forma predeterminada, /P está establecido en la carpeta en que reside el ejecutable SQLdiag. La carpeta Support contiene archivos de compatibilidad de SQLdiag tales como el archivo de configuración XML, los scripts Transact-SQL y otros archivos que utiliza la utilidad durante la recopilación de diagnósticos. Si usa esta opción para especificar una ruta de acceso alternativa a los archivos de compatibilidad, SQLdiag copiará automáticamente los archivos de compatibilidad que necesita en la carpeta especificada, si todavía no existen.

    [!NOTA]

    Para establecer la carpeta actual como ruta de acceso de la carpeta Support, especifique %cd% en la línea de comandos, tal y como se indica a continuación:

    SQLDIAG /P %cd%

  • /Noutput_folder_management_option
    Establece si SQLdiag sobrescribe o cambia el nombre de la carpeta de salida cuando se inicia. Opciones disponibles:

    1 = Sobrescribe la carpeta de salida (valor predeterminado)

    2 = Cuando se inicia SQLdiag, cambia el nombre de la carpeta de salida a SQLDIAG_00001, SQLDIAG_00002, etc. Una vez cambiado el nombre de la carpeta de salida actual, SQLdiag escribe la salida en la carpeta de salida predeterminada SQLDIAG.

    [!NOTA]

    SQLdiag no anexa salida a la carpeta de salida actual cuando se inicia. Sólo puede sobrescribir la carpeta de salida predeterminada (opción 1) o cambiar el nombre de la carpeta (opción 2) y, a continuación, escribir la salida en la nueva carpeta de salida predeterminada denominada SQLDIAG.

  • /Mmachine1 [ machine2machineN] | @machinelistfile
    Invalida los equipos especificados en el archivo de configuración. De forma predeterminada, el archivo de configuración es SQLDiag.Xml, o se establece con el parámetro /I. Al especificar más de un equipo, separe cada nombre de equipo con un espacio.

    Con @machinelistfile se especifica un nombre de archivo de la lista de equipos que se va a almacenar en el archivo de configuración.

  • /Cfile_compression_type
    Establece el tipo de compresión de archivo que se utiliza en los archivos de la carpeta de salida de SQLdiag. Opciones disponibles:

    0 = ninguno (valor predeterminado)

    1 = utiliza la compresión NTFS

  • /B [+]start_time
    Especifica la fecha y la hora en que se empiezan a recopilar los datos de diagnóstico en el siguiente formato:

    AAAAMMDD_HH:MM:SS

    La hora se especifica usando el reloj de 24 horas. Por ejemplo, 2:00 p.m. se debe especificar como 14:00:00.

    Utilice + sin la fecha (sólo HH:MM:SS) para especificar una hora que sea relativa a la fecha y la hora actual. Por ejemplo, si especifica /B +02:00:00, SQLdiag esperará 2 horas antes de empezar a recopilar información.

    No inserte un espacio entre + y el valor de start_time especificado.

    Si especifica una hora de inicio que se encuentra en el pasado, SQLdiag cambia forzosamente la fecha de inicio para que la fecha y la hora de inicio se encuentren en el futuro. Por ejemplo, si especifica /B 01:00:00 y la hora actual es 08:00:00, SQLdiag cambia forzosamente la fecha de inicio para que sea el día siguiente.

    Tenga en cuenta que SQLdiag utiliza la hora local del equipo en el que se ejecuta la utilidad.

  • /E [+]stop_time
    Especifica la fecha y la hora en que se dejan de recopilar los datos de diagnóstico en el siguiente formato:

    AAAAMMDD_HH:MM:SS

    La hora se especifica usando el reloj de 24 horas. Por ejemplo, 2:00 p.m. se debe especificar como 14:00:00.

    Utilice + sin la fecha (sólo HH:MM:SS) para especificar una hora que sea relativa a la fecha y la hora actual. Por ejemplo, si especifica una hora de inicio y una hora de finalización utilizando /B +02:00:00 /E +03:00:00, SQLdiag espera 2 horas para empezar a recopilar información y después recopila información durante 3 horas antes de parar y salir. Si no se especifica /B, SQLdiag empieza a recopilar información de diagnóstico inmediatamente y acaba en la fecha y la hora especificadas por /E.

    No inserte un espacio entre + y el valor de start_time o end_time especificado.

    Tenga en cuenta que SQLdiag utiliza la hora local del equipo en el que se ejecuta la utilidad.

  • /A SQLdiag_application_name
    Permite la ejecución de varias instancias de la utilidad SQLdiag en la misma instancia de SQL Server.

    Cada aplicación de SQLdiag_application_name identifica una instancia distinta de SQLdiag. No existe ninguna relación entre una instancia de SQLdiag_application_name y un nombre de instancia de SQL Server.

    SQLdiag_application_name puede utilizarse para iniciar o detener una instancia específica del servicio SQLdiag.

    Por ejemplo:

    SQLDIAG START /A SQLdiag_application_name

    También se puede utilizar con la opción /R para registrar una instancia específica de SQLdiag como servicio. Por ejemplo:

    SQLDIAG /R /ASQLdiag_application_name

    [!NOTA]

    SQLdiag agrega el prefijo DIAG$ de forma automática al nombre de instancia especificado para SQLdiag_application_name. De este modo, se proporciona un nombre de servicio significativo si se registra SQLdiag como servicio.

  • /T { tcp [ ,port ] | np | lpc | via }
    Se conecta a una instancia de SQL Server con el protocolo especificado.

    • tcp [, port]
      TCP/IP (Protocolo de control de transmisión/protocolo de Internet). Si lo desea, puede especificar un número de puerto para la conexión.

    • np
      Canalizaciones con nombre. De manera predeterminada, la instancia predeterminada de SQL Server escucha en la canalización con nombre: \\.\pipe\sql\query y en \\.\pipe\MSSQL$<instancename>\sql\query para una instancia con nombre. No puede conectar a una instancia de SQL Server usando un nombre de canalización alternativa.

    • lpc
      Llamada a procedimiento local. Este protocolo de memoria compartida está disponible si el cliente se está conectando a una instancia de SQL Server en el mismo equipo.

    • via
      Protocolo VIA (Adaptador de interfaz virtual). Úselo para el hardware VIA. Para obtener más información acerca de cómo usar el protocolo VIA, póngase en contacto con su proveedor de hardware.

    Para obtener más información acerca de los protocolos, vea Elegir un protocolo de red.

  • /Q
    Ejecuta SQLdiag en modo silencioso. /Q suprime todos los mensajes, tales como los mensajes de contraseña.

  • /G
    Ejecuta SQLdiag en modo genérico. Cuando se especifica /G, al iniciarse SQLdiag no aplica las comprobaciones de conexión de SQL Server ni comprueba si el usuario es miembro de la función fija de servidor sysadmin. En su lugar, SQLdiag consulta con Windows para determinar si un usuario tiene los derechos adecuados para recopilar cada diagnóstico solicitado.

    Si no se especifica /G, SQLdiag comprueba si el usuario es miembro del grupo Administradores de Windows y no recopila diagnósticos de SQL Server si el usuario no es miembro del grupo Administradores.

  • /R
    Registra SQLdiag como servicio. Cualquier argumento de la línea de comandos que se especifique cuando registre SQLdiag como servicio se guarda para futuras ejecuciones del servicio.

    Cuando se registra SQLdiag como servicio, el nombre predeterminado del servicio es SQLDIAG. Puede modificar el nombre de servicio con el argumento /A.

    Use el argumento de línea de comandos START para iniciar el servicio:

    SQLDIAG START

    También puede usar el comando net start para iniciar el servicio:

    net start SQLDIAG

  • /U
    Elimina SQLdiag del registro como servicio.

    También deberá usar el argumento /A si elimina del Registro una instancia con nombre de SQLdiag.

  • /L
    Ejecuta SQLdiag en modo continuo cuando se especifica además una hora de inicio o de finalización con los argumentos /B o /E respectivamente. SQLdiag se reinicia automáticamente después de que se detenga la recopilación de diagnósticos debido a un cierre programado. Por ejemplo, utilizando los argumentos /E o /X.

    [!NOTA]

    SQLdiag omite el argumento /L si no se especifica una hora de inicio o de finalización con los argumentos de línea de comandos /B y /E.

    El uso de /L no implica el modo de servicio. Para usar /L cuando ejecute SQLdiag como servicio, especifíquelo en la línea de comandos al registrar el servicio.

  • /X
    Ejecuta SQLdiag en modo de instantánea. SQLdiag toma una instantánea de todos los diagnósticos configurados y después se cierra automáticamente.

  • START | STOP | STOP_ABORT
    Inicia o detiene el servicio SQLdiag. STOP_ABORT fuerza el servicio a cerrarse lo más rápido posible sin terminar la recopilación de diagnósticos que está realizando.

    Cuando se emplean estos argumentos de control del servicio, deben ser los primeros argumentos utilizados en la línea de comandos. Por ejemplo:

    SQLDIAG START

    El argumento /A, que especifica una instancia con nombre de SQLdiag, es el único que se puede utilizar con START, STOP o STOP_ABORT para controlar una instancia específica del servicio SQLdiag. Por ejemplo:

    SQLDIAG START /ASQLdiag_application_name

Requisitos de seguridad

A menos que SQLdiag se ejecute en modo genérico (especificando el argumento /G de la línea de comandos), el usuario que ejecuta SQLdiag debe ser miembro del grupo Administradores de Windows y de la función fija de servidor sysadmin de SQL Server. De forma predeterminada, SQLdiag conecta con SQL Server utilizando la autenticación de Windows, pero también admite la autenticación de SQL Server.

Consideraciones de rendimiento

Los efectos sobre el rendimiento de la ejecución de SQLdiag dependen del tipo de datos de diagnóstico cuya recopilación se haya configurado. Por ejemplo, si ha configurado SQLdiag para recopilar información de seguimiento de SQL Server Profiler, cuanto mayor sea el número de clases de eventos de las que decida realizar un seguimiento, más se verá afectado el rendimiento del servidor.

El impacto sobre el rendimiento de la ejecución de SQLdiag es aproximadamente equivalente a la suma de los costos de recopilar los diagnósticos configurados de forma separada. Por ejemplo, si recopila un seguimiento con SQLdiag, incurrirá en el mismo costo de rendimiento que si lo recopila con SQL Server Profiler. El impacto que el uso de SQLdiag tiene sobre el rendimiento es mínimo.

Espacio en disco requerido

Como SQLdiag puede recopilar diferentes tipos de información de diagnóstico, el espacio libre en disco necesario para ejecutar SQLdiag varía. La cantidad de información de diagnóstico recopilada depende de la naturaleza y del volumen de la carga de trabajo que el servidor está procesando y puede oscilar entre unos pocos megabytes o varios gigabytes.

Archivos de configuración

Durante el inicio, SQLdiag lee el archivo de configuración y los argumentos de la línea de comandos que se han especificado. Puede especificar los tipos de información de diagnóstico que SQLdiag recopila en el archivo de configuración. De forma predeterminada, SQLdiag utiliza el archivo de configuración SQLDiag.Xml, que se extrae cada vez que se ejecuta la herramienta y se encuentra ubicado en la carpeta de inicio de la utilidad SQLdiag. El archivo de configuración utiliza el esquema XML SQLDiag_schema.xsd que también se extrae en el directorio de inicio de la utilidad desde el archivo ejecutable cada vez que se ejecuta SQLdiag.

Editar los archivos de configuración

Puede copiar y editar SQLDiag.Xml para cambiar los tipos de datos de diagnóstico que SQLdiag recopila. Cuando edite el archivo de configuración, utilice siempre un editor XML que pueda validar dicho archivo comparándolo con su esquema XML, como por ejemplo, Management Studio. No debe editar SQLDiag.Xml directamente. En su lugar, realice una copia de SQLDiag.Xml y cambie su nombre por otro nombre de archivo en la misma carpeta. A continuación, edite el nuevo archivo y utilice el argumento /I para pasarlo a SQLdiag.

Editar el archivo de configuración cuando SQLdiag se ejecuta como servicio

Si ya ha ejecutado SQLdiag como servicio y necesita editar el archivo de configuración, elimine el servicio SQLDIAG del registro especificando el argumento /U en la línea de comandos y después vuelva a registrar el servicio utilizando el argumento /R en la línea de comandos. Si elimina el servicio del registro y lo vuelve a registrar, se eliminará la información de configuración antigua que se almacenó en caché en el Registro de Windows.

Carpeta de salida

Si no especifica una carpeta de salida con el argumento /O, SQLdiag crea una subcarpeta con el nombre SQLDIAG en la carpeta SQLdiag. Para la recopilación de información de diagnóstico que implique un elevado volumen de seguimientos, como SQL Server Profiler, asegúrese de que la carpeta de salida esté en una unidad local con suficiente espacio para almacenar la salida del diagnóstico solicitado.

Cuando se reinicia SQLdiag, sobrescribe el contenido de la carpeta de salida. Para evitarlo, especifique /N 2 en la línea de comandos.

Proceso de recopilación de datos

Cuando SQLdiag se inicia, realiza las comprobaciones de inicialización necesarias para recopilar los datos de diagnóstico que se han especificado en SQLDiag.Xml. Este proceso puede tardar varios segundos. Después de que SQLdiag haya empezado a recopilar datos de diagnóstico cuando se ejecutan como aplicación de consola, se muestra un mensaje que informa de que se ha iniciado la recopilación de SQLdiag y de que puede pulsar CTRL+C para detenerla. Cuando SQLdiag se ejecuta como servicio, se escribe un mensaje similar en el registro de eventos de Windows.

Si utiliza SQLdiag para diagnosticar un problema que puede reproducir, espere hasta que reciba este mensaje antes de reproducir el problema en el servidor.

SQLdiag recopila la mayor parte de los datos de diagnóstico en paralelo. Toda la información de diagnóstico se recopila conectando con herramientas, como la utilidad sqlcmd de SQL Server o el procesador de comandos de Windows, excepto cuando la información se obtiene de los registros de rendimiento y de los registros de eventos. SQLdiag utiliza un subproceso de trabajo para supervisar la recopilación de datos de diagnóstico de esas otras herramientas, a menudo esperando simultáneamente a que varias herramientas completen su proceso. Durante el proceso de recopilación, SQLdiag dirige la salida de cada diagnóstico a la carpeta de salida.

Detener la recopilación de datos

Cuando SQLdiag empieza a recopilar datos de diagnóstico, continua haciéndolo a menos que usted lo detenga o que se configure para que se detenga en una hora especificada. Puede configurar SQLdiag para que se detenga en una hora especificada mediante el argumento /E, que permite especificar una hora de detención, o mediante el argumento /X, que hace que SQLdiag se ejecute en el modo de instantánea.

Cuando SQLdiag se detenga, detendrá todos los diagnósticos que haya iniciado. Por ejemplo, detiene los seguimientos de SQL Server Profiler que estaba recopilando, deja de ejecutar los scripts de Transact-SQL que estaba ejecutando y detiene los subprocesos que ha creado durante la recopilación de datos. Una vez completada la recopilación de datos de diagnóstico, SQLdiag se cierra.

[!NOTA]

No se permite pausar el servicio SQLdiag. Si intenta pausar el servicio SQLdiag, se detiene cuando termina de recopilar los diagnósticos que estaba recopilando cuando se pausó. Si reinicia SQLdiag después de detenerlo, la aplicación se reinicia y sobrescribe el contenido de la carpeta de salida. Para evitar sobrescribir la carpeta de salida, especifique /N 2 en la línea de comandos.

Para detener SQLdiag cuando se ejecuta como aplicación de consola

Si está ejecutando SQLdiag como aplicación de consola, presione CTRL+C en la ventana de la consola en la que se está ejecutando SQLdiag para que se detenga. Tras pulsar CTRL+C, se muestra un mensaje en la ventana de la consola que le informa de que la recopilación de datos de SQLDiag está finalizando y de que debe esperar hasta que se cierre el proceso, lo que puede tardar varios minutos.

Presione Ctrl+C dos veces para terminar todos los procesos de diagnóstico secundarios y cierre la aplicación inmediatamente.

Para detener SQLdiag cuando se ejecuta como servicio

Si ejecuta SQLdiag como servicio, ejecute SQLDiag STOP en la carpeta de inicio de SQLdiag para detenerlo.

Si ejecuta varias instancias de SQLdiag en el mismo equipo, también puede pasar el nombre de instancia de SQLdiag a la línea de comandos cuando detenga el servicio. Por ejemplo, para detener una instancia de SQLdiag denominada Instance1, utilice la siguiente sintaxis:

SQLDIAG STOP /A Instance1

[!NOTA]

/A es el único argumento de línea de comandos que se puede utilizar con START, STOP o STOP_ABORT. Si necesita especificar una instancia con nombre de SQLdiag con uno de los verbos de control del servicio, especifique /A tras el verbo de control en la línea de comandos, tal y como se muestra en el ejemplo de sintaxis anterior. Cuando se emplean estos verbos de control, deben ser los primeros argumentos utilizados en la línea de comandos.

Para detener el servicio lo más rápido posible, ejecute SQLDIAG STOP_ABORT en la carpeta de inicio de la utilidad. Este comando anula todas las recopilaciones de diagnósticos en curso sin esperar a que terminen de ejecutarse.

[!NOTA]

Use SQLDiag STOP o SQLDIAG STOP_ABORT para detener el servicio SQLdiag. No utilice la consola Servicios de Windows para detener SQLdiag u otros servicios de SQL Server.

Iniciar y detener automáticamente SQLdiag

Para iniciar y detener automáticamente la recopilación de datos de diagnóstico a una hora especificada, utilice los argumentos /Bstart_time y /Estop_time (con la notación de 24 horas). Por ejemplo, si está solucionando un problema que aparece a las 02:00:00 aproximadamente, puede configurar SQLdiag para empezar a recopilar automáticamente datos de diagnóstico a las 01:00 y dejar de recopilarlos a las 03:00:00. Utilice los argumentos /B y /E para especificar la hora de inicio y de finalización. Utilice la notación de 24 horas para especificar una hora y una fecha de inicio y de finalización exactas con el formato AAAAMMDD_HH:MM:SS. Para especificar una hora de inicio o detención relativa, anteponga a la hora de inicio o de detención + y omita la porción de la fecha (AAAAMMDD_) como se muestra en el siguiente ejemplo, lo que hace que SQLdiag espere 1 hora antes de empezar a recopilar información y después recopila la información durante 3 horas hasta que se detiene y se cierra:

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

Cuando se especifica un valor de start_time relativo, SQLdiag se inicia a una hora relativa respecto a la hora y la fecha actuales. Cuando se especifica un valor de end_time relativo, SQLdiag finaliza a una hora relativa respecto al valor de start_time especificado. Si la hora o la fecha de inicio y de finalización que ha especificado corresponden al pasado, SQLdiag cambiará forzosamente la fecha de inicio para que la fecha y la hora de inicio correspondan al futuro.

Esto tiene importantes implicaciones para las fechas de inicio y de finalización que elija. Considere el ejemplo siguiente:

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

Si la hora actual es 08:00, la hora final pasa antes de que empiece la recopilación de diagnóstico. Como SQLdiag ajusta automáticamente las fechas de inicio y de finalización al día siguiente cuando corresponden al pasado, en este ejemplo, la recopilación de diagnósticos se inicia a las 09:00 de hoy (se ha especificado una hora de inicio relativa con +) y continúa hasta las 08:30 del día siguiente.

Detener y reiniciar SQLdiag para que recopile diagnósticos diariamente

Para recopilar un conjunto de diagnósticos especificado diariamente sin tener que iniciar y detener manualmente SQLdiag, utilice el argumento /L. El argumento /L hace que SQLdiag se ejecute de forma continua reiniciándose automáticamente después de un cierre programado. Cuando se especifica /L y SQLdiag se detiene porque ha llegado la hora de finalización especificada con el argumento /E, o se detiene porque se está ejecutando en el modo de instantánea utilizando el argumento /X, SQLdiag se reinicia en vez de salir.

El siguiente ejemplo especifica que SQLdiag se ejecuta en modo continuo para que se reinicie automáticamente después de recopilar datos de diagnóstico entre las 03:00:00 y las 05:00:00.

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

El siguiente ejemplo especifica que SQLdiag se ejecute en modo continuo para que se reinicie automáticamente después de tomar una instantánea de datos de diagnóstico a las 03:00:00.

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

Ejecutar SQLdiag como servicio

Si desea utilizar SQLdiag para recopilar datos de diagnóstico durante largos períodos de tiempo durante los cuales puede necesitar cerrar sesión en el equipo en el que se está ejecutando SQLdiag, puede ejecutarlo como servicio.

Para registrar SQLDiag para que se ejecute como servicio

Puede registrar SQLdiag para que se ejecute como servicio especificando el argumento /R en la línea de comandos. De esta forma se registra SQLdiag para que se ejecute como servicio. El nombre de servicio de SQLdiag es SQLDIAG. Cualquier otro argumento que especifique en la línea de comandos cuando registre SQLDiag como servicio se conservará y se reutilizará cuando se inicie el servicio.

Para cambiar el nombre predeterminado del servicio SQLDIAG, utilice el argumento de línea de comandos /A. SQLdiag agrega el prefijo DIAG$ de forma automática al nombre de instancia de SQLdiag especificado con /A para crear nombres de servicio significativos.

Para eliminar el servicio SQLDIAG del registro

Para eliminar el servicio del registro, especifique el argumento /U. Si elimina SQLdiag del Registro como servicio, también se eliminan las claves del Registro de Windows.

Para iniciar o reiniciar el servicio SQLDIAG

Para iniciar o reiniciar el servicio SQLDIAG, ejecute SQLDiag START desde la línea de comandos.

Si ejecuta varias instancias de SQLdiag con el argumento /A, también puede pasar el nombre de instancia de SQLdiag a la línea de comandos cuando inicie el servicio. Por ejemplo, para iniciar una instancia de SQLdiag denominada Instance1, utilice la siguiente sintaxis:

SQLDIAG START /A Instance1

También puede usar el comando net start para iniciar el servicio SQLDIAG.

Cuando se reinicia SQLdiag, sobrescribe el contenido de la carpeta de salida actual. Para evitarlo, especifique /N 2 en la línea de comandos para cambiar el nombre de la carpeta de salida cuando se inicie la utilidad.

No se permite pausar el servicio SQLdiag.

Ejecutar varias instancias de SQLdiag

Para ejecutar varias instancias de SQLdiag en el mismo equipo, especifique /ASQLdiag_application_name en la línea de comandos. Resulta útil para recopilar distintos conjuntos de diagnósticos de la misma instancia de SQL Server de forma simultánea. Por ejemplo, puede configurar una instancia con nombre de SQLdiag para que ejecute una recopilación de datos moderada de forma constante. De este modo, si se produce un problema específico en SQL Server, puede ejecutar la instancia predeterminada de SQLdiag para recopilar diagnósticos para ese problema o para recopilar un conjunto de diagnósticos que requieren los servicios de soporte al cliente de Microsoft para diagnosticar un problema.

Recopilar datos de diagnóstico de instancias de SQL Server agrupadas

SQLdiag permite recopilar datos de diagnóstico de instancias de SQL Server agrupadas. Para recopilar diagnósticos de instancias de SQL Server agrupadas, asegúrese de que se especifica "." para el atributo name del elemento <Machine> en el archivo de configuración SQLDiag.Xml y no especifique el argumento /G en la línea de comandos. De forma predeterminada, se especifica "." para el atributo name del archivo de configuración y se desactiva el argumento /G. Normalmente, cuando se realiza la recopilación desde una instancia de SQL Server agrupada, no es necesario editar el archivo de configuración ni cambiar los argumentos de la línea de comandos.

Si se especifica "." como nombre del equipo, SQLdiag detecta que se está ejecutando en un clúster y recupera simultáneamente información de diagnóstico de todas las instancias virtuales de SQL Server instaladas en el clúster. Si desea recopilar información de diagnóstico sólo de una de las instancias virtuales de SQL Server que se ejecutan en el equipo, especifique ese servidor virtual de SQL Server para el atributo name del elemento <Machine> de SQLDiag.Xml.

[!NOTA]

Para recopilar información de seguimiento de SQL Server Profiler desde instancias agrupadas de SQL Server, deben habilitarse los recursos compartidos con fines administrativos (ADMIN$) en el clúster.

Vea también

Conceptos