Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1443907
  • 博文数量: 239
  • 博客积分: 5909
  • 博客等级: 大校
  • 技术积分: 2715
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-24 20:19
文章分类

全部博文(239)

文章存档

2014年(4)

2013年(22)

2012年(140)

2011年(14)

2010年(59)

我的朋友

分类: Oracle

2012-09-24 18:09:54

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

阅读(1252) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~