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

Reparar blocos corrompidos online (block media recovery, RECOVER CORRUPTION LIST)

OracleRMAN

Comando

# 1) Detect corrupt blocks (populates v$database_block_corruption):
VALIDATE CHECK LOGICAL DATABASE;
# 2) Repair all blocks in the list (the datafile stays online):
RECOVER CORRUPTION LIST;
# or the file/block from the error message (ORA-01578: file# 7, block# 233):
RECOVER DATAFILE 7 BLOCK 233;
RECOVER DATAFILE 7 BLOCK 233 DATAFILE 9 BLOCK 1001;
# 3) Verify:
VALIDATE DATAFILE 7;
SELECT * FROM v$database_block_corruption;

O que faz

Restaura apenas os blocos corrompidos a partir de um backup (ou de flashback logs / de um standby Active Data Guard) e os avança com redo; o datafile e o tablespace permanecem online, e a aplicação só recebe erros ao acessar esses blocos.

Quando usar

Quando surge corrupção isolada de blocos com ORA-01578 / ORA-01110; quando restaurar o datafile inteiro causaria indisponibilidade desnecessária.

Atenção

Exige um backup íntegro que contenha o bloco e todos os archivelogs desde então até agora; a corrupção causada por uma operação NOLOGGING (ORA-26040) não pode ser reparada assim, o objeto precisa ser recriado. É um recurso do Enterprise Edition. Se você não encontrar a origem da corrupção (storage, HBA, firmware), ela vai se repetir.

Abrir no DBAtlas →

Relacionados