分享ORACLE數據庫恢復神器之ODU、DUL和AUL工具。

ODU:ORACLE DATABASE UNLOADER

DUL:DATA UNLOADER

AUL:也稱MyDUL

關於三種工具說明:

(1)Oracle 的內部工具是DUL(Data UnLoader)。這個需要Oracle 的支持。

(2)老熊寫的ODU   網址:http://www.oracleodu.com/en/

(3)d.c.b.a (支付寶 樓方鑫)寫的AUL. 網址:http://www.anysql.net/download

ODU之前是免費的, 現在老熊和dbsnake在維護ODU,需要購買才能使用。

d.c.b.a的AUL是用C語言寫的, 免費版本最大只支持2個,最大256M的datafile。 如果是更大的datafile,也是需要購買授權。

1、DUL

DUL不是一個商用化的產品,Oracle不賣、不提供也不支持它的使用。DUL只有在Oracle的內部網 站才可以下載到,因此也只有Oracle 的Supporter才能下載到有這個工具,如果與Oracle的Supporter熟悉,沒准他私底下會給你一個,這個工具也因此有一些流落到民間,被一些人收入囊中,奉為珍寶。

不同的平台、不同版本的數據庫都有相應的DUL軟件,9.x 及之前DUL是沒有License限制的,也就是有這個工具可以無限制的使用,不過最新的DUL在這方面已經改進了,kamus說最新DUL拿到手只能用一個月。

獲得DUL有以下幾種途徑:

如果你是Oracle的Supporter,可以在內部網站下載,地址為:

http ://www.nl.oracle.com/support/dul/

如果你有Oracle的Supporter的朋友可以向他們要一個,itpub也幾位斑竹都到 Oracle了,如coolyl、kamus、lunar。一些dul流落到民間,可以向有這軟件的朋友要一個,不過他們一定要有你需要的那個。

DUL 支持分區表、索引組織表(IOT)這些選項,支持標准的數據類型及據結構,具體如下:

支持行鏈接和行遷移

支持哈希和索引cluster

支持NULL列

支持LONG、RAW、DATE、NUMBER、ROWID

支持多free list group

支持多字節字符集

支持LOB 類型列,不過需要注意的是,有LOB類型列的表在做DUL時輸出需要為SQL*Loader格式。

DUL有什么限制和危險

DUL 畢竟是一個大小幾百K的一個小工具而已,而Oracle功能越來越復雜,也因而有一些是DUL不支持或做的不完備的。前面已經提到,你的數據庫可以是啟動不了的,但是要Unload的數據的據文件、數據塊是保證是好的, 為DUL在Unload過程中會對數據塊做檢驗,檢驗讀到的數據塊是不是塊的,是不是屬於正確的段。如果發現壞塊,DUL會在屏幕顯示出錯誤信息,同時將報錯信息寫到日志。

DUL支持多級別安全標簽(MLSLABEL) , 支持VARRAY,OBJECT類型列,也支持嵌套表。DUL在Unload過程中不會考慮到數據庫一致性,它假定所有數據文件中的數據都是已經提交了的,沒有了數據一致性的校驗DUL實際做的是臟讀,這是DUL比較大的缺點。不過關於這一點也是有點好處的,可以用此恢復TRUNCATE/DROP誤操作的表。

DUL 的輸出格式

以.dmp為輸同格式時每表生成一個文件(owner_tablename.dmp) ,以sql*loader為輸出格式時每表生成兩個文件(owner_tablename.ctl和 owner_tablename.dat) 。如果設定了FILE 參數,生成的文件名將 會為FILEnnn.ext,如果你的操作系統不支持長文件名,FILE參此時才會用到。

2、ODU

ODU全稱為Oracle Database Unloader,是由OracleODU開發的類似於Oracle的DUL的一款恢復軟件,用於直接從Oracle數據庫的數據文件中獲取表數據。在各種原因造成的數據庫不能打開時,用於搶救數據,最大限度地減少數據丟失。在一些實際的恢復案例中,DUL並不能將所有的重要數據都恢復出來(或者恢復出來的CLOB數據是亂碼),但ODU卻可以。

