WEB开发网
开发学院数据库Oracle Oracle中模拟及修复数据块损坏 阅读

Oracle中模拟及修复数据块损坏

 2008-12-16 13:02:42 来源:WEB开发网   
核心提示: . . 正在导出表 TEXP-00056: 遇到 ORACLE 错误 1578ORA-01578: ORACLE 数据块损坏(文件号4,块号35)ORA-01110: 数据文件 4: 'E:ORACLEORADATAEYGLEBLOCK.DBF'导出成功终止,Oracle中

. . 正在导出表 T

EXP-00056: 遇到 ORACLE 错误 1578

ORA-01578: ORACLE 数据块损坏(文件号4,块号35)

ORA-01110: 数据文件 4: 'E:ORACLEORADATAEYGLEBLOCK.DBF'

导出成功终止,但出现警告。

5.恢复步骤

当然,对于不同的情况需要区别对待

首先你需要检查损坏的对象,使用以下SQL:

SQL> SELECT tablespace_name, segment_type, owner, segment_name
2 FROM dba_extents
3 WHERE file_id = 4
4 and 35 between block_id AND block_id + blocks - 1
5 ;
TABLESPACE_NAME SEGMENT_TYPE OWNER SEGMENT_NAME
---------------------------------------------------------------------------
BLOCK TABLE EYGLE T

如果损失的是数据,ok

我们可以设置内部事件,使exp跳过这些损坏的block

SQL> ALTER SYSTEM SET EVENTS='10231 trace name context forever,level 10';

系统已更改。

note:

ALTER SYSTEM SET EVENTS='10231 trace name context forever,level 10' ;

内部事件,设置在全表扫描时跳过损坏的数据块.

然后我们可以导出未损坏的数据

SQL> host

Microsoft Windows XP [版本 5.1.2600]

(C) 版权所有 1985-2001 Microsoft Corp.

E:
E:>exp eygle/eygle file=t.dmp tables=t
Export: Release 9.2.0.4.0 - Production on 星期一 3月 8 20:57:13 2004
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

连接到:Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production

已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的表通过常规路径 ...

. . 正在导出表 T 8036 行被导出

在没有警告的情况下成功终止导出。

这时候数据成功导出.

然后我们可以drop table,recreate,然后导入数据

本例中

我们损失了

8192 - 8036 = 156 行数据

SQL> connect eygle/eygle

已连接。

SQL> drop table t;

表已丢弃。

SQL> host
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
E:Oracleora92in>cd
E:>imp eygle/eygle file=t.dmp tables=t
Import: Release 9.2.0.4.0 - Production on 星期一 3月 8 21:12:38 2004
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

连接到:Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production

经由常规路径导出由EXPORT:V09.02.00创建的文件

已经完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的导入

. 正在将EYGLE的对象导入到 EYGLE

. . 正在导入表 "T" 8036行被导入

成功终止导入,但出现警告。

E:>exit
SQL> select count(*) from t;
COUNT(*)
----------
8036

完成数据恢复

上一页  1 2 3 4 

Tags:Oracle 模拟 修复

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接