MSSQLSERVER_855
Se aplica a:SQL Server
Detalles
Atributo | Value |
---|---|
Nombre de producto | SQL Server |
Id. de evento | 855 |
Origen de eventos | MSSQLSERVER |
Componente | SQLEngine |
Nombre simbólico | BAD_MEMORY_OUTSIDE_BPOOL |
Texto del mensaje | Se detectaron daños en la memoria de hardware que no pueden corregirse. El sistema puede volverse inestable. Compruebe el registro de eventos de Windows para obtener más detalles. |
Explicación
Este mensaje indica que SQL Server detectó una página de memoria dañada en un objeto almacenado en caché fuera del grupo de búferes. Este mensaje se genera en sistemas que admiten la capacidad de recuperarse de errores de memoria. SQL Server no se puede recuperar de estos escenarios y registra este mensaje.
Acción del usuario
Debe realizar comprobaciones de hardware o del sistema para determinar si existen problemas de CPU o de memoria. Asegúrese de que se han aplicado todos los controladores del sistema, las actualizaciones del sistema operativo y las actualizaciones de hardware. Considere la posibilidad de ejecutar los diagnósticos del fabricante del hardware, incluidas pruebas relacionadas con la memoria. Siempre que vea este error, considere también la posibilidad de ejecutar DBCC CHECKDB
en todas las bases de datos de esta instancia.
Más información
En los equipos con hardware más reciente que ejecutan Windows Server 2012 o una versión posterior, el hardware puede notificar al sistema operativo y a las aplicaciones de que las páginas de memoria (páginas del sistema operativo) están marcadas como dañadas o con errores. Las aplicaciones como SQL Server pueden registrar estas notificaciones de páginas de memoria dañadas mediante el siguiente conjunto de API:
GetMemoryErrorHandlingCapabilities
RegisterBadMemoryNotification
BadMemoryCallbackRoutine
SQL Server agrega compatibilidad para estas notificaciones en Microsoft SQL Server 2012 (11.x) y en versiones posteriores. Durante el inicio de SQL Server, SQL Server comprueba si el hardware es compatible con esta nueva característica. Aparte de esto, recibirá el siguiente mensaje en el registro de errores:
<Datetime> Server Machine admite la recuperación de errores de memoria. La protección de memoria SQL está habilitada para recuperarse si se daña la memoria.
Actualmente, solo el grupo de búferes entra en acción cuando SQL Server recibe estas notificaciones. Al recibirlas, SQL Server tiene que recorrer en iteración todo el grupo de búferes y descubrir la dirección de cada búfer asignado. Después, SQL Server usa la API QueryWorkingSetEX
para comprobar si alguna de las páginas de memoria que respaldan la página de datos está marcada como dañada. La estructura de salida PSAPI_WORKING_SET_EX_BLOCK
que corresponde a esta página de memoria tendrá el elemento "Bad" establecido en 1 si se ha producido algún daño.
Si esa página de datos o ese grupo de búferes no se han modificado o no están procesando la E/S, SQL Server puede descartar y anular la confirmación de la página de datos. Después, SQL Server registra el mensaje siguiente:
SQL Server ha detectado daños en la memoria de hardware en la base de datos "%ls", id. de archivo: %u; id. de página: %u; dirección de memoria: 0x%I64x y ha recuperado correctamente la página.
Cuando las consultas requieran esa página de datos de nuevo, el grupo de búferes puede volver a leerla desde el disco y devolver su contenido al grupo de búferes. También es posible que la versión en disco de la página esté en un estado dañado. En ese caso, SQL Server puede registrar otros errores, como el error 824.
Si el grupo de búferes no usa la página dañada, pero sí la usa algún otro objeto o estructura almacenados en caché, SQL Server registra el siguiente mensaje:
Se detectaron daños en la memoria de hardware que no pueden corregirse. El sistema puede volverse inestable. Compruebe el registro de eventos de Windows para obtener más detalles.
Si el servidor informa de errores de memoria, debe ponerse en contacto con el fabricante del hardware del equipo y realizar las acciones adecuadas, como ejecutar diagnósticos de memoria, actualizar el BIOS y el firmware, y reemplazar los módulos de memoria dañados.
Puede usar la marca de seguimiento 849 de SQL Server para evitar que SQL Server se registre con el sistema operativo para recibir notificaciones de errores de memoria. Pero tenga en cuenta que la habilitación de la marca de seguimiento 849 impedirá que SQL Server reciba notificaciones de memoria dañada del sistema operativo. Por lo tanto, no se recomienda usar esta marca de seguimiento en circunstancias normales.
Además, tenga en cuenta que, de forma predeterminada, SQL Server recibirá estas notificaciones en el hardware compatible.
También debe tener presente que, cuando SQL Server registra estas notificaciones de errores de memoria, el proceso del sistema de escritura diferida no realiza comprobaciones de página constantes. Para obtener más información sobre las comprobaciones de páginas constantes, vea Procedimiento para solucionar el error Msg 832 (la página constante ha cambiado) en SQL Server.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de