Compartir a través de


Descripción y administración de la tabla suspect_pages

Actualizado: 5 de diciembre de 2005

SQL Server 2005 mantiene la información acerca de las páginas sospechosas en la tabla suspect_pages de la base de datos msdb de cada instancia de servidor. La tabla suspect_pages es relevante para decidir si es necesaria una restauración.

Cuando SQL Server Database Engine (Motor de base de datos de SQL Server) lee una página de base de datos que contiene un error 824 (vea la tabla que aparece a continuación), la página se considera "sospechosa" y su Id. se registra en la tabla suspect_pages. Database Engine (Motor de base de datos) registra todas las páginas sospechosas que encuentra durante el procesamiento normal, como en estos casos:

  • Una consulta tiene que leer una página.
  • Durante una operación DBCC CHECKDB.
  • Durante una operación de copia de seguridad.

La tabla suspect_pages también se actualiza cuando es necesario durante una operación de restauración, una operación de reparación de DBCC o una operación de quitar la base de datos.

Errores registrados en la tabla suspect_pages

La tabla suspect_pages contiene una fila por cada página que causó un error 824, hasta un límite de 1.000 filas. Los errores 824 siguientes se registran en la columna envent_type de la tabla suspect_pages.

Descripción del error Valor event_type

Errores 824 distintos de una suma de comprobación errónea o una página rasgada (por ejemplo, un Id. de página incorrecto)

1

Suma de comprobación errónea

2

Página rasgada

3

Restaurada (la página se restauró después de marcarse como errónea)

4

Reparada (DBCC reparó la página)

5

Desasignada por DBCC

7

La tabla suspect_pages también registra errores transitorios. El origen de los errores transitorios puede ser un error de E/S (por ejemplo, un cable desconectado) o una página que genera un error temporal en una prueba de suma de comprobación repetida.

Cómo actualiza el motor de base de datos la tabla suspect_pages

Database Engine (Motor de base de datos) realiza las acciones siguientes en la tabla suspect_pages:

  • Si la tabla no está llena, se actualiza para cada error 824, para indicar que se ha producido un error, y el contador de errores se incrementa.
  • Si una página tiene un error después de ser corregida mediante reparación, restauración o desasignación, su contador number_of_errors se incrementa y la columna last_update se actualiza.
  • Después de que se ha corregido una página de la lista mediante una operación de restauración o de reparación, la operación actualiza la fila suspect_pages para indicar que la página está reparada (event_type = 5) o restaurada (event_type = 4).
  • Si se ejecuta una comprobación DBCC, ésta marca las páginas sin errores como reparadas (event_type = 5) o desasignadas (event_type = 7).

Actualizaciones automáticas de la tabla suspect_pages

Las siguientes acciones eliminan filas de la tabla suspect_pages automáticamente:

  • ALTER DATABASE REMOVE FILE
  • DROP DATABASE
  • DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS actualiza la tabla suspect_pages para indicar cada página que se ha reparado o desasignado.
  • RESTORE también actualiza la lista. Una restauración completa, de archivos o de páginas marca las entradas de página como restauradas.

Función de mantenimiento del administrador de la base de datos

Los administradores de bases de datos son responsables de la administración de la tabla, sobre todo de eliminar las filas antiguas. La tabla suspect_pages tiene un tamaño limitado; si se llena, los errores nuevos no se registrarán. Cuando esta tabla se acerca a su límite, el administrador de la base de datos o el administrador del sistema debe borrar manualmente las entradas antiguas de la tabla eliminando filas. No se permiten más entradas hasta que el administrador de la base de datos realice esta acción.

Un administrador de la base de datos también puede insertar o actualizar registros. Por ejemplo, actualizar una fila puede resultar útil cuando el administrador de la base de datos sabe que una determinada página sospechosa está intacta realmente, pero desea preservar el registro durante un tiempo.

Ejemplos

En el ejemplo siguiente se eliminan algunas filas de la tabla suspect_pages.

--  Select restored, repaired, or deallocated pages.
DELETE FROM msdb..suspect_pages
   WHERE (event_type = 4 OR event_type = 5 OR event_type = 7);
GO

En el ejemplo siguiente se seleccionan las páginas erróneas de la tabla suspect_pages.

-- Select nonspecific 824, bad checksum, and torn page errors.
SELECT * FROM msdb..suspect_pages
   WHERE (event_type = 1 OR event_type = 2 OR event_type = 3);
GO

Vea también

Conceptos

Realizar restauraciones de páginas

Otros recursos

DROP DATABASE (Transact-SQL)
RESTORE (Transact-SQL)
BACKUP (Transact-SQL)
DBCC (Transact-SQL)
suspect_pages (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005