DBAtlas · Atlas de operaciones de bases de datos

Encontrar páginas corruptas (suspect_pages) y restaurar páginas individuales

SQL ServerRestauración y recuperación

Comando

-- Pages that hit 823/824 or checksum errors:
SELECT DB_NAME(sp.database_id) AS db, sp.file_id, sp.page_id,
       CASE sp.event_type WHEN 1 THEN '823/824 error' WHEN 2 THEN 'bad checksum'
            WHEN 3 THEN 'torn page'     WHEN 4 THEN 'restored'
            WHEN 5 THEN 'repaired'      WHEN 7 THEN 'deallocated by DBCC' END AS event_desc,
       sp.error_count, sp.last_update_date
FROM   msdb.dbo.suspect_pages sp
ORDER BY sp.last_update_date DESC;

-- Page restore (example 1:336): FULL + later logs + a new log backup
RESTORE DATABASE [Musteri] PAGE = '1:336'
FROM DISK = N'D:\Backup\Musteri_full_20261008.bak' WITH NORECOVERY;
RESTORE LOG [Musteri] FROM DISK = N'D:\Backup\Musteri_log_1200.trn' WITH NORECOVERY;
BACKUP LOG [Musteri] TO DISK = N'D:\Backup\Musteri_log_pagetail.trn' WITH INIT;
RESTORE LOG [Musteri] FROM DISK = N'D:\Backup\Musteri_log_pagetail.trn' WITH RECOVERY;

-- Verify:
DBCC CHECKDB (N'Musteri') WITH NO_INFOMSGS, ALL_ERRORMSGS;

Qué hace

Lista desde msdb.dbo.suspect_pages las páginas con errores de E/S (823/824), de checksum o de torn page; repara páginas corruptas individuales tomándolas del backup FULL y aplicándoles los logs, sin restaurar la base de datos completa.

Cuándo usarlo

Ante errores 823/824 en el error log, errores de consistencia limitados a unas pocas páginas en CHECKDB o una consulta de usuario que falla con "incorrect checksum".

Precaución

Requiere recuperación FULL o BULK_LOGGED y una cadena de log ininterrumpida. La restauración de páginas online es solo de Enterprise/Developer; en otras ediciones la base de datos está offline durante la restauración. Las páginas de asignación (GAM/SGAM/PFS), las cabeceras de archivo y la boot page (1:9) no pueden restaurarse así. 823/824 suele indicar un problema de almacenamiento; no cierre el caso sin revisar el disco/controladora/SAN, o se repetirá. Con muchas páginas dañadas, una restauración completa de la base de datos es más rápida.

Abrir en DBAtlas →

Relacionado