獲取ODU地址

ODU最新正式版:

Windows版本:odu_421_win32.zip

Linux版本:odu_421_linux_x86.tar.gz

AIX版本:odu_421_aix53.tar.gz

HP PA-RISC版本:odu_414_hppa.tar.gz

HP IA64版本:odu_414_hp_ia64.tar.gz

Solaris SPARC版本:odu_421_sol_sparc.zip

ODU最新試用版:

Windows版本:odu_trial_413_win32.zip

Linux x86版本:odu_trial_413_linux_x86.tar.gz

AIX版本:odu_trial_413_aix53.tar.gz

HP PA-RISC版本:odu_trial_412_hppa.tar.gz

HP IA64版本:odu_trial_412_hp_ia64.tar.gz

Solaris SPARC版本:odu_trial_413_sol_sparc.zip

ODU正式版和試用版的區別:試用版僅用於測試、學習和驗證,只能恢復SYSTEM表空間下的數據,對於其他表空間的數據,僅恢復少量的數據以驗證數據可恢復。而正式版在獲取LICENSE后能夠恢復所有能夠恢復的數據。

在使用IE瀏覽器下載ODU軟件時,IE瀏覽器可能會將安裝包的tar.gz擴展名自動改為tar.tar,對於這樣的改變,請將文件的擴展名改回為tar.gz。

ODU的主要功能點:

(1)不需要運行Oracle數據庫軟件,ODU直接讀取數據庫文件解析數據。

(2)支持ASM,能夠直接從ASM磁盤中導出數據,即使相關的磁盤組不能成功mount

(3)支持從ASM中直接抽取出數據文件和其他任意存儲在ASM中的文件(包括控制文件、日志文件和歸檔日志等),即使相關的磁盤組不能成功mount

(4)支持的Oracle數據庫版本包括7,8i,9i,10g,11g

(5)支持多種平台的數據庫,包括AIX、LINUX、HPUX、SOLARIS、WINDOWS等。能夠在一個平台上導出其他平台的數據,比如在Windows 32位系統上,使用AIX系統上的數據文件導出數據。

(6)支持的數據類型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i+) , BINARY FLOAT, BINARY DOUBLE (10g+)

(7)全面支持LOB字段:

支持CLOB、NCLOB和BLOB,CLOB支持Big Endian和Little Endian字節序

支持LOB分區,子分區

支持同一個表中,不同LOB列使用不同CHUNK SIZE的情況

CLOB數據可以導出到與其他列相同的文件中,或存儲到單獨的文件

LOB列在沒有SYSTEM表空間的情況下仍然能夠導出

LOB列在相關的lob index損壞的情況下依然能夠導出

(8)支持各種表,包括普通的HEAP表,IOT表和聚簇(CLUSTER)表

(9)支持IOT表:

(10)支持普通IOT表的導出

(11)支持壓縮IOT表的導出

(12)支持IOT表溢出段

(13)支持IOT表分區(包括子分區)

(14)只能在有SYSTEM表空間時才能導出IOT表

(15) 支持壓縮表

(16)支持表被truncate后的數據恢復

(17)支持表被drop后的數據恢復

(18)在有SYSTEM表空間的情況下,自動獲取數據字典信息

(19)支持在沒有SYSTEM表空間和數據字典損壞的情況下恢復數據,在沒有數據字典可用時,ODU能夠自動判斷數據的類型

(20)支持10g及以上的大文件(BigFile)表空間

(21)全面支持64位系統,支持超過4G大小的數據文件。

(22)支持復制操作系統命令不能復制的壞文件

(23)支持同一個庫中不同塊大小的數據文件。

(24)支持多種字符集之間的轉換,能夠正確的轉換CLOB、NCLOB、NVARCHAR2列類型的數據到指定的字符集。

(25)自動檢測數據文件的表空間號和文件號

(26)導出的數據格式包括純文本和DMP文件兩種。以純文本導出時,能夠自動生成建表的SQL語句和SQL*Loader導入所需的control文件

