oracle数据库恢复aul_AUL6数据恢复总结_20140404

前段时间数据库故障

600

内部错误导致部分两个

schema

下部分数据丢失,包含普通表

数据和分区表数据。尝试过许多方法都没能恢复回来,最后通过

AUL6

做恢复,现在这次

的恢复做一个简单总结。

(1)

恢复流程

1.1

创建

AUL6

cfg

配制文件,

主要包括需要恢复的数据文件

(

必须包括

system.dbf

否则即使

AUL6

恢复流程不报错,却不会导出文本数据

)

,格式如下示

:

0

0

D:\AUL_TEST\SUN.DBF

0

0

D:\AUL_TEST\SYSTEM01.DBF

1.2

AUL

导出的文本数据通过

oracle

sqlloader

装载入与要恢复表结果完全相同

的一张临时表。导出文本格式如下示

:

7369|SMITH|CLERK|7902|1980-12-17 00:00:00|800||20

7499|ALLEN|SALESMAN|7698|1981-02-20 00:00:00|1600|300|30

7521|WARD|SALESMAN|7698|1981-02-22 00:00:00|1250|500|30

7566|JONES|MANAGER|7839|1981-04-02 00:00:00|2975||20

7654|MARTIN|SALESMAN|7698|1981-09-28 00:00:00|1250|1400|30

7698|BLAKE|MANAGER|7839|1981-05-01 00:00:00|2850||30

7782|CLARK|MANAGER|7839|1981-06-09 00:00:00|2450||10

7788|SCOTT|ANAL

YST|7566|1987-04-19 00:00:00|3000||20

7839|KING|PRESIDENT||1981-11-17 00:00:00|5000||10

7844|TURNER|SALESMAN|7698|1981-09-08 00:00:00|1500|0|30

7876|ADAMS|CLERK|7788|1987-05-23 00:00:00|1100||20

7900|JAMES|CLERK|7698|1981-12-03 00:00:00|950||30

7902|FORD|ANAL

YST|7566|1981-12-03 00:00:00|3000||20

7934|MILLER|CLERK|7782|1982-01-23 00:00:00|1300||10

1.3

通过核心主键字段做

minus

找出需要恢复的纪录,插入到新建的另外一张临时表

中,脚本如下示

:

create

table

org_info_temp

as

(select

*

from

org_info_bk

t1

where

t1.org_name

in

(select

t2.org_name from org_info_bk t2 minus(select t3.org_name from org_info t3) ));

1.4

将校对出的丢失数据通过

plsql

导出成

sql

脚本,

然后批量

append

插入到需要恢复

的表中,当然最好事先做个数据库备份

.

1.5

个人感觉此次恢复过程难度不大,

细节很重要,

如果不是分区表,

表数据又很大,

单单

AUL6

导出数据就需要不少时间,还有一个需要注意的东西就是

sqlloader

做批量导入

时的文本格式,由其字段是日期格式的,处理过程中还发现

AUL6

导出文本数据时有时会

漏了表最后几个字段值

(

如果是空的话

).

1.6

最后

,

和大家分享海伦

.

凯勒的一句话

:

一个人要想获得真才实学,

必须自己去攀登奇

峻险峰

.

ODU全称为Oracle Database Unloader,是类似于Oracle的DUL的软件,用于直接从Oracle数据库的数据文件中获取表数据。在各种原因造成的数据库不能打开时,用于抢救数据,最大限度地减少数据丢失。 ODU有什么功能特点? 支持的Oracle数据库版本包括8i,9i,10g,11g 自动检测数据文件的表空间号和文件号 在有SYSTEM表空间的情况下,自动获取数据字典信息。 支持各种表,普通的HEAP表,IOT表,聚簇(CLUSTER)表。 DESC表,以显示表的列定义 支持10g及以上的大文件(BigFile)表空间 列出表的分区和子分区 支持表被truncate后的数据恢复 支持表被drop后的数据恢复 支持压缩表 支持在没有SYSTEM表空间和数据字典损坏的情况下恢复数据,在没有数据字典可用时,ODU能够自动判断数据的类型 支持IOT表导出: 普通IOT表的导出 压缩IOT表的导出 支持IOT表溢出段 支持IOT表分区(包括子分区) 只能在有SYSTEM表空间时才能导出IOT表 支持多种平台的数据库,包括AIX、LINUX、HPUX、SOLARIS、WINDOWS等。能够在一个平台上导出其他平台的数据,比如在Windows 32位系统上,使用AIX系统上的数据文件导出数据。 支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i+) , BINARY FLOAT, BINARY DOUBLE (10g+) 导出的数据格式包括纯文本和DMP文件两种。以纯文本导出时,能够自动生成建表的SQL和SQLLDR导入所需的CONTROL文件(.CTL) 支持同一个库中不同的块大小的数据文件。 全面支持LOB字段: 支持CLOB、NCLOB和BLOB CLOB支持Big Endian和Little Endian字节序 支持LOB分区,子分区 支持同一个表中,不同LOB列使用不同CHUNCK SIZE的情况 CLOB数据可以导出到与其他列相同的文件中,或存储到单独的文件中 LOB列只有在SYSTEM表空间存在的情况下才能导出 支持多种字符集之间的转换,能够正确的转换CLOB、NCLOB、NVARCHAR2列类型的数据到指定的字符集。 ODU全面支持64位系统,支持超过4G大小的数据文件。 支持复制操作系统命令不能复制的坏文件 模拟oracle的dump块功能,能够dump数据文件块的数据 目前不支持的功能: 11g的SecureFiles ------------------------ 详细使用说明见 http://www.laoxiong.net/odu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值