什么是ODU?

ODU全称为Oracle Database Unloader,是类似于Oracle的DUL的软件,用于直接从Oracle数据库的数据文件中获取表数据。在各种原因造成的数据库不能打开时,用于抢救数据,最大限度地减少数据丢失。

ODU有什么功能特点?

  • 支持的Oracle数据库版本包括8i,9i,10g,11g
  • 自动检测数据文件的表空间号和文件号
  • 在有SYSTEM表空间的情况下,自动获取数据字典信息。
  • 支持各种表,普通的HEAP表,IOT表,聚簇(CLUSTER)表。
  • DESC表,以显示表的列定义
  • 支持10g及以上的大文件(BigFile)表空间
  • 列出表的分区和子分区
  • 支持truncate表的数据恢复
  • 支持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大小的数据文件。
  • 支持在没有SYSTEM表空间的情况下导出数据
  • 支持TRUNCATE表和DROP表后的数据恢复。

目前不支持的功能:

  • 压缩表
  • 11g的SecureFiles

ODU有什么使用限制吗?

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

相关的教程文章:
ODU快速上手
ODU在Linux和Unix平台下的使用
ODU命令详解 PartI
ODU命令详解 PartII
从下列链接可以下载到ODU的最新版本:

Windows版本:odu_240_win32.zip (752KB)

Linux版本:odu_240_linux_x86.tar.gz (810KB)

Solaris版本:odu_210_sol_x86.tar.gz (767KB)

AIX版本:odu_240_aix53.tar.gz (972KB)