Block Corruption

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;

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;