oracle数据库恢复aul_AUL/MyDUL 非常规灾难恢复ORACLE数据

AUL(MyDUL)工具简介

从2005年开始,AUL (MyDUL)已经为全球不同国家及地区的众多客户恢复了数十TB计的Oracle数据,从损坏的Oracle 8, Oracle 8i, Oracle 9i, Oracle 10g, Oracle 11g及Oracle ASM上为客户快速恢复数据. AUL(MyDUL)可以脱离Oracle运行环境,直接从数据文件中读取记录,与官方工具Oracle DUL具有同等功效并且功能更加丰富。当你遇到下列极端情况,并且没有有效备份(客户有备份动作,备份不起作用的情况也遇到过)用来恢复数据时, AUL(MyDUL)是往往是你最后的机会. 一直坚持“拯救数据,帮助客户”的原则!在最新版本AUL 6中, 可以直接访问Oracle ASM来恢复数据,或从Oracle ASM中将数据文件拷贝出来。

1. 完全丢失系统表空间

2. 系统表空间有坏块

3. 表空间被删除,但数据文件还存在

4. 表被删除后,马上停止操作,空间未被重用

5. 表被清空(Truncate)后马上停止操作,空间未被重用

6. 一个表空间丢失了部份文件,或文件中有坏块,无法自我修复

7. Oracle ASM存贮损坏,或Oracle ASM磁盘损坏

8. 其他无法正常打开数据库或无法查询数据的情况

AUL(MyDUL)功能列表

支持Oracle 8/8i/9i/10g/10g/11g等不同版本

直接访问Oracle ASM存贮,无需先将文件拷出来

从损坏的Oracle ASM中拷出数据文件到文件系统

支持普通表(Table)/聚族(Cluster)/索引组织表(IOT)

数据类型支持

NUMBER

DATE

CHAR

NCHAR

VARCHAR2

NVARCHAR2

RAW

LONG

LONG RAW

BINARY_FLOAT

BINARY_DOUBLE

TIMESTAMP

TIMESTAMP WITH TIME ZONE

可以将数据恢复成格式化文本文件,或者Oracle 8.1.7版本的DMP格式文件

在System表空间有效的情况下,可以自动生成SQL*Loader控制文件,方便数据装载

使用标准C语方编写,可以运行在Windows (VC6), Linux (gcc), Solaris (gcc)等不同平台上

支持跨平台交叉恢复,比如在Windows上也可以恢复AIX下的Oracle数据库

CLOB/BLOB支持

支持inline-lob, enable storage in row LOB和disable storage in row LOB.

支持不同CHUNK大小的CLOB/BLOB,同一个表不同的LOB CHUNK大小不支持.

CLOB/BLOB数据可以导出成独立的文件,或者DMP格式文件.

集成ICONV库,支持CLOB字符集转换.

无System表空间的CLOB/BLOB数据恢复.

从AUl 5版本开始支持压缩(Compress)表.

从AUl 5版本开始支持压缩(Compress)的索引组织表(IOT).

如果你没有丢失迭制文件, 则可以从视图V$DATABASE查询取得. 否则你需要手工从磁盘中根据存留的文件, 来列出所有的文件.

SQL> col name format a40

SQL> select file#,rfile#,name from v$datafile;

FILE#     RFILE# NAME

---------- ---------- ----------------------------------------

1          1 C:\ORACLE\ORADATA\SYSTEM01.DBF

2          2 C:\ORACLE\ORADATA\UNDOTBS01.DBF

3          3 C:\ORACLE\ORADATA\SYSAUX01.DBF

4          4 C:\ORACLE\ORADATA\TEST01.DBF

5          5 C:\ORACLE\ORADATA\AULTEST01.DBF

创建一个AUL/MyDUL使用的配置文件