(27)模擬Oracle的dump塊功能,能夠dump數據文件中的數據塊

(28)支持DESC表,以顯示表的列定義

(29)支持列出表的分區和子分區

ODU目前不支持的功能:

(1)11g的SecureFiles

(2)使用Oracle TDE加密的數據

3、AUL

AUL是 AnySQL UnLoader 的簡寫,和DUL具有相同的功能,可以離開Oracle的運行環境將數據文件中的數據讀取出來存成文本文件或DMP格式的文件。

AUL功能特點功能特點:

AUL 支持 Oracle 8/8i/9i/10g 四個版本,而對 Oracle7並不提供支持。

支持表、聚族(Cluster)及索引組織表(IOT)的恢復

支持的數據類型有:NUMBER、DATE、CHAR、VARCHAR2、RAW、LONG、LONG、RAW、BINARY_FLOAT、BINARY_DOUBLE、TIMESTAMP、TIMESTAMP WITH TIME ZONE、CLOB 及 BLOB,基本上覆蓋了我們最常用的數據類型,為恢復提供了可靠的保障。

可以恢復成文本方式及 DMP(Oracle 8.1.7 版本)格式。

采用標准C語言寫成,運行速度極快,很容易可以移植到各種不同的平台,

現在已經順利編譯的平台有 Windows、Linux、AIX 和 Solaris (Sparc)。

支持跨平台的恢復,如用Windows下的 AUL 軟件來恢復損壞的Solaris平台下的Oracle 數據庫文件.

支持 CLOB及 BLOB,支持不同的CHUNK SIZE,但同一個表的各個 CLOB 的CHUNK SIZE 必須相同。

什么情況下使用

當你的數據庫損壞,並且沒有備份或備份已經不可用,在償試其他所有辦法均 失敗的情況下,可以考慮使用AUL 來恢復你的數據。AUL 可以將數據從數據文件中讀取出來,但絕不是去修復損壞的數據文件,你需要將恢復出來的數據重新導入或

用 SQL Loader 裝載到新的數據庫中。當你遇到下面的情形時,你可以考慮用AUL進行最后的數據恢復:

行最后的數據恢復:

(1)丟失系統表空間文件.

(2)系統表空間文件損壞.

(3)表空間刪除了但數據文件還存在.

(4)表被刪除但那部份空間還沒有被重用.

(5)使用權用"reuse storage"選項截斷(TRUNCATE)表.

(6)表被截斷, 但釋放出來的空間還沒有被其他對象重用.

從上面可以看出,當你不小心刪除或截斷了表又沒有備份時,首先要做的是停所有的數據庫應用,將表所在的數據文件作冷備份,以防止釋放出來的空間被覆,如果被新的記錄覆蓋了,那么無論誰都沒有辦法幫你恢復失去的數據了。從過去兩年的情況看,這樣的人為錯誤居然占多數。

AUL不完全免費

AUL 不是開源的,也不是完全免費的。為什么說他不是完全免費的呢?免費的AUL只能打開最多四個數據文件,並且每個文件只能讀取最前面的512MB 內容。

AUL的下載地址:

特別提示:

以上所列的三種工具,不到必不得以不要輕易嘗試,以上操作要慎重,否則后果更加嚴重。對於DBA來說,備份是基礎,且不能大意。牢記。

參考:

《Lfie is DUL without it》楊寶秋著

《AnySQL Unloader用戶指南》 樓方鑫著

《ODU使用指南》 熊軍著

http://www.mydul.net/cn/

