dul無法加載bootstrap實現(xiàn)unload table/user恢復(fù)
聯(lián)系:手機(+86 13429648788) QQ(107644445)QQ咨詢惜分飛
標題:dul無法加載bootstrap實現(xiàn)unload table/user恢復(fù)
作者:惜分飛
最近有朋友誤操作引起了非常大的事故,差點吃了官司.在做數(shù)據(jù)庫遷移的時候,遠程誤操作刪除了原庫的system等幾個數(shù)據(jù)庫初始安裝的文件,而且該磁盤空間使用率非常高,還有少量寫入.
最后結(jié)果比較悲劇,通過文件系統(tǒng)層面無法直接恢復(fù)出來數(shù)據(jù)文件,而且該庫無任何有效備份,又沒有表名,列名等信息,無奈之下只能通過底層io block重組來恢復(fù)數(shù)據(jù)文件,可是悲劇又一次發(fā)生,這個磁盤上以前也有一份system等文件,最后經(jīng)過多方重組恢復(fù)出來一份相對理想的數(shù)據(jù)文件.
但是第三方公司通過這樣重組出來的數(shù)據(jù)文件和未被刪除的業(yè)務(wù)文件恢復(fù)出來的數(shù)據(jù)大量有問題,依舊需要我們進一步分析恢復(fù)處理.
這篇文章主要描述了dul在無法加載bootstrap命令之后通過一些方法依舊可以正常使用unload table/user 等命令實現(xiàn)數(shù)據(jù)盡可能恢復(fù).你要知道幾百張表沒有表名/列名要把他們區(qū)分出來那是什么樣的工作量……
在dul中配置system文件
D:\xifenfei\system01.dbf D:\TEMP\recover\dul\bak>dul Data UnLoader: 11.2.0.0.4 - Internal Only - on Wed Sep 28 17:01:56 2016 with 64-bit io functions Copyright (c) 1994 2016 Bernard van Duijnen All rights reserved. Strictly Oracle Internal Use Only DUL> show datafiles; Sorry, no valid data files found in control.txt
使用默認的dul中數(shù)據(jù)文件配置方法,讓dul自己發(fā)現(xiàn)數(shù)據(jù)文件方法不可行
隨意表空間號和文件號dul識別
0 0 D:\xifenfei\system01.dbf D:\TEMP\recover\dul\bak>dul Data UnLoader: 11.2.0.0.4 - Internal Only - on Wed Sep 28 17:00:27 2016 with 64-bit io functions Copyright (c) 1994 2016 Bernard van Duijnen All rights reserved. Strictly Oracle Internal Use Only DUL: Warning: File Type mismatch 1 != 8 DUL: Warning: D:\xifenfei\system01.dbf Header tablespace number 3 != 0 DUL: Warning: D:\xifenfei\system01.dbf Header relative file number 1 != 0 Found db_id = 2948357999 Found db_name = XIFENFEI DUL: Warning: Found mismatch while checking file D:\xifenfei\system01.dbf DUL: Warning: DUL osd_parameter or control.dul configuration error DUL: Warning: Given file number(0) in control file does not match file# in dba(1)
通過這個識別我們可以知道system的表空間號為3,文件號為1
再次配置system讓dul識別
3 1 D:\xifenfei\system01.dbf D:\TEMP\recover\dul\bak>dul Data UnLoader: 11.2.0.0.4 - Internal Only - on Wed Sep 28 17:03:46 2016 with 64-bit io functions Copyright (c) 1994 2016 Bernard van Duijnen All rights reserved. Strictly Oracle Internal Use Only DUL: Warning: File Type mismatch 1 != 8 Found db_id = 2948357999 Found db_name = XIFENFEI DUL> show datafiles; ts# rf# start blocks offs open err file name 3 1 0 320257 0 1 0 D:\xifenfei\system01.dbf
dul正常識別出來system文件但是根據(jù)經(jīng)驗我們知道tablespace 3肯定是有問題的,因此后續(xù)操作依舊問題非常多
嘗試dul bootstrap恢復(fù)失敗
DUL> bootstrap; Scanning SYSTEM tablespace to locate compatibility segment ... DUL: Warning: No files found for tablespace 0 Reading EXT.dat 0 entries loaded and sorted 0 entries Reading SEG.dat 0 entries loaded Reading COMPATSEG.dat 0 entries loaded Reading SCANNEDLOBPAGE.dat 0 entries loaded and sorted 0 entries DUL: Error: No compatibility segments found
由于表空間號錯誤,dul無法加載到bootstrap$表,另外根據(jù)bbed分析恢復(fù)出來的system文件中bootstrap$這部分丟失
嘗試人工加載dul所需數(shù)據(jù)字典
DUL> unload table OBJ$
2 storage ( tablespace 3 segobjno 18 file 1 block 240);
. unloading table OBJ$ 79074 rows unloaded
DUL> unload table TAB$( OBJ# number, DATAOBJ# number,
2 cluster C_OBJ#(OBJ#)
3 storage ( tablespace 3 segobjno 2 tabno 1 file 1 block 144);
. unloading table TAB$ 4482 rows unloaded
DUL> unload table COL$ ( OBJ# number, COL# number , SEGCOL# number,
2 cluster C_OBJ#(OBJ#)
3 storage ( tablespace 3 segobjno 2 tabno 5 file 1 block 144);
. unloading table COL$ 114491 rows unloaded
DUL> unload table USER$
2 cluster C_USER#(USER#)
3 storage ( tablespace 3 segobjno 10 tabno 1 file 1 block 208);
. unloading table USER$ 96 rows unloaded
----其他表省略,根據(jù)需要的依次處理
嘗試使用dul恢復(fù)數(shù)據(jù)
DUL> desc portal_emr.BASEELEMENT;
Table PORTAL_EMR.BASEELEMENT
obj#= 87200, dataobj#= 87200, ts#= 9, file#= 7, block#=458
tab#= 0, segcols= 8, clucols= 0
Column information:
icol# 01 segcol# 01 BENAME len 30 type 1 VARCHAR2 cs 852(ZHS16GBK)
icol# 02 segcol# 02 TYPENAME len 30 type 1 VARCHAR2 cs 852(ZHS16GBK)
icol# 03 segcol# 03 TYPETYPE len 22 type 2 NUMBER(0,0)
icol# 04 segcol# 04 BEXMLTEXT len 4000 type 1 VARCHAR2 cs 852(ZHS16GBK)
icol# 05 segcol# 05 DEPTGROUPCODE len 30 type 1 VARCHAR2 cs 852(ZHS16GBK)
icol# 06 segcol# 06 ISCOMMON len 22 type 2 NUMBER(0,0)
icol# 07 segcol# 07 BESPELL len 15 type 1 VARCHAR2 cs 852(ZHS16GBK)
icol# 08 segcol# 08 ELEMTYPE len 22 type 2 NUMBER(0)
DUL> show datafiles;
ts# rf# start blocks offs open err file name
3 1 0 320257 0 1 0 D:\xifenfei\system01.dbf
9 7 0 4170425 0 1 0 D:\BaiduYunDownload\PORTAL_EMR
DUL> unload table portal_emr.BASEELEMENT;
. unloading table BASEELEMENT 1913 rows unloaded
這里描述了在dul無法加載bootstrap命令之后,通過人工加載數(shù)據(jù)字典實現(xiàn)正常的unload table/user功能,丟棄了一般處理思路中的只能通過scan 然后unload沒有表名,列名的處理方法,從而實現(xiàn)了恢復(fù)的最大化.
我們對原廠官方oracle dual工具有深入研究,如果在oracle dul恢復(fù)方面有搞不定的問題.
請聯(lián)系我們,提供專業(yè)ORACLE數(shù)據(jù)庫恢復(fù)技術(shù)支持
Phone:13429648788 Q Q:107644445 E-Mail:dba@xifenfei.com
以上所述是小編給大家介紹的dul無法加載bootstrap實現(xiàn)unload table/user恢復(fù),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
jQuery實現(xiàn)根據(jù)類型自動顯示和隱藏表單
這篇文章主要給大家分享了jQuery實現(xiàn)根據(jù)類型自動顯示和隱藏表單的代碼,非常的簡單實用,僅僅10行代碼,推薦給大家,希望能給大家一些提示。2015-03-03jQuery鏈式操作如何實現(xiàn)以及為什么要用鏈式操作
jQuery的鏈式操作是如何實現(xiàn)的?為什么要用鏈式操作?接下來會幫助大家解決這兩個問題,感興趣的朋友可以了解下2013-01-01關(guān)于JavaScript和jQuery的類型判斷詳解
下面小編就為大家?guī)硪黄獪\談JavaScript和jQuery的類型判斷。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10jquery應(yīng)用實例分享_實現(xiàn)手風琴特效
下面小編就為大家分享一篇jquery應(yīng)用實例_實現(xiàn)手風琴特效的示例代碼。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02