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.
Se aplica a:SQL Server
Detalles
Atributo | Valor |
---|---|
Nombre del producto | Servidor SQL |
Id. de evento | 823 |
Origen de eventos | MSSQLSERVER |
Componente | SQLEngine |
Nombre simbólico | B_HARDERR |
Texto del mensaje | El sistema operativo ha devuelto el error %ls en SQL Server durante %S_MSG en el desplazamiento %#016I64x del archivo '%ls'. Encontrará más detalles en los mensajes adicionales del registro de errores de SQL Server y el registro de eventos del sistema. Se trata de una condición de error grave de nivel de sistema que amenaza a la integridad de la base de datos y que debe corregirse inmediatamente. Realice una comprobación completa de coherencia de la base de datos (DBCC CHECKDB). Este error puede deberse a muchos factores. Para obtener más información vea los Libros en pantalla de SQL Server. |
Explicación
SQL Server usa las API de Windows (por ejemplo, ReadFile, WriteFile, ReadFileScatter y WriteFileGather) para realizar operaciones de E/S de archivos. Una vez que SQL Server realiza estas operaciones de E/S, comprueba si hay condiciones de error asociadas a estas llamadas API. Si se producen un error del sistema operativo en las llamadas API, SQL Server notifica el error 823.
El mensaje del error 823 contiene la siguiente información:
- Archivo de base de datos en el que se realizó la operación de E/S.
- El desplazamiento en el archivo donde se ha intentado la operación de E/S. Es el desplazamiento de bytes físico desde el inicio del archivo. Dividir este número en 8192 proporciona el número de página lógico que se ve afectado por el error.
- Indica si la operación de E/S es una solicitud de lectura o escritura.
- El código de error del sistema operativo y la descripción del error entre paréntesis.
Error del sistema operativo: Una llamada api de Windows de lectura o escritura no se realiza correctamente y SQL Server encuentra un error del sistema operativo relacionado con la llamada a la API de Windows. El siguiente mensaje es un ejemplo de un error 823:
Error: 823, Severity: 24, State: 2.
2010-03-06 22:41:19.55 spid58 The operating system returned error 1117 (The request could not be performed because of an I/O device error.) to SQL Server during a read at offset 0x0000002d460000 in file 'e:\program files\Microsoft SQL Server\mssql\data\mydb.MDF'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe, system-level error condition that threatens database integrity and must be corrected immediately. It is recommended to complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
Es posible que vea errores de la instrucción DBCC CHECKDB en la base de datos asociada al archivo en el mensaje de error. Puede ejecutar la instrucción DBCC CHECKDB cuando vea un error 823. Si la instrucción DBCC CHECKDB no notifica ningún error, es probable que tenga un problema intermitente del sistema o un problema de disco.
Es posible que se escriba información de diagnóstico adicional para errores 823 en el archivo de registro de errores de SQL Server al usar la marca de seguimiento 818. Para obtener más información, consulte Diagnósticos de SQL Server detecta problemas de E/S no notificados debido a lecturas obsoletas o escrituras perdidas.
Causa
El mensaje de error 823 suele indicar que hay un problema con el sistema de almacenamiento subyacente o el hardware o un controlador que se encuentra en la ruta de acceso de la solicitud de E/S. Este error puede producirse si hay incoherencias en el sistema de archivos o si el archivo de base de datos está dañado. Para una lectura de archivos, SQL Server ya ha reintentado la solicitud de lectura cuatro veces antes de que devuelva 823. Si la operación de reintento se realiza correctamente, la consulta no produce ningún error, pero el mensaje MSSQLSERVER_825 se escribe en errorLOG y registro de eventos.
Acción de usuario
Revise la tabla suspect_pages en
msdb
para ver otras páginas que se encuentran con este problema (en la misma base de datos o en bases de datos diferentes).Compruebe la coherencia de las bases de datos ubicadas en el mismo volumen (como la que se indica en el mensaje 823) mediante el comando DBCC CHECKDB. Si detecta incoherencias en el comando DBCC CHECKDB, use las instrucciones de Cómo solucionar los errores de coherencia de la base de datos indicados por DBCC CHECKB.
Revise los registros de eventos de Windows para ver si hay errores o mensajes notificados desde el sistema operativo, un dispositivo de almacenamiento o un controlador de dispositivo. Si están relacionados con este error de alguna manera, primero solucione esos errores. Por ejemplo, aparte del mensaje 823, también podría observar un evento como "El controlador detectó un error de controlador en \Device\Harddisk4\DR4" notificado por el origen de disco en el registro de eventos. En ese caso, tiene que evaluar si este archivo está presente en este dispositivo y luego corregir esos errores de disco en primer lugar.
Use la utilidad Usar SQLIOSim para simular la actividad de SQL Server en una utilidad de subsistema de disco para averiguar si estos errores 823 se pueden reproducir fuera de las solicitudes normales de E/S de SQL Server. La utilidad SQLIOSim se incluye con SQL Server 2008 y versiones posteriores, por lo que no es necesario realizar una descarga independiente. Normalmente se puede encontrar en la carpeta
C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Binn
.Trabaje con su proveedor de hardware o fabricante de dispositivos para asegurarse de que
- Los dispositivos de hardware y la configuración cumplen los requisitos de E/S de SQL Server.
- Los controladores de dispositivo y otros componentes de software complementarios de todos los dispositivos de la ruta de acceso de E/S están actualizados
Si el fabricante del dispositivo o el proveedor de hardware le ha proporcionado cualquier utilidad de diagnóstico, úsela para evaluar el estado del sistema de E/S
Evalúe si hay controladores de filtro en la ruta de acceso de estas solicitudes de E/S que experimentan problemas.
- Compruebe si hay alguna actualización para estos controladores de filtro
- ¿Se pueden quitar o deshabilitar estos controladores de filtro para observar si el problema que da lugar al error 823 desaparece?