oracle數(shù)據(jù)庫(kù)誤執(zhí)行truncate命令導(dǎo)致數(shù)據(jù)丟失是一種常見(jiàn)情況。通常情況下,oracle數(shù)據(jù)庫(kù)誤操作刪除數(shù)據(jù)只需要通過(guò)備份恢復(fù)數(shù)據(jù)即可。也會(huì)碰到一些特殊情況,例如數(shù)據(jù)庫(kù)備份無(wú)法使用或者還原報(bào)錯(cuò)等。下面和大家分享一例oracle數(shù)據(jù)庫(kù)誤執(zhí)行truncate命令導(dǎo)致數(shù)據(jù)丟失的數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)過(guò)程。
Tips:oracle數(shù)據(jù)庫(kù)Truncate命令工作原理:oracle通過(guò)SegmentHeader及數(shù)據(jù)字典對(duì)表的DataObjectID進(jìn)行更新,實(shí)際上存儲(chǔ)數(shù)據(jù)部分的塊并未被修改。oracle服務(wù)再次讀取全表數(shù)據(jù)時(shí)就會(huì)因?yàn)镈ataObjectID與實(shí)際存儲(chǔ)的數(shù)據(jù)塊內(nèi)容不一致導(dǎo)致被truncate的內(nèi)容記錄無(wú)法被讀取。
oracle數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)過(guò)程:
北亞企安數(shù)據(jù)恢復(fù)工程師模擬出現(xiàn)問(wèn)題的oracle數(shù)據(jù)庫(kù)環(huán)境:
操作系統(tǒng):win server;
數(shù)據(jù)庫(kù)版本:win_oracle_x64;
1、使用Scott用戶創(chuàng)建表emp1,復(fù)制emp表,連續(xù)復(fù)制多次。truncate表emp1。此時(shí)查詢?cè)摫恚瑪?shù)據(jù)庫(kù)中該表的記錄為0條。
北亞企安數(shù)據(jù)恢復(fù)—oracle數(shù)據(jù)恢復(fù)
2、打開(kāi)數(shù)據(jù)庫(kù)文件的底層數(shù)據(jù),分析system表空間文件。通過(guò)解析system01.dbf文件,找到被truncate表的原始數(shù)據(jù)所在的位置。
北亞企安數(shù)據(jù)恢復(fù)—oracle數(shù)據(jù)恢復(fù)
3、解析被truncate表所在的數(shù)據(jù)庫(kù)數(shù)據(jù)文件,找到被truncate的數(shù)據(jù)。
4、將被truncate的數(shù)據(jù)庫(kù)插入到數(shù)據(jù)庫(kù)中。
5、在數(shù)據(jù)庫(kù)中查找被truncate的表,發(fā)現(xiàn)數(shù)據(jù)回來(lái)了,備份數(shù)據(jù)。
北亞企安數(shù)據(jù)恢復(fù)—oracle數(shù)據(jù)恢復(fù)
Exp導(dǎo)出scott用戶。
北亞企安數(shù)據(jù)恢復(fù)—oracle數(shù)據(jù)恢復(fù)
審核編輯 黃宇
-
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
644瀏覽量
18084 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3909瀏覽量
65987 -
Oracle
+關(guān)注
關(guān)注
2文章
300瀏覽量
35946
發(fā)布評(píng)論請(qǐng)先 登錄
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server附加數(shù)據(jù)庫(kù)提示“錯(cuò)誤 823”的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—raid5陣列上層win系統(tǒng)+oracle數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)案例
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—ORACLE常見(jiàn)故障的數(shù)據(jù)恢復(fù)可行性分析
Sybase數(shù)據(jù)恢復(fù)—Sybase數(shù)據(jù)庫(kù)無(wú)法啟動(dòng)怎么恢復(fù)數(shù)據(jù)?

Oracle報(bào)錯(cuò)“system01.dbf需要更多的恢復(fù)來(lái)保持一致性”的數(shù)據(jù)恢復(fù)案例

oracle數(shù)據(jù)恢復(fù)—存儲(chǔ)掉盤(pán)導(dǎo)致Oracle數(shù)據(jù)庫(kù)文件大小變?yōu)?kb的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—通過(guò)拼接數(shù)據(jù)庫(kù)碎片恢復(fù)SQLserver數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Oracle ASM實(shí)例無(wú)法掛載的數(shù)據(jù)恢復(fù)案例

oracle數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫(kù)打開(kāi)報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例

Oracle數(shù)據(jù)恢復(fù)—異常斷電后Oracle數(shù)據(jù)庫(kù)啟庫(kù)報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫(kù)文件system01.dbf損壞的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)出現(xiàn)823錯(cuò)誤的數(shù)據(jù)恢復(fù)案例

評(píng)論