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

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

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

【數(shù)據(jù)庫數(shù)據(jù)恢復(fù)】Oracle數(shù)據(jù)庫誤truncate table的數(shù)據(jù)恢復(fù)方案

Frombyte ? 來源:Frombyte ? 作者:Frombyte ? 2023-03-24 11:47 ? 次閱讀

Oracle數(shù)據(jù)庫故障:
北京某國企服務(wù)器中部署的Oracle 11g R2數(shù)據(jù)庫被誤操作執(zhí)行了truncate table CM_CHECK_ITEM_HIS,表數(shù)據(jù)丟失,查詢該表時(shí)報(bào)錯(cuò),數(shù)據(jù)庫備份不可用,表數(shù)據(jù)無法查詢。
Truncate數(shù)據(jù)原理:表被Truncate后,ORACLE會在數(shù)據(jù)字典和SegmentHeader中更新表的DATA_OBJECT_ID,但是不會修改實(shí)際數(shù)據(jù)部分的塊。由于數(shù)據(jù)字典與段頭的DATA_OBJECT_ID與后續(xù)的數(shù)據(jù)塊中的并不一致,所以O(shè)RACLE服務(wù)進(jìn)程在讀取全表數(shù)據(jù)時(shí)讀取不到已經(jīng)被TRUNCATE但是實(shí)際未被覆蓋的數(shù)據(jù)。

Oracle數(shù)據(jù)庫恢復(fù)過程:
1、為了保護(hù)用戶的原始數(shù)據(jù)和更好演示truncate table的數(shù)據(jù)恢復(fù)過程,北亞企安數(shù)據(jù)恢復(fù)工程師構(gòu)造了與用戶相同的故障環(huán)境。
用Scott用戶創(chuàng)建表emp1,連續(xù)復(fù)制emp表多次,總記錄數(shù)為:7340032條。truncate表emp1,沒有做其他任何操作。查詢該表,Oracle數(shù)據(jù)庫中該表的記錄為0條。

pYYBAGQdHS6AJ5uRAAIvhiclg9s075.png

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

注: Os:win server;Oracle數(shù)據(jù)庫版本:win_oracle_11.2.0.1_x64。

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

poYBAGQdHTmAYhqNAAf-sNrtQpE719.png

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

3、解析truncate表所在的數(shù)據(jù)庫數(shù)據(jù)文件,找到truncate的數(shù)據(jù)。
4、將truncate的數(shù)據(jù)插入到數(shù)據(jù)庫中。
通過解析system01.dbf文件,找到truncate的數(shù)據(jù)所在的位置,找到被刪除的數(shù)據(jù)。解析表所在的數(shù)據(jù)文件,將truncate的數(shù)據(jù)插入到數(shù)據(jù)庫中。
在數(shù)據(jù)庫中,查找被truncate的表,發(fā)現(xiàn)數(shù)據(jù)回來了,備份數(shù)據(jù)。

poYBAGQdHT-AJ4t9AAKV7k6h6Go778.png

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

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

poYBAGQdHUWAfG4YAAMF6IZoQNE431.png

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


審核編輯黃宇

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

    評論

    相關(guān)推薦

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

    打開oracle數(shù)據(jù)庫時(shí)報(bào)錯(cuò),報(bào)錯(cuò)信息:“system01.dbf需要更多的恢復(fù)來保持一致性,數(shù)據(jù)庫無法打開”。急需恢復(fù)zxfg用戶下的
    的頭像 發(fā)表于 10-17 13:20 ?115次閱讀
    <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ào)錯(cuò)的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

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

    Oracle數(shù)據(jù)庫的在線文件,需要恢復(fù)zxfg用戶的數(shù)據(jù)Oracle數(shù)據(jù)庫
    的頭像 發(fā)表于 09-30 13:31 ?168次閱讀
    <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'>庫</b>報(bào)錯(cuò)的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

    數(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 ?193次閱讀
    <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 ?236次閱讀
    <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。下面針對這2種刪除oracle
    的頭像 發(fā)表于 09-11 11:45 ?274次閱讀

    Oracle數(shù)據(jù)恢復(fù)Oracle刪除數(shù)據(jù)不用怕!這些數(shù)據(jù)恢復(fù)方法了解一下

    相信有很多oracle數(shù)據(jù)庫用戶都遇到過在操作Oracle數(shù)據(jù)庫時(shí)誤刪除某些重要數(shù)據(jù)的情況,這個(gè)時(shí)候如果
    的頭像 發(fā)表于 07-19 16:40 ?395次閱讀

    數(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ù)器存儲中有兩組raid5磁盤陣列。操作系統(tǒng)層面跑著SQL Server數(shù)據(jù)庫,SQL Server
    的頭像 發(fā)表于 07-10 13:54 ?382次閱讀

    數(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ù)庫,存儲空間在操作系統(tǒng)層面劃分
    的頭像 發(fā)表于 05-08 11:43 ?435次閱讀
    <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,表
    的頭像 發(fā)表于 03-11 17:30 ?334次閱讀
    <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'>誤</b><b class='flag-5'>truncate</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 ?423次閱讀
    【<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 ?1009次閱讀
    <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ù)庫的基本操作

    Oracle數(shù)據(jù)庫是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),廣泛應(yīng)用于企業(yè)級應(yīng)用中。它具有強(qiáng)大的功能和靈活的配置選項(xiàng),可以滿足復(fù)雜的數(shù)據(jù)處理需求。本文將介紹
    的頭像 發(fā)表于 12-06 10:14 ?619次閱讀

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