Administrar la tabla suspect_pages (SQL Server)

En este tema se describe cómo administrar la tabla suspect_pages en SQL Server 2012 mediante SQL Server Management Studio o Transact-SQL. La tabla suspect_pages se utiliza para conservar información sobre las páginas sospechosas y es de gran utilidad para decidir si una restauración es necesaria. La tabla suspect_pages reside en la base de datos msdb y se introdujo en SQL Server 2005.

Una página se considera "sospechosa" cuando Motor de base de datos de SQL Server encuentra uno de los errores siguientes al intentar leer una página de datos:

  • Un error 823 producido por una prueba cíclica de redundancia (CRC) emitido por el sistema operativo, por ejemplo un error de disco (ciertos errores de hardware)

  • Un error 824, por ejemplo una página rasgada (cualquier error lógico)

El Id. de página de cada página sospechosa se registra en la tabla suspect_pages. 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.

En este tema

  • Antes de empezar:

    Recomendaciones

    Seguridad

  • Para administrar la tabla suspect_pages, utilizando:

    SQL Server Management Studio

    Transact-SQL

Antes de empezar

Recomendaciones

  • 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. En la siguiente tabla se muestran los errores registrados en la columna envent_type de la tabla suspect_pages.

    Descripción del error

    Valor event_type

    Error 823 producido por un error de CRC del sistema operativo, o error 824 que no sea una suma de comprobación no válida o una página rasgada (por ejemplo, un Id. de página no válido)

    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

    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

    Un asociado de creación de reflejo de la base de datos o réplica de disponibilidad AlwaysOn actualiza la tabla suspect_pages después de un error en un intento de leer una página de un archivo de datos por una de las razones siguientes.

    • Error 823 error producido por un error de CRC del sistema operativo

    • Error 824, (error lógico, como una página rasgada)

    Las siguientes acciones también actualizan automáticamente las filas de la tabla suspect_pages.

    • DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS actualiza la tabla suspect_pages para indicar cada página que se ha reparado o desasignado.

    • Una operación de restauración RESTORE completa, de archivos o de páginas marca las entradas de página como restauradas.

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

    • ALTER DATABASE REMOVE FILE

    • DROP DATABASE

  • Rol 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. Para evitar que esta tabla se llene, el administrador de la base de datos o el administrador del sistema debe borrar manualmente las entradas antiguas de la tabla eliminando filas. Por tanto, recomendamos que elimine o archive periódicamente las filas cuyo event_type es restaurado o reparado, o las filas que tienen un valor last_update antiguo.

    Para supervisar la actividad en la tabla suspect_pages, puede utilizar Clase de eventos Database Suspect Data Page. A veces se agregan filas a la tabla suspect_pages debido a errores transitorios. Si se agregan muchas filas a la tabla, sin embargo, es probable que haya un problema con el subsistema de E/S. Si observa un aumento repentino en el número de filas que se agregan a la tabla, recomendamos que investigue los posibles problemas en el subsistema de E/S.

    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.

Seguridad

Permisos

Cualquier persona con acceso a msdb puede leer los datos de la tabla suspect_pages. Cualquier persona con el permiso UPDATE en la tabla suspect_pages puede actualizar sus registros. Los miembros del rol fijo de base de datos db_owner en msdb o del rol fijo de servidor sysadmin pueden insertar, actualizar y eliminar registros.

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Usar SQL Server Management Studio

Para administrar la tabla suspect_pages

  1. En el Explorador de objetos, conéctese a una instancia de Motor de base de datos de SQL Server, expándala y, a continuación, expanda Bases de datos.

  2. Expanda Bases de datos del sistema, expanda msdb, expanda Tablasy, por último, expanda Tablas del sistema.

  3. Expanda dbo.suspect_pages y haga clic con el botón secundario en Editar las 200 primeras filas.

  4. En la ventana de consulta, edite, actualice o elimine las filas que desee.

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Usar Transact-SQL

Para administrar la tabla suspect_pages

  1. Conéctese al Motor de base de datos.

  2. En la barra Estándar, haga clic en Nueva consulta.

  3. Copie y pegue los ejemplos siguientes en la ventana de consulta y haga clic en Ejecutar. En este ejemplo se eliminan algunas filas de la tabla suspect_pages.

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

E este ejemplo se devuelve las páginas no válidas 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

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Vea también

Referencia

DROP DATABASE (Transact-SQL)

RESTORE (Transact-SQL)

BACKUP (Transact-SQL)

DBCC (Transact-SQL)

suspect_pages (Transact-SQL)

Conceptos

Restaurar páginas (SQL Server)

MSSQLSERVER_823

MSSQLSERVER_824