配置文件是一个文本文件, 你可以用任何文本编辑器编辑. 文件应当包括三个列(文件号,相对文件号,文件名), 中间以空格分隔. 我们将上面的记录拷贝到文件db10g.cfg中就可以了. 如果数据文件的文件头块没有损坏, 文件号和相对文件号这两列的值是无关紧要的, 在打开时会自动读取文件头进行修正; 文件中不能包括空格, 否则请重命令文件去掉空格.

C:\MYDUL>type db10g.cfg

0          0 C:\ORACLE\ORADATA\SYSTEM01.DBF

0          0 C:\ORACLE\ORADATA\UNDOTBS01.DBF

0          0 C:\ORACLE\ORADATA\SYSAUX01.DBF

0          0 C:\ORACLE\ORADATA\TEST01.DBF

0          0 C:\ORACLE\ORADATA\AULTEST01.DBF

在AUL/MyDUL中打开配置文件

AUL/MyDUL从这个配置文件中读取数据文件列表, 成功打开后并读取文件头, 叫正配置文件中错误的"文件号"和"相对文件号". 在这里我们虽然有5个文件, 但由于我们没有使用正式的许可证号, 免费的许可证只能让我们打开前面的2个文件, 并只能读取每个文件前面的256M.

Register Code: 55E2-4639-864D-F8C3

AUL : AnySQL UnLoader(MyDUL) for Oracle 8/8i/9i/10g, Trial Version 3.1.9

(C) Copyright Lou Fangxin 2005-2006 (AnySQL.net), all rights reserved.

AUL> open db10g.cfg

*  ts#  fno  rfn ver bsize     blocks filename

- ---- ---- ---- --- ----- ---------- -----------------------------------

Y    0    1    1 a2   8192      32768 C:\ORACLE\ORADATA\SYSTEM01.DBF

Y    1    2    2 a2   8192       8192 C:\ORACLE\ORADATA\UNDOTBS01.DBF

Y    2    3    3 a2   8192       8192 C:\ORACLE\ORADATA\SYSAUX01.DBF

Y    4    4    4 a2   8192       3072 C:\ORACLE\ORADATA\TEST01.DBF

生成AUL/MyDUL的数据字典

AUL/MyDUL可以根据"SYS.USER$","SYS.OBJ$","SYS.TAB$","SYS.COL$"四个系统表中的记录来生成所需的数据字典, 有数据字典的情况下恢复要容易得多.

AUL> UNLOAD TABLE USER$;

2006-08-04 09:39:00

2006-08-04 09:39:00

AUL> UNLOAD TABLE OBJ$;

2006-08-04 09:39:07

2006-08-04 09:39:08

AUL> UNLOAD TABLE TAB$;

2006-08-04 09:39:12

2006-08-04 09:39:13

AUL> UNLOAD TABLE COL$;

2006-08-04 09:39:17

2006-08-04 09:39:18

AUL> ! dir AUL*.TXT

Volume in drive C has no label.

Volume Serial Number is 5CF4-08FE

使用LIST命令来生成恢复用的角本

命令"LIST TABLE 用户名 TO 角本文件名"可以用来生成恢复某个用户下所有表的AUL/MyDUL命令, 在这儿我省略了"TO 角本文件名", 将所有命令输出到屏幕上.

AUL> LIST TABLE MYDUL

UNLOAD TABLE MYDUL.T_PART TO T_PART.txt;

UNLOAD TABLE MYDUL.T_OBJECT TO T_OBJECT.txt;

UNLOAD TABLE MYDUL.T_LOB TO T_LOB.txt;

UNLOAD TABLE MYDUL.T_CLOB TO T_CLOB.txt;

UNLOAD TABLE MYDUL.T_PART PARTITION P2 TO T_PART_P2.txt;

UNLOAD TABLE MYDUL.T_PART PARTITION P1 TO T_PART_P1.txt;

运行恢复命令来恢复数据

我们来偿试恢复分区表"T_PART", 对于分区表一个分区会有一条命令. 在这儿省略了"TO 文件名", 因此所有记录直接显示在屏幕上.

