Error de MSSQL: error de E/S basado en la coherencia: ¿puede deberse a un problema de MSSQL o del sistema operativo?

Error de MSSQL: error de E/S basado en la coherencia: ¿puede deberse a un problema de MSSQL o del sistema operativo?

Esto es lo que vi en el registro de errores de Windows:

SQL Server detectó un error de E/S basado en coherencia lógica: suma de comprobación incorrecta (esperada: 0x19fedd20; real: 0x19fed5e3). Ocurrió durante una lectura de la página (1:1764) en la base de datos ID 6 en el desplazamiento 0x00000000dc8000 en el archivo 'D:\mssql\local_repository_pbdiffimport.mdf'. Los mensajes adicionales en el registro de errores de SQL Server o en el registro de eventos del sistema pueden proporcionar más detalles. Esta es una condición de error grave que amenaza la integridad de la base de datos y debe corregirse de inmediato. Complete una verificación completa de la coherencia de la base de datos (DBCC CHECKDB). Este error puede deberse a muchos factores; Para obtener más información, consulte los Libros en pantalla de SQL Server.

yo corrí

dbcc comprobar db

lo que me dijo que debería restaurar con la opción REPAIR_ALLOW_DATA_LOSS, así que finalmente ejecuté

DBCC CHECKDB (my_db_name, REPAIR_ALLOW_DATA_LOSS) CON NO_INFOMSGS

Pero eso resultó en la pérdida de aproximadamente 2000 filas. Restauré una copia de seguridad, pero ahora me temo que esto volverá a suceder porque ya tuvimos un problema de coherencia en la misma base de datos hace aproximadamente 2 semanas, pero luego sucedió en un índice (los índices recreados resolvieron el problema).

Hemos investigado los discos: RAID5 se ve bien, no hay errores y ninguna de las utilidades de verificación de discos ha revelado ningún problema de hardware.

¿Puede esto ser causado por el sistema operativo (Windows Server 2003) o por MSSQL (MSSQL Server 2005)?

Respuesta1

La coherencia podría deberse a cualquiera de los factores, hardware o software. Mire los registros de SQL para investigar qué causó potencialmente el problema.

Mis sugerencias:

  • Asegúrese de que la opción Base de datos, Page_Verify esté configurada en CHECKSUM. Esto verifica todas las escrituras antes de que ocurran y es la configuración predeterminada en SQL Server 2005.
  • Copia de seguridad diaria o varias veces al día (según la necesidad)
  • Configure planes de mantenimiento para verificar la coherencia de su base de datos diariamente
  • Mantenga su Windows Server y Sql Server actualizados con parches, tercer software también.
  • Leer "Los mejores consejos para un mantenimiento eficaz de la base de datos" ya que explica la mayoría de mis sugerencias con mayor detalle.

Recomiendo mucho este artículo porque fue escrito para ayudar a los administradores de sistemas que no saben cómo administrar un servidor de base de datos.

Respuesta2

Probablemente tenga eventos de hardware reportados en el registro de eventos de su sistema; debe investigarlos.

Ejecute SQLIOSIM para estresar el disco durante más de 24 horas. Si SQLIOSIM informa un error, deberá comunicarse con su proveedor de hardware para investigar. Podría ser desde el disco, desde la matriz RAID, desde los controladores. El sistema operativo y SQL son los culpables menos probables.

VerCómo utilizar la utilidad SQLIOSim para simular la actividad de SQL Server en un subsistema de disco.

Respuesta3

Definitivamente no es un problema de SQL Server (bueno, muy, muy, muy poco probable). TAMBIÉN no es probable que sea un problema del sistema operativo, simplemente porque las escrituras basura son demasiado obvias para sobrevivir durante mucho tiempo como un error.

Esto apunta seriamente en la dirección del hardware. La RAM (¿usa ECC?) es una posible culpable, al igual que cualquier otro tipo de problemas relacionados (¿controlador RAID? ¿Discos?)

información relacionada