Skip to content

Oracle数据恢复

2014-03-26 21:09:14   来源:华军科技数据恢复

 

Oracle数据恢复

        Oracle数据恢复近来有一位客户遭遇到了一次非常意外的数据损失,客户在维护时重建系统,先通过expdp备份了数据,结果当进行导入恢复数据时,发现部分重要的数据表无法恢复,出现错误。这个案例提示我们:不能尽信expdp等导出文件备份,必须通过多重手段协同,全面保障数据安全。

  导入DMP文件时出现的错误大致如下:

  Import: Release 11.2.0.1.0 - Production on 星期日 12月 30 15:37:27 2013

  Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

  ;;;

  连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

  With the Partitioning and Real Application Testing options

  已成功加载/卸载了主表 "CW9999"."SYS_IMPORT_TABLE_02"

  启动 "CW9999"."SYS_IMPORT_TABLE_02": cw9999/******** parfile=data10.par

  处理对象类型 SCHEMA_EXPORT/TABLE/TABLE

  处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA

  ORA-31693: 表数据对象 "CW9999"."PSXM" 无法加载/卸载并且被跳过, 错误如下:

  ORA-02354: 导出/导入数据时出错

  ORA-02368: the following file is not valid for this load operation

  ORA-02369: internal number in header in file H:\DMP\bj.dmp is not valid

  ORA-31693: 表数据对象 "CW9999"."PSMOD" 无法加载/卸载并且被跳过, 错误如下:

  ORA-02354: 导出/导入数据时出错

  ORA-39776: 加载表 "CW9999"."SPMOD" 时出现致命的直接路径 API 错误

  ORA-00600: 内部错误代码, 参数: [klaprs_11], [60], [0], [], [], [], [], [], [], [], [], []

  注意这其中最关键的错误是ORA-02369,提示DMP文件中的内部数字标记非法,这其实说明导出文件损坏了,以下是该错误的官方解释:

  ORA-02369 internal number in header in file string is not valid

  Cause: If the dump files were transferred over, verify the transfer operation was done correctly.

  Action:

  The specified file could not be used for this load because the internal number in the header was not valid.

  在MOS上的Note:785473.1 上有提示,如果文件通过ftp等方式传输,可能丢失了内容,可以尝试重传,但是这种概率极低,事实上是,在执行导出时文件就损坏了。这种情况下,不可避免的要丢失数据。在MOS上,有几十个与此错误有关的SR。

  在这个客户案例中,部分数据表是完好的,可以导入,但是其中一些表出错,无法导入还原到数据库中。

  在这种情况下,极限的数据挽救情况是:通过ODU、DUL等工具,可以扫描DMP文件,尝试恢复其中完好的数据,但是通常无法做到完好无损了。

  技术提示:ORA-02369 不是指dmp文件的开始部分损坏,对于DMP文件来说,每个表开始部分都存在一个Header信息,这个错误是指对于指定表,这个信息损坏。在这个案例中,可能是并行导出导致的写损坏。

  华军深圳数据恢复中心建议,在重要数据备份中,不能仅采用单一手段,多重手段结合,才能确保数据万无一失。

 

 

Back To Top
Search