UNDO 表空间数据块损坏 ORA-01578 & ORA-01110
前两天搭了某测试数据库,最近被告之删除数据时报错。
alert .log
--------------------------------------
Thu Apr 14 01:58:49 2011 Errors in file D:/oracle/admin/MRC/bdump/mrcSMON.TRC: ORA-01595: error freeing extent (2) of rollback segment (1)) ORA-01578: ORACLE data block corrupted (file # 2, block # 3) ORA-01110: data file 2: 'E:/ORADATA/UNDOTBS01.DBF' -------------------------------------- 是程序员执行delete 语句时报错,工具toad 。 Oracle version :9205
delete from mrc_ext_detail_really 报: ------------------------------------- ORA-01578: ORACLE 数据块损坏(文件号2,块号3) ORA-01110: 数据文件 2: 'E:/ORADATA/UNDOTBS01.DBF' 我查了这张表一下。大概300W数据,并且该表建了很恶心的索引。3个索引。 好吧。首先直接删这表会怎样呢?可想而知..慢的要死,要么机器死,要么人阵亡。 如果要直接删除所有数据,那么truncate 好了。 回到主题: 由于测试DB的这张表是需要删除所有数据的。因此不用导出导入table中的数据。 因此..... 如果正式数据库上可要小心操作哦。也可以用一临时UNDO表空间来做切换,以达到删除重建原来的UNDO表空间的目的。