数据块损坏后修复 ora-01578



报错ora-01578
      ora-01110
如果数据库运行 在归档模式、有备份,则可以使用RMAN的块恢复。可以在数据文件在线时进行
RMAN>blockrecover datafile 1 block 28618;

如果没有备份、归档日志丢失或处于非归档模式。DBA只能尽可能减少数据丢失了
ORA-01578中提示的文件号是RFN,
ORA-01110中提示的文件号是AFN
ORA-00600中也是使用AFN

1、确定文件号
可以根据RFN 确认 AFN
select tablespace_name,file_id "AFN",relative_fno "RFN" from dba_data_files;

TABLESPACE_NAME                 AFN     RFN
------------------------------ ---------- ----------
EXAMPLE                               5        5
USERS                                   4        4
SYSAUX                                 3        3
UNDOTBS1                             2        2
SYSTEM                                  1        1


获得临时文件的AFN和RFN
SQL> select file_id+value "AFN",relative_fno "RFN" from dba_temp_files,v$parameter where name='db_files';

       AFN       RFN
----------   ----------
       201         1


2、确认受损数据块所属的段名、类型、schema、所在表空间。如果ORA错误中提示了的文件号和数据块号,则可以使用下面语句获得数据块所在的对象及属性:
select segment_name,segment_type,owner,tablespace_name
from sys.dba_extents
where file_id=&AFN
and &bad_block_id between block_id and block_id+blocks-1;

3、用DBV或其他工具对数据文件做一个检查,以尽可能发现是否有更多坏块。


设计恢复方法(将坏块跳过,将其他正常数据恢复回来)

处理数据表的坏块时,还要考虑关联对象的后续处理。关联对象包括索引、主键约束、外键约束,下面讨论一下对各种对象的影响及处理方法。
1、 如果受损的对象是索引,那么简单的把索引删掉重建就可以了
     如果这个索引是主键索引,需要查看是否有外键指向这个索引;
     SELECT owner,constraint_name,constraint_type,table_name
     FROM dba_constraints WHERE r_constraint_name='&INDEX_NAME';
     如果是分区索引,要看看属于哪个分区
     SELECT partition_name
     FROM dba_extents
     WHERE file_id=
     
     修复:
     alter index xxx rebuild online(不带online会依据久索引(包含坏块)重建索引)
     alter index xxx rebuild partition yyy 的语句,分区索引重建不会使用旧索引。不用带online
2、如果坏的是

坏块表的索引要重建。索引项和数据记录一般是1:1蛋关系,也就是每条数据记录都会有一个索引项对应。如果因为数据块损坏导致记录丢失,那么这些索引项也就失效了,应该被删除。所以索引要重建。
SQL>select owner,index_name,index_type 
from dba_indexes
where table_owner='&OWNER' and table_name='&SEGMENT_NAME';


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值