Muchas veces hacemos uso frecuente del CHECKDB como herrarmienta de verificacion de la base de datos cuando lo que tratamos de encontrar es corrupcion.
A partir de SQL Server 2005 microsoft puso a nuestra disposicion una tabla en la MSBD que nos indica que paginas estan en un estado «sospechoso» (la traduccion del ingles suspect). El motor de base de datos inserta datos en esta tabla cuando encuentra errores al leer una pagina de datos en particular.
- Error 823: una prueba cíclica de redundancia (CRC) generada por el sistema operativo, por ejemplo un error de disco (ciertos errores de hardware)
- Error 824: generalmente indica errores logicos
La informacion que se registra en esta tabla se guarda durante las siguientes operaciones:
- Lectura rutinaria durante cualquier query (consulta)
- Respaldo de base de datos (backup restore)
- Operaciones de reparacion de base de datos (CHECKDB)
Es importante saber cuales son los tipos de eventos listados (event_type) dentro de la tabla:
| Valor event_type | Descripción del error |
| 1 | Error 823 error de CRC del sistema operativo, o error 824 que no sea una suma de comprobación (checksum) no válida o una página con informacion incierta (por ejemplo, un Id. de página no válido) |
| 2 | Suma de comprobación errónea (checksum en Ingles) |
| 3 | Página rasgada (informacion incierta o Torn page en ingles) |
| 4 | Restaurada (la página se restauró después de marcarse como errónea) |
| 5 | Reparada (DBCC reparó la página) |
| 7 | Desasignada por DBCC |
Para mi la autoridad en estos temas es Paul Randall, considero que los videos disponibles en este vinculo son de la informacion mas informativa disponible en linea.
Una consulta útil para buscar información en msdb..suspect_pages
SELECT DB_NAME(database_id), [file_id], page_id, event_type, CASE event_type WHEN 1 THEN '823 or 824 or Torn Page' WHEN 2 THEN 'Bad Checksum' WHEN 3 THEN 'Torn Page' WHEN 4 THEN 'Restored' WHEN 5 THEN 'Repaired (DBCC)' WHEN 7 THEN 'Deallocated (DBCC)' END, error_count, last_update_date FROM msdb..suspect_pages
Una nota importante es que la información en esta pagina se actualiza; los eventos 4, 5 y 7 son de eventos que han sido actualizados y corregidos.
Esta tabla no se limpia automáticamente por lo que una vez solucionado el problema deberíamos de borrar los datos que contenga