Validar o banco de dados e os backups contra corrupção (VALIDATE)
OracleRMANComando
# Physical + logical block check (without producing a backup):
VALIDATE CHECK LOGICAL DATABASE;
# Scan large datafiles in parallel (11g+, needs multiple channels):
VALIDATE CHECK LOGICAL DATABASE SECTION SIZE 16G;
# A single datafile / tablespace:
VALIDATE DATAFILE 7;
VALIDATE TABLESPACE users;
# Read as if taking a backup and check (including archivelogs):
BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;
# Readability of a specific backup set:
LIST BACKUP SUMMARY;
VALIDATE BACKUPSET <bs_key>;
-- Corrupt blocks found and the affected segment (SQL):
SELECT file#, block#, blocks, corruption_change#, corruption_type
FROM v$database_block_corruption ORDER BY file#, block#;
SELECT DISTINCT e.owner, e.segment_name, e.segment_type
FROM dba_extents e
JOIN v$database_block_corruption c
ON e.file_id = c.file#
AND c.block# BETWEEN e.block_id AND e.block_id + e.blocks - 1;O que faz
Lê datafiles e backup sets para detectar corrupção física e (com CHECK LOGICAL) lógica de blocos, registrando os achados em v$database_block_corruption. A consulta SQL mostra a qual tabela/índice pertence o bloco corrompido.
Quando usar
Após erros de corrupção como ORA-01578/ORA-08103, após problemas de storage e como verificação regular (semanal) de integridade; para provar que os backups são realmente restauráveis.
Atenção
Faz uma leitura completa; em bancos grandes gera I/O pesado, então execute fora dos horários de pico. A consulta em dba_extents pode ser lenta em bancos grandes. Se o bloco corrompido estiver em espaço temporário (TEMP) ou livre, nenhum objeto correspondente é retornado.
Relacionados
- Criar um recovery catalog do RMAN e registrar o banco de dados
- Criar um physical standby a partir do banco ativo com RMAN DUPLICATE
- Validar e limpar registros de backup do RMAN (CROSSCHECK, EXPIRED, OBSOLETE)
- Ver quais backups um restore usaria e validá-los (PREVIEW / VALIDATE)
- Reparar blocos corrompidos online (block media recovery, RECOVER CORRUPTION LIST)
- Retornar um tablespace a um ponto no passado (TSPITR)