ORA-01578 is a block of physical bad blocks/corruption, different from the logical corruption/bad block, usually accompanied by ORA-1110 appear, once Oracle read to the existence of a corrupted block will be reported caused By:java.sql.SQLException: Ora-01578:oracle Data Block Corruption (file number 4, block number 840339)
ORA-01110: Data file 4: ' E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01. DBF '
Here's how to fix it:
1, use DBV Check data file, in the cmd directory directly input dBV file= ' E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01. DBF ' blocksize=8192; then wait for the test results
2, check the damage related tables
SELECT Tablespace_name, Segment_type, owner, segment_name from dba_extents WHERE file_id = 4 and 840339 between block_id and block_id + blocks-1;
Find the relevant table name
3, internal event, set to skip the corrupted data block during full table scan: ALTER SYSTEM set events= ' 10231 Trace name context forever,level 10 ';
4. Export the above related table there is no corrupted data exp test/test file=t.dmp tables=t
5. Delete Damage related tables drop table t;
Then import the data into Imp test/test file=t.dmp tables=t
Oracle ora-01578 Oracle Data block Corruption (file number 4, block number 840339)