oracle aul 索引,ORACLE恢復神器之ODU/AUL/DUL相关推荐

  1. oracle数据库恢复aul_ORACLE恢复神器之ODU/AUL/DUL

    分享ORACLE数据库恢复神器之ODU.DUL和AUL工具. ODU:ORACLE DATABASE UNLOADER DUL:DATA UNLOADER AUL:也称MyDUL 关于三种工具说明: ...

  2. oracle查询表唯一索引,oracle查询索引(oracle查看表索引)

    oracle查询索引(oracle查看表索引) 2020-07-24 11:01:26 共10个回答 选中表右键View然后查看index 通过PL/SQL可以直接查看某表是否建索引,通过SQL查询s ...

  3. oracle 同步索引,oracle全文索引之同步和优化索引做了什么

    一.同步索引做了什么 我们知道,在数据被修改后,不能被查询到了,直到索引被同步.那么同步索引做了那些工作呢? > insert into t_domain values(3,'this is b ...

  4. oracle二级索引,Oracle Index-organized table (IOT)概述

    一.几种表类型 TypeDescription Ordinary(heap-organized) tableData is stored as an unordered collection (hea ...

  5. oracle暂停索引,Oracle索引被抑制情况

    前言.在做Oracle数据库调优的很多情况下,都可以通过增加索引来提高数据库的性能,但是有些情况下DBA也是无能为力的,因为该有的索引都已经创建了,但是由于开发人员所写的SQL语句的问题导致不能走索引 ...

  6. Oracle——03索引

    Oracle--03索引 Oracle 索引 详解 创建Oracle索引的标准语法: CREATE INDEX 索引名 ON 表名 (列名)      TABLESPACE 表空间名; 创建唯一索引: ...

  7. oracle dataguard 日志 很多no,Oracle DataGuard主庫丟失歸檔日志后備庫的RMAN增量恢復一例...

    第一部分  問題描述和環境狀態確認 ----1. 問題場景 Oracle DataGuard主庫丟失archivelog,如何不重建備庫完成同步? 在Oracle DataGuard主從同步過程中可能 ...

  8. XMD RAC(Oracle 9i) 存儲修復處理

    處理技朮﹕ [root@DELL-RAC02 root]# powermt display dev=all Pseudo name=emcpoweri CLARiiON ID=CK2000407000 ...

  9. 如何获得Oracle分区索引类型

    碰巧在墨天轮上看资料就看到了eygle的这篇文章<如何获得 Oracle 分区索引的类型 - 全局分区索引.本地分区索引>,秉承了eygle大神一如既往的风格,文章"短小&quo ...

最新文章

  1. 金星可能存在生命?科学家发现大气中有磷化氢,剧毒气体或是生物代谢产物...
  2. WIN32 Inline HOOK
  3. 老男孩linux培训期中学生作业文档目录展示
  4. SAP BOPF BO draft状态的数据激活原理
  5. python怎么解释语言_python是解释型语言吗
  6. numpy 中np.max--求序列的最大值和np.maximum--X和Y逐位进行比较,选择最大值
  7. php把excel转化为csv,php如何把excel转化为csv
  8. jQuery选择器,用逗号分隔的时候需要注意范围问题
  9. Angular学习笔记(五) - 自定义表单控件
  10. Kafka 居然还会丢消息?
  11. dbeaver查看执行计划_SAP学习基础篇(52):PP模块-物料需求计划
  12. UnityShader基础案例(二)——UI流光,扭曲,外边框,波纹效果
  13. 【Linux实验】Linux操作基础
  14. Tumblr营销大法(三)
  15. java开发微信公众号入门指引,jsp(java)开发微信公众平台入门
  16. Linux服务器远程连接
  17. Http协议的身份认证
  18. Java MediaMetadataCompat
  19. 使用OES纹理+GLSurfaceView+JNI实现基于OpenGL ES的播放器画面处理
  20. csdn搬迁至博客园

热门文章

  1. 阿里云API网关相关操作
  2. DNS 隐蔽通道工具资料汇总
  3. 简单动态启停图 js jquery css3
  4. Quasar Akka Vertx Norbert 比较
  5. CentOS 6.4 搭建SVN服务器
  6. [翻译]MongoDb 架构(MongoDb Architecture)
  7. Eclipse常见问题集锦
  8. “口碑营销”产品模型推测与分析
  9. [19/04/02-星期二] IO技术_字符流分类总结(含字符转换流InputStreamReader/ OutputStreamWriter,实现字节转字符)...
  10. 2019年春季学期第4周作业.