oracle database unloader,Oracle Database Unloader快速上手分享

什么是ODU?

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位

支持的数据类型包括: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

ODU有什么使用限制吗?

ODU目前没有任何使用上的限制,没有在软件中设置功能上的限制。

本文将以ODU 2.1.0 for Windows版,介绍如何使用ODU。本文只是一个快速上手指南,以后将详细介绍ODU的使用。

在本网站下载到ODU的Windows版本,是一个ZIP压缩文件,解压缩到一个目录,比如解压到d:,将会看到d:odu目录下有如下的文件和目录:

D:odu>dir

驱动器 D 中的卷没有标签。

卷的序列号是 045E-00DE

D:odu 的目录

2009-02-08  22:12   

2009-02-08  22:12   

2009-02-08  01:16               218 config.txt

2009-02-08  01:16                99 control.txt

2009-02-08  22:12   

2004-10-14  00:08           978,432 libiconv2.dll

2009-02-08  19:00           135,168 odu.exe

4 个文件      1,113,917 字节

3 个目录  1,738,174,464 可用字节

D:odu>

如果没有data目录,请手工新建一个。

config.txt文件是ODU的配置文件,默认的配置数据如下:

byte_order little

block_size 8192

data_path data

lob_path lob

charset_name ZHS16GBK

ncharset_name AL16UTF16

output_format text

lob_storage file

clob_byte_order little

trace_level 1

file_header_offset 0

delimiter |

默认的配置基本能满足大部分的需求。

control.txt文件是ODU的数据文件信息文件。你可以理解为类似于Oracle数据库的控制文件,存放了ODU导出数据时需要的Oracle数据文件信息。

control.txt文件中的数据格式为:

表空间号 文件号 相对文件号 文件名 块大小 是否大文件表空间

每列之间用空白分隔,可以只需要前四列,即块大小和是否大文件表空间可省略,块大小省略时,数据文件的默认块大小为config.txt中block_size的大小。下面是一个示例的数据:

#ts #fno   #rfno     filename                                          block_size    bigfile

0          1          1 D:ORACLEORADATAXJSYSTEM01.DBF              4096

1          2          2 D:ORACLEORADATAXJUNDOTBS01.DBF             4096

3          3          3 D:ORACLEORADATAXJDRSYS01.DBF               4096

4          4          4 D:ORACLEORADATAXJEXAMPLE01.DBF             4096

5          5          5 D:ORACLEORADATAXJINDX01.DBF                4096

6          6          6 D:ORACLEORADATAXJODM01.DBF                 4096

7          7          7 D:ORACLEORADATAXJTOOLS03.DBF               4096

7          8          8 D:ORACLEORADATAXJTOOLS02.DBF               4096

9          9          9 D:ORACLEORADATAXJXDB01.DBF                 4096

11         10         10 D:ORACLEORADATAXJTEST01.DBF                2048

14         11         11 D:ORACLEORADATAXJK16.DBF                  16384

如果数据文件头是完好的,则ODU会自动从文件头里面获取表空间号,文件号,相对文件号,文件块大小等。表空间号,文件号和相对文件号可以写为0。

注意:ODU将检查control.txt文件中的第一个数据文件是否为SYSTEM表空间文件,所以要将SYSTEM表空间的第1个文件放在control.txt文件中的第一行。否则将不能自动获得数据字典数据。

运行odu命令,显示如下的信息:

Oracle Data Unloader:Release 2.1.0

Copyright (c) 2008,2009 XiongJun. All rights reserved.

Web: http://www.laoxiong.net

Email: magic007cn@gmail.com

loading default config…….

byte_order little

block_size 8192

data_path data

lob_path lob

charset_name ZHS16GBK

ncharset_name AL16UTF16

output_format text

lob_storage file

clob_byte_order little

trace_level 1

delimiter |

load control file ‘config.txt’ successful

loading default control file ……

load control file ‘config.txt’ successful

loading default control file ……

