电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

表中出现Block错误的恢复方法及具体步骤[2]


发布日期:2020/9/17
 

()确定发生坏块的数据库对象

SELECT tablespace_name

segment_type

owner

segment_name

FROM dba_extents

WHERE file_id =

AND between block_id AND block_id+blocks;

()决定修复方法

假如发生坏块的对象是一个索引那么可以直接把索引DROP掉后再根据表里的记录进行重建假如发生坏块的表的记录可以根据其它表的记录生成的话那么可以直接把这个表DROP掉后重建假如有数据库的备份则恢复数据库的方法来进行修复假如表里的记录没有其它办法恢复那么坏块上的记录就丢失了只能把表中其它数据坏上的记录取出来然后对这个表进行重建

()用Oracle提供的DBMS_REPAIR包标记出坏块

exec DBMS_REPAIRSKIP_CORRUPT_BLOCKS();

()使用Create table as select命令将表中其它块上的记录保存到另一张表上

create table corrupt_table_bak

as

select * from corrupt_table;

()用DROP TABLE命令删除有坏块的表

drop table corrupt_table;

()用alter table rename命令恢复原来的表

alter table corrupt_table_bak

rename to corrupt_table;

()假如表上存在索引则要重建表上的索引

[] []

上一篇:表中出现Block错误的恢复方法及具体步骤[1]

下一篇:利用SET选项提高客户端的灵活性