0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【數(shù)據(jù)庫數(shù)據(jù)恢復(fù)】Oracle數(shù)據(jù)庫truncate表的數(shù)據(jù)恢復(fù)過程

Frombyte ? 來源:Frombyte ? 作者:Frombyte ? 2022-10-24 11:58 ? 次閱讀

Oracle數(shù)據(jù)庫故障:
北京某公司Oracle數(shù)據(jù)庫誤truncate table CM_CHECK_ITEM_HIS,表數(shù)據(jù)丟失,業(yè)務(wù)查詢到該表時(shí)報(bào)錯(cuò),數(shù)據(jù)庫備份也不可用,表數(shù)據(jù)無法查詢。
ORACLE數(shù)據(jù)庫Truncate原理:ORACLE會(huì)在數(shù)據(jù)字典和SegmentHeader中更新表的DataObjectID,實(shí)際數(shù)據(jù)部分的塊不會(huì)做修改。由于數(shù)據(jù)字典與段頭的DATA_OBJECT_ID與后續(xù)的數(shù)據(jù)塊中的并不一致,所以O(shè)RACLE服務(wù)進(jìn)程在讀取全表數(shù)據(jù)時(shí)不會(huì)讀取到已經(jīng)被TRUNCATE的記錄(實(shí)際仍未被覆蓋)。

Oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)過程:
1、為了保護(hù)用戶原Oracle數(shù)據(jù)庫中的數(shù)據(jù)不被二次破壞,我們通過構(gòu)造與用戶相同的環(huán)境和相同的故障對(duì)本案例的Oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)的過程進(jìn)行講解。
構(gòu)造環(huán)境: 用Scott用戶創(chuàng)建表emp1,多次連續(xù)復(fù)制emp表,總記錄數(shù)為7340032條。只做truncate表emp1的操作,查詢?cè)摫?,Oracle數(shù)據(jù)庫中該表的記錄為0條。

pYYBAGNWDRWAP7i5AAKwGIpk8ro221.png

北亞數(shù)據(jù)恢復(fù)——Oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)

2、通過對(duì)system表空間文件的分析,找到truncate數(shù)據(jù)表的原始數(shù)據(jù)所在的位置。

poYBAGNWDSKAIvBHAAq31LaOKYI325.png

北亞數(shù)據(jù)恢復(fù)——Oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)

3、解析truncate數(shù)據(jù)表所在的數(shù)據(jù)文件,找到truncate的數(shù)據(jù)。
4、將truncate的數(shù)據(jù)表插入到數(shù)據(jù)庫中。
5、通過解析system01.dbf文件,北亞數(shù)據(jù)恢復(fù)工程師找到truncate的數(shù)據(jù)所在的位置,找到被刪除的數(shù)據(jù)。解析truncate數(shù)據(jù)表所在的數(shù)據(jù)文件,將truncate的數(shù)據(jù)插入到數(shù)據(jù)庫中。在Oracle數(shù)據(jù)庫中查找被truncate的數(shù)據(jù)表,發(fā)現(xiàn)數(shù)據(jù)已經(jīng)回來了,備份數(shù)據(jù)。

pYYBAGNWDSmAOLsRAAMhX5SKAOM541.png

北亞數(shù)據(jù)恢復(fù)——Oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)

6、Exp導(dǎo)出scott用戶。

pYYBAGNWDTGAVhhJAAO5VCXb7-M589.png


