用DUL恢復故障的資料庫
當資料庫崩潰,沒有其他資料拯救手段的時候,DUL可以保證客戶的資料損失降低到最小。合法的ORACLE使用者可以向ORACLE申請DUL工具或者購買DUL資料拯救服務。DUL(Data Recovery Unloader)是一個可獨立使用的ORACLE資料下載工具,是由Bernard VAN Duijnen編寫的,目前已經被ORACLE公司收購併作為內部工具使用。DUL不需要依賴任何RDBMS,就可以將資料檔案中的資料匯出,生成EXP格式檔案或者SQL*LOADER檔案(同時生成SQL*LOADER的控制檔案)。DUL的應用場合是資料庫崩潰,並且沒有最近的備份。如果有合適的備份,那麼使用備份系統恢復是第一選擇,因為使用DUL不能保證資料的邏輯正確性。
本節僅僅簡單介紹DUL的功能,詳細的DUL使用可以向ORACLE公司索取。
當資料庫崩潰,而資料檔案沒有受到破壞的情況下,使用DUL可以從資料檔案中將表、索引等資訊匯出。
l DUL可以匯出從ORACLE 6到目前最新版本的資料。並且在所有的平臺上,ORACLE都提供DUL工具。任何平臺下的DUL工具可以匯出其他平臺上的���據檔案,如果你沒有資料庫平臺上的DUL工具,那麼擁有一個其他平臺上的DUL工具,也是一種很幸運的事情。
l 如果SYSTEM表空間十分完整,那麼DUL可以獲得所有的資料字典資訊,如果SYSTEM表空間檔案丟失或者損壞,那麼DUL無法獲得資料字典的資訊,但是DUL仍然可以匯出資料。只是匯出時DUL無法知道該資料的表名和欄位名,匯出後,控制檔案需要修改後才能使用。
l 如果沒有當前SYSTEM表空間的檔案,可以使用早期的SYSTEM表空間備份
l DUL的命令可以直接匯出整個資料庫或者匯出一個SCHEMA或者一張單獨的表。
l DUL可以生成EXP格式的輸出檔案或者生成SQL*LOADER的檔案(含控制檔案)
DUL可以下載以下的物件:
l 普通表資料,包含行鏈行遷移的資料都能被正確匯出
l HASH表資料
l CLUSTER表資料
l 分割槽表資料
l 索引組織表資料
l LOB資料
l 支援ORACLE標準資料型別
l 支援所有的字符集,支援多位元組資料
DUL也不是萬能的,以下是DUL不支援的:
l DUL只能下載資料,不能生成觸發器、儲存過程、表、檢視等的指令碼
l DUL在下載多位元組的表名(比如表名使用漢字)的表資料的時候會碰到問題
l 如果下載LOB資料,那麼輸出格式不支援exp格式
l 如果下載資料包含LONG RAW型別,那麼輸出格式不支援SQL*LOADER格式
l DUL不支援VARRAY/物件/Nested Table等型別的資料
l DUL不支援MLSLABEL型別
l DUL不進行一致性檢查
使用DUL的注意事項
在使用DUL進行資料拯救前,需要有如下的資訊:
l 所有資料檔案的列表,包含資料檔案的檔案號和全路徑檔名
l 建立應用資料字典的指令碼
l 如果擁有以前的exp備份,對於資料恢復將是十分有用的
l 確定需要拯救的資料量,並根據資料量準備好儲存介質,制定好傳輸策略等方案
l 如果資料檔案存放在裸裝置上,還需要了解裸裝置的情況,有些廠家的裸裝置檔案前面有一定的裸裝置頭,需要跳過
l 如果你無法得到你的作業系統上的DUL工具,你可以將資料檔案傳輸到DUL所在的機器上進行資料下載,那樣情況,要確定DUL配置檔案設定了正確的OS引數
除了上面所說的資訊外,要想進行資料拯救,要有足夠的耐心,這可能是一個十分漫長和枯燥的過程。當然了,要讓資料儘可能減少的損失,還需要一點運氣。