ts#   fn  rfn bsize   blocks bf filename

—- —- —- —– ——– — ——————————————–

0    1    1  4096   128000 N  D:ORACLEORADATAXJSYSTEM01.DBF

1    2    2  4096    51200 N  D:ORACLEORADATAXJUNDOTBS01.DBF

3    3    3  4096     5120 N  D:ORACLEORADATAXJDRSYS01.DBF

4    4    4  4096    37280 N  D:ORACLEORADATAXJEXAMPLE01.DBF

5    5    5  4096     6400 N  D:ORACLEORADATAXJINDX01.DBF

6    6    6  4096     5120 N  D:ORACLEORADATAXJODM01.DBF

7    7    7  4096     5120 N  D:ORACLEORADATAXJTOOLS03.DBF

7    8    8  4096      512 N  D:ORACLEORADATAXJTOOLS02.DBF

9    9    9  4096     9760 N  D:ORACLEORADATAXJXDB01.DBF

11   10   10  2048    56655 N  D:ORACLEORADATAXJTEST01.DBF

14   11   11 16384      256 N  D:ORACLEORADATAXJK16.DBF

load control file ‘control.txt’ successful

loading dictionary data……

ODU>

显示完上面的信息后,将会显示如sqlplus类似的提示符“ODU >”,在此提示符下,输入命令。

输入命令unload dict,将从SYSTEM表空间中导出数据字典,并存储在.odu文件中。下次打开odu时,odu会自动从生成的文件中装入数据字典。unload dict命令显示的结果如下:

ODU> unload dict

CLUSTER C_USER# file_no: 1 block_no: 177

TABLE OBJ$ file_no: 1 block_no: 241

CLUSTER C_OBJ# file_no: 1 block_no: 49

CLUSTER C_OBJ# file_no: 1 block_no: 49

found IND$’s obj# 19

found IND$’s dataobj#:2,ts#:0,file#:1,block#:49,tab#:3

found TABPART$’s obj# 230

found TABPART$’s dataobj#:230,ts#:0,file#:1,block#:3313,tab#:0

found INDPART$’s obj# 234

found INDPART$’s dataobj#:234,ts#:0,file#:1,block#:3377,tab#:0

found TABSUBPART$’s obj# 240

found TABSUBPART$’s dataobj#:240,ts#:0,file#:1,block#:3473,tab#:0

found INDSUBPART$’s obj# 245

found INDSUBPART$’s dataobj#:245,ts#:0,file#:1,block#:3553,tab#:0

found IND$’s obj# 19

found IND$’s dataobj#:2,ts#:0,file#:1,block#:49,tab#:3

found LOB$’s obj# 156

found LOB$’s dataobj#:2,ts#:0,file#:1,block#:49,tab#:6

found LOBFRAG$’s obj# 258

found LOBFRAG$’s dataobj#:258,ts#:0,file#:1,block#:3761,tab#:0

ODU>

输入HELP命令可以查看ODU支持的命令列表:

ODU> help

help      —-   get command list

exit      —-   exit from odu

spool     —-   spool information to file

host      —-   enter os terminal

load config —-   load config information from file

open      —-   load database filename list from file

osdump    —-   dump file format hex

dump      —-   dump oracle datafile block

rowid     —-   decode rowid components

unload    —-   unload data

list      —-   list schema object,partition,datafile

charset   —-   get or list supported charset name

输入命令unload table test.t1,即可导出TEST用户下的T1表:

ODU> unload table test.t1

Unloading table: T1,object ID: 31388

Unloading s

执行完此命令后,会在data目录下生成三个文件:

TEST_T1.ctl

TEST_T1.sql

TEST_T1.txt

TEST_T1.ctl是用于sqlldr装入数据所需要的控制文件,TEST_T1.sql是建表SQL脚本,TEST_T1.txt是导出的数据。

我们可以用sql文件建表,然后使用sqlldr装入数据

—-想了解更多的

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/uncategorized/47082.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值