Physical and Logical Corruption
To see physical and logical corruption
select * from v$database_block_corruption;
note: You can found block corruption, output from RMAN list failure, validate, backup validate or v$database_block_corruption
1# You found ORA-01578 and ORA-01110
ORA-01578 ORACLE data block corrupted (file # 6. Block # 403)
ORA-01110 data file 6: ’/u09/oradata/ord/
2# Seeing on view
select * from v$database_block_corruption where CORRUPTION_TYPE in ('FRACTURED','CHECKSUM','CORRUPT’);
or with RMAN
rman> backup validate check logical datafile 6;
or (DBVERIFY: Offline Database Verification Utility)
# dbv file=+DGDATOS/pre01/datafile/ sopow.450.867585215 blocksize=8192
note: dbv FILE=t_db1.dbf FEEDBACK=100 (you can also use FEEDBACK for checking a specific percentage)
You can also check if the blocks belong to a free space or not
SELECT * FROM sys.dba_extents
WHERE file_id = 6 AND
403 BETWEEN block_id and block_id + blocks -1;
SELECT * from dba_free_space
WHERE file_id = 6 AND
403 BETWEEN block_id and block_id + blocks -1;
or with RMAN
rman> backup validate check logical datafile 6;
or (DBVERIFY: Offline Database Verification Utility)
# dbv file=+DGDATOS/pre01/datafile/
note: dbv FILE=t_db1.dbf FEEDBACK=100 (you can also use FEEDBACK for checking a specific percentage)
You can also check if the blocks belong to a free space or not
SELECT * FROM sys.dba_extents
WHERE file_id = 6 AND
403 BETWEEN block_id and block_id + blocks -1;
SELECT * from dba_free_space
WHERE file_id = 6 AND
403 BETWEEN block_id and block_id + blocks -1;
3# Solving the problem with block 403 of datafile 6
You have archive log mode and backup level 0
RMAN> recover datafile 6 block 403;
RMAN> recovery corruption list;