AUL> UNLOAD TABLE MYDUL.T_PART PARTITION P2;

2006-08-04 09:40:42

Unload OBJD=9928 FILE=4 BLOCK=19 CLUSTER=0 ...

150,1

2006-08-04 09:40:42

AUL> UNLOAD TABLE MYDUL.T_PART PARTITION P1;

2006-08-04 09:40:51

Unload OBJD=9927 FILE=4 BLOCK=11 CLUSTER=0 ...

50,1

2006-08-04 09:40:51

实例:

(1)  Dbcfg 文件内容:

1          1 F:\ORACLE\PRODUCT\10.2.0\ORADATA\ETA\SYSTEM01.DBF

2          2 F:\ORACLE\PRODUCT\10.2.0\ORADATA\ETA\UNDOTBS01.DBF

3          3 F:\ORACLE\PRODUCT\10.2.0\ORADATA\ETA\SYSAUX01.DBF

4          4 F:\ORACLE\PRODUCT\10.2.0\ORADATA\ETA\USERS01.DBF

5          5 F:\ORACLE\PRODUCT\10.2.0\ORADATA\ETA\backup.DBF

(2) 字符集:

852 = zhs16gbk

Set charset 852

(3)   set licence  注册号

(4)

SET BLOCK_SIZE    {2048 | 4096 | 8192 | 16384 | 32768}

SET BYTE_ORDER    {BIG | LITTLE}

SET DELETED_ROW   {TRUE | FALSE}

SET COMMITED_ONLY {TRUE | FALSE}

SET FIELD_TAG     field_tag

SET RECORD_TAG    record_tag

SET CACHE_SIZE    kbytes (64 - 8192)

SET OUTPUT_STYLE  {TXT | DMP}

SET CHARSET       charsetid

SET NLSCHARSET    charsetid

SET FIXED_CHARSET {true | false}

SET BLOCK_CHECK   {0 | 1}

SET HEAD_SIZE     header size (default 0)

SET VERBOSE       {0 | 1}

SET CLOB_EDIAN    {BIG | LITTLE}

SET LOB_CONVERT   {0:NONE | 1:GBK | 2:UTF8}

SET LOB_STORAGE   {0:INLINE | 1:FILE | 2:NONE}

SET MAXLOBDIR     values between 100  and 2000

SET MAXCHAINS     integer value

SET BIGFILE       {Yes | NO}

SET ICONV_NCHAR   from_iconv_charset to_iconv_charset

SET ICONV_NCLOB   from_iconv_charset to_iconv_charset

SET ICONV_CLOB    from_iconv_charset to_iconv_charset

相关参数可以进行设置

*  ts#  rfn ver bsize     blocks   sizemb filename

- ---- ---- --- ----- ---------- -------- -----------------------------------

Y    0    1 a2   8192      62720        0 F:\ORACLE\PRODUCT\10.2.0\ORADATA\ETA\S

YSTEM01.DBF

Y    1    2 a2   8192      12800        0 F:\ORACLE\PRODUCT\10.2.0\ORADATA\ETA\U

NDOTBS01.DBF

Y    2    3 a2   8192      32000        0 F:\ORACLE\PRODUCT\10.2.0\ORADATA\ETA\S

YSAUX01.DBF

Y    4    4 a2   8192      50720        0 F:\ORACLE\PRODUCT\10.2.0\ORADATA\ETA\U

SERS01.DBF

Y    6    5 a2   8192     640000        0 F:\ORADATA\backup.DBF

AUL> unload table user$

2 ;

2014-06-08 13:12:39

2014-06-08 13:12:39

AUL> unload table obj$;

2014-06-08 13:12:49

2014-06-08 13:12:50

AUL> unload table tab$;

2014-06-08 13:13:04

2014-06-08 13:13:04

AUL> unload table col$;

2014-06-08 13:13:15

2014-06-08 13:13:16

AUL>list table system

AUL>list table  ics8000

5948a7339cb37601ecddddae654ab5d7.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值