1. ORA-01578 data block corrupted 的修复
http://www.cnblogs.com/killkill/archive/2010/06/24/1764067.html
dbv file=test02.dbf blocksize=8192
SELECT tablespace_name, owner,segment_name,segment_type FROM dba_extents
WHERE file_id = &file and &block between block_id AND block_id + blocks - 1 ;
select * from v$database_block_corruption;
RMAN> backup validate database;
RMAN> backup validate tablespace test;
RMAN> backup validate datafile 16;
RMAN> blockrecover corruption list;
通过设置内部事件,设置在全表扫描时跳过损坏的数据块
1 2 | ALTER SYSTEM SET EVENTS='10231 trace name context forever,level 10' ; ALTER SYSTEM SET EVENTS='10231 trace name context off' ; |
exp可以成功执行,将损坏的数据表删除掉,在imp即可挽救部分数据。
遇到ORA-01578后,第一步应首先确定rman备份情况,如果有可用备份,一切都不太糟糕,几条rman命令就可以修复;如果没有再确定坏块对应的是什么对象,如果是索引等非数据对象,可以考虑drop后再create一次;如果坏块落在数据上,设置10231内部事件,然后求神拜佛,能救回多少数据只能看人品了。
或者在sqlplus中 recover database 或许可以解决ORA-1172的问题.
http://blog.csdn.net/liaoyuanzi/article/details/7767357
http://majesty.blog.51cto.com/3493901/887025
http://yangtingkun.itpub.net/post/468/465223
阅读(1256) | 评论(0) | 转发(0) |