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

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

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

【數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)】oracle數(shù)據(jù)庫(kù)誤truncate table的數(shù)據(jù)恢復(fù)案例

Frombyte ? 來(lái)源:Frombyte ? 作者:Frombyte ? 2022-12-27 13:54 ? 次閱讀

數(shù)據(jù)庫(kù)恢復(fù)環(huán)境:

操作系統(tǒng):windows server;

數(shù)據(jù)庫(kù):win_oracle_x64。

數(shù)據(jù)庫(kù)故障&分析:

oracle數(shù)據(jù)庫(kù)誤truncate table,備份無(wú)法使用。

oracle數(shù)據(jù)庫(kù)誤操作導(dǎo)致數(shù)據(jù)丟失是比較常見(jiàn)的一種故障,如果有備份只需要恢復(fù)備份數(shù)據(jù)即可,我們中心數(shù)據(jù)恢復(fù)工程師接到的case多是無(wú)備份或者備份無(wú)法使用、還原報(bào)錯(cuò)等。

首先介紹下Truncate工作原理:正常情況下oracle會(huì)通過(guò)Segment Header及數(shù)據(jù)字典對(duì)表更新Data Object ID,實(shí)際上存儲(chǔ)數(shù)據(jù)部分的塊并未被修改,如果被truncate,那么oracle在讀取全表數(shù)據(jù)時(shí)會(huì)因?yàn)閿?shù)據(jù)字典和Data Object ID與實(shí)際存儲(chǔ)的數(shù)據(jù)塊內(nèi)容不一致而不會(huì)讀取被truncate的內(nèi)容記錄。

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)過(guò)程:

本次案例演示中,北亞數(shù)據(jù)恢復(fù)工程師構(gòu)造了一個(gè)相同環(huán)境下的類(lèi)似故障。

1、用Scott用戶創(chuàng)建表emp1,連續(xù)多次復(fù)制emp表,然后truncate表emp1。此時(shí)查詢?cè)摫?,?shù)據(jù)庫(kù)中該表的記錄為0條。

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

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

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

3、解析表所在的數(shù)據(jù)文件數(shù)據(jù)庫(kù),找到truncate的數(shù)據(jù)并將truncate的數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中。通過(guò)解析system01.dbf文件,找到truncate的數(shù)據(jù)所在的位置,繼而找到被刪除的數(shù)據(jù)。解析表所在的數(shù)據(jù)文件,然后將truncate的數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中。

4、在數(shù)據(jù)庫(kù)中查找被truncate的數(shù)據(jù),結(jié)果發(fā)現(xiàn)被truncate的數(shù)據(jù)已經(jīng)恢復(fù),備份數(shù)據(jù)。

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

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

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

審核編輯:湯梓紅

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

    關(guān)注

    3

    文章

    3510

    瀏覽量

    88223
  • 數(shù)據(jù)恢復(fù)

    關(guān)注

    10

    文章

    528

    瀏覽量

    17318
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3739

    瀏覽量

    64176
  • Oracle
    +關(guān)注

    關(guān)注

    2

    文章

    285

    瀏覽量

    35077
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

    Oracle數(shù)據(jù)庫(kù)故障: 機(jī)房異常斷電后,Oracle數(shù)據(jù)庫(kù)庫(kù)報(bào)錯(cuò):“system01.dbf需要更多的
    的頭像 發(fā)表于 09-30 13:31 ?166次閱讀
    <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ù)庫(kù)</b>啟<b class='flag-5'>庫(kù)</b>報(bào)錯(cuò)的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

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

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

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

    SQL Server數(shù)據(jù)庫(kù)故障: SQL Server附加數(shù)據(jù)庫(kù)出現(xiàn)錯(cuò)誤823,附加數(shù)據(jù)庫(kù)失敗。數(shù)據(jù)庫(kù)沒(méi)有備份,無(wú)法通過(guò)備份恢復(fù)數(shù)據(jù)庫(kù)。
    的頭像 發(fā)表于 09-20 11:46 ?234次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—SQL Server<b class='flag-5'>數(shù)據(jù)庫(kù)</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ù)庫(kù)delete刪除的數(shù)據(jù)恢復(fù)方法

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

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

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

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

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

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

    北京某國(guó)企客戶Oracle 11g R2數(shù)據(jù)庫(kù)truncate table CM_CHECK_ITEM_HIS,表
    的頭像 發(fā)表于 03-11 17:30 ?333次閱讀
    <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ù)庫(kù)</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ù)庫(kù)數(shù)據(jù)恢復(fù)Oracle數(shù)據(jù)庫(kù)ASM實(shí)例無(wú)法掛載的數(shù)據(jù)恢復(fù)案例

    oracle數(shù)據(jù)庫(kù)ASM磁盤(pán)組掉線,ASM實(shí)例不能掛載。數(shù)據(jù)庫(kù)管理員嘗試修復(fù)數(shù)據(jù)庫(kù),但是沒(méi)有成功。
    的頭像 發(fā)表于 02-01 17:39 ?422次閱讀
    【<b class='flag-5'>數(shù)據(jù)庫(kù)</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ù)庫(kù)</b>ASM實(shí)例無(wú)法掛載的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

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

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

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

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

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

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

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

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

    服務(wù)器數(shù)據(jù)恢復(fù)還原快照導(dǎo)致SqlServer數(shù)據(jù)庫(kù)數(shù)據(jù)丟失的數(shù)據(jù)恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境: vmfs文件系統(tǒng),存放的是SqlServer數(shù)據(jù)庫(kù)及其他辦公文件。 服務(wù)器故障: 工作人員誤操作還原快照,導(dǎo)致了SqlServer數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 11-06 15:06 ?612次閱讀