Oracle DUL工具标准版

程序简介
Oracle DUL是一个导出数据的终极工具,在数据库损坏不能启动的情况下,可以直接从数据文件中读取数据,作为恢复数据的最后手段。 它的强大功能这儿就不介绍了,在网上搜一下就可看到。我们的这款软件就是为了实现这些功能设计开发的。

我们的DUL工具能在数据库不启动的情况下,从系统表空间中导出Oracle的数据字典,保存成格式化文件,能够通过命令查看用户和用户下的对象, 以及用户表的定义。通过命令导出一个用户下的所有表数据,或者单独导出一个表的数据,存储成自定义格式的文件, 并提供一个导入工具把这个文件的数据装载到其他Oracle数据库中,实现数据的恢复。

这个软件分为几个版本,按从易到难的规则分为迷你版,标准版,企业版,专业版,对行连接数据,LONG类型,BasicFile LOB, SecureFile LOB有不同的支持。随同软件一起的还有一份详细的Oracle数据存储文件块的描述文档,解密了Block 0,Block 1的格式, 普通数据块的格式,ASSM和MSSM段管理的区别,详细介绍了一些字段的含义,描述了extent map的存储格式,还解密了B*Tree索引的数据块结构, 详细分析了BasicFile LOB的存储结构,描述了通过LOB Index读取LOB数据的过程,也详细分析了最新的SecureFile LOB的存储结构, 还分析了当LOB数据比较大时,用于索引的LHB和itree结构。对于行数据格式,详细分析了Cluster数据的存储格式, 行连接和行迁移的格式及处理方式,还有Row Dependencies的行头结构。

国内也有个人或公司开发了类似的软件,如AUL,ODU,PRM-DUL等,这些都是商业软件,专用于数据恢复。我们的软件与它们的目的不同, 只为学习交流使用,所以去除了其中繁杂的成分,能够简洁的看到数据导出的过程,并且有源代码参照,你可以跟踪进去,慢慢体会数据的结构, 对文档中的解释加深理解,上面提到的软件可不会提供源代码,所以这是一个学习的好机会。
支持的数据类型有:
  NUMBER
  CHAR,NCHAR
  VARCHAR2,NVARCHAR2
  RAW
  LONG,LONG RAW
  BINARY_FLOAT
  BINARY_DOUBLE
  DATE
  TIMESTAMP
  TIMESTAMP WITH TIME ZONE
  TIMESTAMP WITH LOCAL TIME ZONE
  INTERVAL YEAR TO MONTH
  INTERVAL DAY TO SECOND
  CLOB,NCLOB
  BLOB
          
所需知识
这个软件是在Linux下用C语言开发的,在阅读源代码时需要熟悉C语言和Linux的系统调用,尤其是文件的操作。数据导入工具是用OCI编写的,所以也要熟悉OCI编程技术和Oracle的一些基本概念。代码结构简洁,有详细的注释,很方便阅读。
你能得到什么
这是一个技术含量很高的软件,国内没有几个人写得出来。学习这个软件,你可以了解Oracle数据库启动的源头,数据存储的基本单位-不同块的格式,各个数据字典基础表的作用, 字典表之间的关联关系,空间分配的不同管理模式下的数据格式,聚簇表是怎样存储的,行连接的各个数据片段的连接关系,删除列怎样处理,unused列怎样处理, 删除数据的实质是什么,删除表和截断表有什么区别,为什么要使用LOB字段,传统的BasicFile LOB为什么要被SecureFile LOB替代,它们又是怎样存储的,索引结构是什么样子的, 为什么表最好要创建主键,怎样设计表才能让它的访问速度最快,这些问题都能在这个软件中找到答案。存储结构是数据库最核心的机密,数据库的大部分特性都与它的存储结构相关, 了解了这些,就能对Oracle数据库有一个深层次的认识,就掌握了它的运行机制和原理,这样遇到很多问题就能找到最佳的解决方案。

学会了这些,你自己在设计系统和处理一些复杂问题时,就可以借鉴Oracle的做法,找到更好、更巧妙的解决办法,你的能力也会大幅度提升。

IT人员最有价值的就是自身的技术实力和解决问题的能力,如果你想站在比别人更高的位置上,就要在这两方面超越常人,除了自身的努力,找到提升的方法更为重要。 如果你是个初级的IT从业者,让你的起跑线比别人更靠前,这个软件能让你站在新高度,如果你是一个资深人士,你从这个软件中将会得到更多,到了一定的时候, 一个人需要有个东西能激发你顿悟,就像武侠小说中练功通关一样,这个软件就是一个上乘的武功秘籍,让你达到顶尖高手的程度。还等什么呢?窥探到这个软件中的秘密, 离你梦想中的江湖地位就更近了,而这只需要很小的代价,却可以得到千百倍的回报。
各版本支持的功能
标准版专业版
基本内建数据类型
大文件表空间
ASSM段管理
MSSM段管理
国际字符集支持
中文支持
Row Dependencies
unused column
hidden column
dropped column
系统表空间读取数据字典
Cluster表
行连接和行迁移读取
LONG数据类型支持
BasicFile LOB支持
SecureFile LOB支持
文档截图
Oracle数据文件结构文档图





Oracle DUL程序设计文档图


运行环境
下载的测试代码在64位 CentOS 5.6
Oracle 11.2.0.1上测试通过

Linux内核版本 2.6.18
在这个版本以上的Linux x86_64环境都可以运行
下载测试