DBAtlas · Atlas de operações de banco de dados

Encontrar páginas corrompidas (suspect_pages) e restaurar páginas individuais

SQL ServerRestore e recuperação

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;

O que faz

Lista as páginas que sofreram erros de I/O (823/824), checksum ou torn page a partir de msdb.dbo.suspect_pages; repara páginas corrompidas individualmente, pegando-as do backup FULL e avançando-as com os logs, sem restaurar o banco inteiro.

Quando usar

Em erros 823/824 no error log, erros de consistência limitados a poucas páginas no CHECKDB ou quando uma consulta de usuário falha com "incorrect checksum".

Atenção

Exige recovery FULL ou BULK_LOGGED e uma cadeia de logs íntegra. Page restore online é exclusivo do Enterprise/Developer; nas outras edições o banco fica offline durante o restore. Páginas de alocação (GAM/SGAM/PFS), cabeçalhos de arquivo e a boot page (1:9) não podem ser restauradas assim. 823/824 geralmente indica um problema de storage; não encerre o caso sem verificar disco/controladora/SAN, senão vai se repetir. Com muitas páginas ruins, um restore completo do banco é mais rápido.

Abrir no DBAtlas →

Relacionados