ORA-01578:Oracle data block corrupted(file # num,block # num)
数据坏块数据仓库的解决方法

分析产生这种问题的原因 
1、 十之八九这个Oracle的数据库server打开了异步I/O(async io)或增加了写进程。 
2、 硬件的I/O出现了错误。 
3、 操作系统的I/O或缓存出现我问题,比如操作系统对于异步I/O的补丁没有打。 
4、 手动的修改了数据文件中的数据,我模拟这个错误用的便是这种方式。 

1.通过查找trace文件找出引起错误的trace文件。
tail -200 trace/alert_$ORACLE_SID.log |grep "Incident details" 查找错误发生的trace文件

2.查看找到的trace文件,确定出是什么操作引起的发现的坏块。基本可以确定出来时那个表出现了坏块。
3.通过count的表的分区,可以找到是表坏块的分区。
4.直接drop掉坏块的表分区,重新入库这个表分区。