Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe cómo configurar SQL Server Analysis Services para generar automáticamente archivos de volcado de memoria.
Versión del producto original: SQL Server
Número de KB original: 919711
Introducción
En este artículo se describe cómo configurar compilaciones de Microsoft SQL Server Analysis Services (SSAS) 2012 o posteriores para generar automáticamente distintos tipos de archivos de volcado de memoria cuando encuentra excepciones. En el artículo también se describe cómo usar la utilidad Sqldumper.exe para obtener manualmente un archivo de volcado de memoria para el proceso de SQL Server Analysis Services.
Más información
De forma predeterminada, SQL Server Analysis Services genera automáticamente archivos minivolcados cuando se produce una excepción. Para la instalación predeterminada, los archivos minivolcados se escriben en la ubicación predeterminada:
Versión de Analysis Services | Location |
---|---|
2019 | %ProgramFiles%\Microsoft SQL Server\MSAS15.InstanceName\OLAP\log |
2017 | %ProgramFiles%\Microsoft SQL Server\MSAS14.InstanceName\OLAP\log |
2016 | %ProgramFiles%\Microsoft SQL Server MSAS13.InstanceName\OLAP\log |
2014 | %ProgramFiles%\Microsoft SQL Server MSAS12.InstanceName\OLAP\log |
2012 | %ProgramFiles%\Microsoft SQL Server MSAS11.InstanceName\OLAP\log |
Nota:
InstanceName es un marcador de posición para el valor correspondiente de la versión de SQL Server Analysis Services.
La ubicación del registro de la instancia de SQL Server Analysis Services se puede modificar después de la instalación, por lo que puede comprobar la ubicación del registro revisando el archivo de msmdsrv.ini para el SQL Server Analysis Services instalado.
Para determinar el valor correspondiente para el sistema, determine el valor de la clave de registro imagePath, debe contener la ruta de acceso a la ruta de acceso de configuración que contiene el msmdsrv.ini.
Versión de Analysis Services | Subclave del Registro |
---|---|
Instancia predeterminada | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServerOLAPService\ImagePath |
Instancia con nombre | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSOLAP$InstanceName\ImagePath |
Los archivos minivolcados incluirán la siguiente información:
Todas las pilas de subprocesos
Memoria de segundo orden a la que hacen referencia los punteros de la pila
Información sobre el bloque de entorno de proceso (PEB)
Información sobre el bloque de entorno de subprocesos (TEB)
Información sobre los módulos descargados recientemente
Información de estado del subproceso
La sección Excepción del archivo Msmdsrv.ini controla la generación de archivos de volcado de memoria. El archivo de forma predeterminada se encuentra en la %ProgramFiles%\Microsoft SQL Server\MSASxx.InstanceName\OLAP\Config
carpeta . MSASxx es un marcador de posición para la versión correspondiente de SQL Server Analysis Service. Al abrir el archivo en el Bloc de notas, verá una sección de la etiqueta XML de excepción similar a la siguiente:
<Exception>
<CreateAndSendCrashReports>1</CreateAndSendCrashReports>
<CrashReportsFolder/>
<SQLDumperFlagsOn>0x0</SQLDumperFlagsOn>
<SQLDumperFlagsOff>0x0</SQLDumperFlagsOff>
<MiniDumpFlagsOn>0x0</MiniDumpFlagsOn>
<MiniDumpFlagsOff>0x0</MiniDumpFlagsOff>
<MinidumpErrorList>0xC1000000, 0xC1000001, 0xC1000016, 0xC11D0005, 0xC102003F</MinidumpErrorList>
<ExceptionHandlingMode>0</ExceptionHandlingMode>
<CriticalErrorHandling>1</CriticalErrorHandling>
</Exception>
Puede controlar el comportamiento de generar el archivo de volcado de memoria modificando la configuración de esta sección. También puede modificar esta configuración en SQL Server Management Studio. Para obtener más información sobre esta configuración, visite el sitio web de descarga de SQL Server Management Studio: Propiedades del registro.
Deshabilitar el archivo de volcado de memoria automático para Analysis Services
El valor de la configuración CreateAndSendCrashReports determina si se generará un archivo de volcado de memoria. Esta configuración puede tener uno de los valores que se enumeran en la tabla siguiente.
Valor | Descripción |
---|---|
0 | Este valor especifica que Analysis Services no genera ningún archivo de volcado de memoria. Además, se omite el valor de la otra configuración en la sección Excepción. |
1 | Este valor predeterminado habilita el archivo de volcado de memoria. Sin embargo, SQL Server Analysis Services no envía un informe de errores a Microsoft. |
2 | Este valor especifica que SQL Server Analysis Services genera un archivo de volcado de memoria y envía un informe de error a Microsoft. |
Cuando la configuración CreateAndSendCrashReports está establecida en 1 o 2, la otra configuración de la sección Excepción puede controlar el tipo del archivo de volcado de memoria y la información que se debe incluir en el archivo de volcado de memoria.
Configurar SQL Server Analysis Services para generar automáticamente un archivo de volcado completo
Para configurar SQL Server Analysis Services para generar automáticamente un archivo de volcado completo cuando se produce una excepción, puede establecer el valor SQLDumperFlagsOn en 0x34. Además, si desea configurar SQL Server Analysis Services para generar un archivo de volcado completo que incluya la información de identificador, puede establecer el valor SQLDumperFlagsOn en 0x34 y el valor MiniDumpFlagsOn en 0x4. Por ejemplo, la sección Excepción del archivo Msmdsrv.ini puede ser similar a la siguiente:
<Exception>
<CreateAndSendCrashReports>1</CreateAndSendCrashReports>
<CrashReportsFolder/>
<SQLDumperFlagsOn>0x34</SQLDumperFlagsOn>
<SQLDumperFlagsOff>0x0</SQLDumperFlagsOff>
<MiniDumpFlagsOn>0x4</MiniDumpFlagsOn>
<MiniDumpFlagsOff>0x0</MiniDumpFlagsOff>
<MinidumpErrorList>0xC1000000, 0xC1000001, 0xC1000016, 0xC11D0005, 0xC102003F</MinidumpErrorList>
<ExceptionHandlingMode>0</ExceptionHandlingMode>
<CriticalErrorHandling>1</CriticalErrorHandling>
</Exception>
Generar un archivo de volcado completo que incluya información de identificador manualmente
Para solucionar problemas como un servidor que deja de responder (se bloquea), es posible que desee generar un archivo de volcado completo que incluya la información de identificador manualmente. Para ello, puede ejecutar la utilidad Sqldumper.exe en el símbolo del sistema junto con los argumentos siguientes:
Sqldumper.exe PID 0 0x34:0x4 0 PathToDumpFile
Nota:
PID representa el identificador de proceso del proceso de SQL Server Analysis Services. PathToDumpFile representa la carpeta en la que se escribe el archivo de volcado.
Debe ejecutar este comando desde el directorio Compartido donde instaló la instancia, o bien debe especificar la ruta de acceso completa del archivo Sqldumper.exe en el comando .
Versión de Analysis Services | Location |
---|---|
2019 | %ProgramFiles%\Microsoft SQL Server\150\Shared |
2017 | %ProgramFiles%\Microsoft SQL Server\140\Shared |
2016 | %ProgramFiles%\Microsoft SQL Server\130\Shared |
2014 | %ProgramFiles%\Microsoft SQL Server\120\Shared |
2012 | %ProgramFiles%\Microsoft SQL Server\110\Shared |
Por ejemplo, el directorio predeterminado para ejecutar sqldumper.exe para SQL Server Analysis Services 2019 es C:\Program Files\Microsoft SQL Server\1590\Shared
.
Más información
Puede usar la configuración SQLDumperFlagsOn para especificar las distintas marcas de SQLDumper. En la tabla siguiente se enumeran los valores de máscara de bits que puede usar como valor para el parámetro flag.
Nombre Mnemónico | Valor hexadecimal | Descripción |
---|---|---|
SQLDUMPER_DBGBREAK | 0x0001 | Esta marca hace que la utilidad Sqldumper.exe ejecute la llamada API DebugBreak al principio del programa cuando se analizan los parámetros. Normalmente, los profesionales de los Servicios de soporte técnico de Productos de Microsoft no usarán esta marca porque la marca solo se usa para depurar Sqldumper.exe problemas de utilidad. Nota Esta marca se divide en el proceso de Sqldumper.exe. Esta marca no se divide en el proceso que la utilidad Sqldumper.exe está depurando. |
SQLDUMPER_NOMINIDUMP | 0x0002 | Cuando se usa esta marca, la utilidad Sqldumper.exe no genera un archivo de volcado de memoria. Esta marca se usa para probar la utilidad Sqldumper.exe. |
SQLDUMPER_NOWATSON | 0x0004 | Normalmente, esta marca se usa al generar manualmente archivos de volcado de memoria. Esta marca invalida el comportamiento predeterminado de informes de errores. De forma predeterminada, el archivo de volcado de memoria se envía al sitio de informes de errores configurado en el Registro. |
SQLDUMPER_REFERENCED_MEMORY | 0x0008 | Esta marca hace que la utilidad Sqldumper.exe establezca la marca MiniDumpWithIndirectamenteReferencedMemory para el parámetro MiniDumpType cuando llama a la función MiniDumpWritedump. La memoria para punteros (solo un nivel) basadas en pila (parámetros o variables locales) se almacenará en el archivo de volcado de memoria. Las pruebas revelan que determinados parámetros locales que se basan en datos de almacenamiento local de subprocesos (TLS), como el esquema de firma probabilística (PSS) y las estructuras EC no parecen funcionar incluso cuando se establece esta marca. |
SQLDUMPER_ALL_MEMORY | 0x0010 | Esta marca hace que la utilidad Sqldumper.exe establezca la marcaMiniDumpWithFullMemory para MiniDumpType cuando la utilidad llama a la función MiniDumpWriteDump. Este comportamiento es el mismo que el uso del comando .dump /mf en el depurador. Sin embargo, también debe tener la marca SQLDUMPER_DUMP_ALL_THREADS establecida en activado para asegurarse de que se incluyen todas las pilas de subprocesos. |
SQLDUMPER_DUMP_ALL_THREADS | 0x0020 | Esta marca no es necesaria cuando se ejecuta manualmente la utilidad Sqldumper.exe y se especifica un valor de parámetro ThreadId de 0. Un valor de parámetro ThreadId de 0 indica que se deben volcar todos los subprocesos. Si especifica un valor de parámetro ThreadId específico distinto de cero, pero también usa esta marca, todos los subprocesos se escriben en el archivo de volcado de memoria. Esta marca existe porque el comportamiento típico del proceso de Sqlservr.exe es pasar el valor de la propiedad ThreadId actual del subproceso que genera el proceso de Sqlservr.exe. Cuando se produce este comportamiento, la marca es necesaria como opción para volcar todos los subprocesos. |
SQLDUMPER_MATCH_FILE_NAME | 0x0040 | Puede usar esta marca para intentar forzar la utilidad Sqldumper.exe para generar un nombre de archivo de volcado de memoria similar a una convención de nomenclatura específica. Esta convención de nomenclatura específica puede basarse en un nombre de archivo existente. Dado que debe configurar una estructura de memoria especial que contenga el nombre de archivo existente en su propio programa y, a continuación, pasar ese puntero a la utilidad Sqldumper.exe como parámetro SqlInfoPtr, esta marca no es útil al ejecutar manualmente la utilidad Sqldumper.exe. |
SQLDUMPER_SKIP_DW_REG_READ | 0x0080 | Esta marca hace que la utilidad Sqldumper.exe no use el Registro como ruta de acceso para la ejecución del programa Dw15.exe. El programa Dw15.exe se usa para cargar los archivos de volcado en el sitio de informes de errores. |
SQLDUMPER_VERBOSE | 0x0100 | Esta marca puede ser valiosa si no está seguro de los parámetros que la utilidad de Sqldumper.exe cree que se usan como entrada. Cuando se usa esta marca, la utilidad Sqldumper.exe muestra los valores de parámetro y el número de valores de parámetro especificados desde la línea de comandos. |
SQLDUMPER_WAIT_AT_EXIT | 0x0200 | Puede usar esta marca para asociar un depurador a la utilidad Sqldumper.exe. Puede usar este depurador para solucionar cualquier problema con la utilidad Sqldumper.exe. Estos problemas pueden ocurrir especialmente cuando la utilidad de Sqldumper.exe se genera por Sqlservr.exe o por otro programa. Al establecer esta marca, la utilidad Sqldumper.exe llama a la función SleepEx durante 15 segundos justo antes de que exista el programa Sqldumper.exe y después de que finalicen todas las demás operaciones. |
SQLDUMPER_FILTERED | 0x0800 | Puede usar esta marca para generar un archivo de volcado filtrado. SQL Server Analysis Services aún no admite esta marca. |
Puede usar la configuración MiniDumpFlagsOn para proporcionar marcas de minivolcado. En la tabla siguiente se enumeran las marcas de minivolcado disponibles:
Opción | Value | Descripción |
---|---|---|
MiniDumpNormal | 0x00000000 | Cree un archivo de minivolcado típico que use sobrescribir. |
MiniDumpWithDataSegs | 0x00000001 | Incluya un segmento de datos para todos los módulos cargados. Marca que los módulos cargados recuperan variables globales. |
MiniDumpWithFullMemory | 0x00000002 | Cree un archivo de volcado de usuario completo. Se deshabilita un archivo de volcado filtrado cuando se establece la marca. |
MiniDumpWithHandleData | 0x00000004 | Incluir información de identificador. |
MiniDumpFilterMemory | 0x00000010 | Se debe examinar la memoria del almacén de copia de seguridad y la pila para ver las referencias de puntero a los módulos de la lista de módulos. El usuario no debe usar esta marca para SQL Server Analysis Services. |
MiniDumpWithUnloadedModules | 0x00000020 | Esta marca proporciona información sobre los módulos descargados recientemente. Solo Microsoft Windows XP y Microsoft Windows Server 2003 admiten esta marca. El sistema operativo no mantiene la información de los módulos descargados hasta Windows Server 2003 Service Pack 1 (SP1) y Windows XP Service Pack 2 (SP2). |
MiniDumpWithIndirectlyReferencedMemory | 0x00000040 | Incluya páginas que tengan datos a los que hacen referencia las variables locales o por otra memoria de pila. |
MiniDumpFilterModulePaths | 0x00000080 | Si la ruta de acceso del módulo se quita de la información del módulo, no use esta marca. |
MiniDumpWithProcessThreadData | 0x00000100 | Esta marca proporciona información sobre el bloque de entorno de proceso (PEB) y el bloque de entorno de subprocesos (TEB). |
MiniDumpWithPrivateReadWriteMemory | 0x00000200 | Examine el espacio de direcciones virtuales para que se incluyan otros tipos de memoria. |
MiniDumpWithoutOptionalData | 0x00000400 | Reduzca los datos que se volcarán eliminando las regiones de memoria que no son necesarias. Haga esto para cumplir los criterios especificados para el archivo de volcado de memoria. El uso de esta marca puede evitar el volcado de memoria que puede contener datos privados para el usuario. Sin embargo, esto no es una garantía de que no haya información privada presente. No use esta marca. |
MiniDumpWithFullMemoryInfo | 0x00000800 | Incluya información descriptiva de la región de memoria enumerada. |
MiniDumpWithThreadInfo | 0x00001000 | Incluir información de estado del subproceso. |
MiniDumpWithCodeSegs | 0x00002000 | Incluya código y secciones relacionadas con el código para todos los módulos cargados. |
Referencias
Cómo usar la utilidad Sqldumper.exe para generar un archivo de volcado en SQL Server