ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle中导出修复数据块损坏

Oracle中导出修复数据块损坏

原创 Linux操作系统 作者:kris3106 时间:2010-03-29 10:19:34 0 删除 编辑

SQLPLUS中或是Alter日志有如下类似的错误信息:
ORA-01578
: ORACLE 数据块损坏(文件号4,块号35)
ORA-01110
: 数据文件 4: 'E:\BLOCK.DBF'

从日志中可以看到是文件4的35块损坏了。
 
恢复步骤
1. 首先你需要检查损坏的对象,使用以下SQL:
 

SQL>SELECT tablespace_name, segment_type, owner, segment_name,PARTITION_NAME 
 FROM dba_extents
 WHERE file_id = 4
 and 35 between block_id AND block_id + blocks - 1;
SQL>
TABLESPACE_NAME   SEGMENT_TYPE        OWNER   SEGMENT_NAME    PARTITION_NAME
-----------------------------   ------------------------        ------------   ------------------------    --------------------------
TBS1                                INDEX PARTITION       USER1     IX_TAB_COL            P_NAME



【2.1】如果是索引,重建索引
分区索引:

alter index USER1.IX_TAB_COL rebuild partition  P_NAME online;

普通索引:

alter index USER1.IX_TAB_COL rebuild online;

提示 :

* online 方式走全表扫描
* 非online 走原有索引


【2.2】如果是表,把表中数据库导出,然后从新导入表中数据。
 待续。

SQL> ALTER SYSTEM SET EVENTS='10231 trace name context forever,level 10';
系统已更改。
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/563971/viewspace-630606/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-04-07

  • 博文量
    93
  • 访问量
    212695