北亞數(shù)據(jù)恢復(fù)——Oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    打開oracle數(shù)據(jù)庫報(bào)錯(cuò)“system01.dbf需要更多的恢復(fù)來保持一致性,數(shù)據(jù)庫無法打開”。
    的頭像 發(fā)表于 09-21 14:25 ?62次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—<b class='flag-5'>Oracle</b><b class='flag-5'>數(shù)據(jù)庫</b>文件system01.dbf損壞的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

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

    SQL Server數(shù)據(jù)庫故障: SQL Server附加數(shù)據(jù)庫出現(xiàn)錯(cuò)誤823,附加數(shù)據(jù)庫失敗。數(shù)據(jù)庫沒有備份,無法通過備份恢復(fù)數(shù)據(jù)庫。
    的頭像 發(fā)表于 09-20 11:46 ?104次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—SQL Server<b class='flag-5'>數(shù)據(jù)庫</b>出現(xiàn)823錯(cuò)誤的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    Oracle數(shù)據(jù)恢復(fù)Oracle數(shù)據(jù)庫delete刪除的數(shù)據(jù)恢復(fù)方法

    刪除Oracle數(shù)據(jù)庫數(shù)據(jù)一般有以下2種方式:delete、drop或truncate。下面針對(duì)這2種刪除oracle
    的頭像 發(fā)表于 09-11 11:45 ?154次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫所在分區(qū)空間不足報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 某品牌服務(wù)器存儲(chǔ)中有兩組raid5磁盤陣列。操作系統(tǒng)層面跑著SQL Server數(shù)據(jù)庫,SQL Server
    的頭像 發(fā)表于 07-10 13:54 ?300次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—raid5陣列上層Sql Server數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 5塊硬盤組建一組RAID5陣列,劃分LUN供windows系統(tǒng)服務(wù)器使用。windows系統(tǒng)服務(wù)器內(nèi)運(yùn)行了Sql Server數(shù)據(jù)庫,存儲(chǔ)空間在操作系統(tǒng)層面劃分
    的頭像 發(fā)表于 05-08 11:43 ?392次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—raid5陣列上層Sql Server<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    Oracle數(shù)據(jù)恢復(fù)Oracle數(shù)據(jù)庫truncate數(shù)據(jù)恢復(fù)案例

    北京某國企客戶Oracle 11g R2數(shù)據(jù)庫truncate table CM_CHECK_ITEM_HIS,數(shù)據(jù)丟失,業(yè)務(wù)查詢到
    的頭像 發(fā)表于 03-11 17:30 ?293次閱讀
    <b class='flag-5'>Oracle</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—<b class='flag-5'>Oracle</b><b class='flag-5'>數(shù)據(jù)庫</b>誤<b class='flag-5'>truncate</b><b class='flag-5'>表</b>的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

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

    oracle數(shù)據(jù)庫ASM磁盤組掉線,ASM實(shí)例不能掛載。數(shù)據(jù)庫管理員嘗試修復(fù)數(shù)據(jù)庫,但是沒有成功。
    的頭像 發(fā)表于 02-01 17:39 ?371次閱讀
    【<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>】<b class='flag-5'>Oracle</b><b class='flag-5'>數(shù)據(jù)庫</b>ASM實(shí)例無法掛載的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—未開啟binlog的Mysql數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 本地服務(wù)器,windows server操作系統(tǒng) ,部署有mysql單實(shí)例,數(shù)據(jù)庫引擎類型為innodb,獨(dú)立
    的頭像 發(fā)表于 12-08 14:18 ?930次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—未開啟binlog的Mysql<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    oracle數(shù)據(jù)庫的基本操作

    、創(chuàng)建、插入數(shù)據(jù)、查詢數(shù)據(jù)、更新數(shù)據(jù)和刪除數(shù)據(jù)等。 首先,連接到Oracle
    的頭像 發(fā)表于 12-06 10:14 ?548次閱讀

    oracle數(shù)據(jù)庫的使用方法

    數(shù)據(jù)庫的使用方法,包括安裝和配置、基本操作、高級(jí)功能等方面。 一、安裝和配置 安裝Oracle數(shù)據(jù)庫前,您需要先下載合適的安裝包,根據(jù)操作系統(tǒng)的要求選擇相應(yīng)的版本。安裝Oracle
    的頭像 發(fā)表于 12-06 10:10 ?1045次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MSSQL Server報(bào)錯(cuò)“附加數(shù)據(jù)庫錯(cuò)誤823”的數(shù)據(jù)恢復(fù)案例

    MSSQL Server數(shù)據(jù)庫比較常見的報(bào)錯(cuò)是“附加數(shù)據(jù)庫錯(cuò)誤823”。如果數(shù)據(jù)庫有備份,只需要還原備份即可;如果無備份或者備份不可用,則需要使用專業(yè)的數(shù)據(jù)
    的頭像 發(fā)表于 11-10 16:20 ?700次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—MSSQL Server報(bào)錯(cuò)“附加<b class='flag-5'>數(shù)據(jù)庫</b>錯(cuò)誤823”的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MySQL數(shù)據(jù)庫誤刪除記錄的數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 一臺(tái)本地windows sever操作系統(tǒng)服務(wù)器,服務(wù)器上部署mysql數(shù)據(jù)庫單實(shí)例,引擎類型為innodb,內(nèi)
    的頭像 發(fā)表于 11-09 15:16 ?1130次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—MySQL<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>表</b>誤刪除記錄的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—斷電導(dǎo)致Oracle數(shù)據(jù)庫故障的數(shù)據(jù)恢復(fù)案例

    北京某公司一臺(tái)運(yùn)行oracle數(shù)據(jù)庫的服務(wù)器,機(jī)房意外斷電導(dǎo)致該服務(wù)器重啟,重啟后發(fā)現(xiàn)oracle數(shù)據(jù)庫報(bào)錯(cuò)。該Oracle
    的頭像 發(fā)表于 10-25 14:52 ?518次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—斷電導(dǎo)致<b class='flag-5'>Oracle</b><b class='flag-5'>數(shù)據(jù)庫</b>故障的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)-oracle數(shù)據(jù)庫報(bào)錯(cuò)無法打開的數(shù)據(jù)恢復(fù)案例

    oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 一臺(tái)服務(wù)器,底層由12塊硬盤組成一組磁盤陣列,上層操作系統(tǒng)上運(yùn)行oracle
    的頭像 發(fā)表于 10-12 14:00 ?703次閱讀