Error al intentar recuperar la página lógica (5: 65424) en la base de datos 2


11

Recibo lo siguiente SqlExceptional llamar a un procedimiento almacenado:

Error al intentar recuperar la página lógica (5: 65424) en la base de datos 2. Pertenece a la unidad de asignación 7349876362857938944, no a 4899918190390149120.

System.Data.SqlClient.SqlException ocurrió
Mensaje = "Error al intentar recuperar la página lógica (5: 65424) en la base de datos 2. Pertenece a la unidad de asignación 7349876362857938944 no a 4899918190390149120.

Código de
error de origen = ". Proveedor de datos
de
cliente de SQL neto" = -2146232060 Clase = 21 Número de línea = 257
Número = 605
Procedimiento = "ispDisplayCount"
Servidor = "10.10.1.1"
Estado = 3

¿Qué significa esta excepción? ¿Hay alguna solución al problema anterior?

Aunque la base de datos a la que se hace referencia en el error anterior indica tempdb, los errores similares que hacen referencia al Mensaje 605 pueden corregirse utilizando las respuestas a continuación.

Mensaje 605, Nivel 21, Estado 3, Línea 1
Error al intentar recuperar la página lógica (1: 8687634) en la base de datos 7. Pertenece a la unidad de asignación 72057594364821504, no a 72057594052476928.

Respuestas:


11

Si el ID de la base de datos indicado por el mensaje de error es 2, la base de datos afectada es tempdb. Un método para corregir este tipo de corrupción en tempdb es simplemente reiniciar la instancia de SQL Server. Para las ID de bases de datos que no sean 2, siga las recomendaciones a continuación.

Es posible que necesite restaurar desde la copia de seguridad, sin embargo, intente esto:

Como miembro de la función sysadmin, ejecute DBCC PAGE (2, 5, 65424, 3);y busque el Metadata: IndexIdvalor.

  • Si es 0(montón) o 1(índice agrupado) necesita restaurar desde la copia de seguridad.
  • Si es no 0 , o 1, sólo puede reconstruir el índice no agrupado.

Ejecute el comando DBCC y díganos qué encuentra. Consulte https://www.mssqltips.com/sqlservertip/1578/using-dbcc-page-to-examine-sql-server-table-and-index-data/ para obtener detalles sobre el DBCC PAGEcomando


10

Su base de datos está dañada. Es hora de restaurar desde una buena copia de seguridad. Si no tiene copias de seguridad, es hora de aprender sobre la importancia de probar su plan de recuperación . También se justifica una investigación sobre la confiabilidad de su hardware, esté atento a las advertencias y errores en los registros del sistema.


9

El error indica que su base de datos está dañada. La buena noticia es que la ID de base de datos 2 indica que esta es la base de datos tempdb, por lo que solucionar esto es fácil: simplemente reinicie la instancia de la base de datos.

Una vez que reinicie la instancia, debe descubrir por qué ocurrió la corrupción. Comience por ejecutar chkdsken la unidad en la que está el archivo del problema. A continuación, deberá mirar el almacenamiento en sí y ver si hay algún problema allí. Podría ser un problema de disco físico, podrían ser controladores de tarjeta HBA o RAID, etc.


Denny, ¿crees que también sería beneficioso hacer comprobaciones de estado de RAM? ¿Has visto una página corrupta en RAM que también se traduce en corrupción en el disco?
Ali Razeghi

1
Si hay una memoria RAM defectuosa que podría hacer que una página sea reportada como sucia. Las probabilidades son mucho mayores de que sea un problema con el subsistema de disco que la memoria. Ese sería el siguiente lugar para buscar si los discos están bien.
mrdenny

2

Pude resolver esto borrando las memorias caché de SQL:

DBCC FREEPROCCACHE
GO
DBCC DROPCLEANBUFFERS
GO

Aparentemente, reiniciar el servicio SQL habría tenido el mismo efecto.

(a través de Made By SQL , reproducido aquí para ayudar a otros)


1

En mi caso, truncar y volver a llenar los datos en las tablas en cuestión fue la solución.

Lo más probable es que los datos dentro de las tablas estén dañados.


1

Lo que oiría de mucha gente es " la base de datos está dañada, debe restaurarla " sin siquiera recomendar que tome unos minutos para hacer lo siguiente; revise sus registros, averigüe cuándo se produjo el problema por primera vez, el error que precedió a esa línea, consulte la base de datos / tabla a la que pertenece la página

En mi caso, este error fue precedido por;

No se puede encontrar la entrada de índice en el ID de índice 9, de la tabla 629577281, en la base de datos 'XYZ'. El índice indicado está dañado o hay un problema con el plan de actualización actual

Una solución alternativa era rastrear el índice mencionado y eliminarlo temporalmente.

Más tarde encontré un enlace de Microsoft que describe mi problema exacto y ofrece un enlace de solución

espero que esto ayude a alguien más en el futuro

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.