RM新时代网站-首页

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

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

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

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

Frombyte ? 來源:Frombyte ? 作者:Frombyte ? 2024-09-11 11:45 ? 次閱讀

刪除Oracle數(shù)據(jù)庫數(shù)據(jù)一般有以下2種方式:delete、drop或truncate。下面針對這2種刪除oracle數(shù)據(jù)庫數(shù)據(jù)的方式探討一下oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)方法(不考慮全庫備份和利用歸檔日志)。


1、delete誤刪除的數(shù)據(jù)恢復(fù)方法。
利用oracle提供的閃回方法進行恢復(fù)。如果在刪除數(shù)據(jù)后還沒做大量的操作(只要被刪除數(shù)據(jù)的塊沒被覆寫),就可以利用閃回直接找回刪除的數(shù)據(jù)。
具體步驟為:
a、確定刪除數(shù)據(jù)的時間(最好是刪除數(shù)據(jù)的時間點)。
b、用以下語句找出刪除的數(shù)據(jù):select * from 表名 as of timestamp to_timestamp('刪除時間點','yyyy-mm-dd hh24:mi:ss')
c、把刪除的數(shù)據(jù)重新插入原表:insert into 表名 (select * from 表名 as of timestamp to_timestamp('刪除時間點','yyyy-mm-dd hh24:mi:ss'))
注意要保證主鍵不重復(fù)。
如果表結(jié)構(gòu)沒有發(fā)生改變,還可以直接使用閃回整個表的方式來恢復(fù)數(shù)據(jù)(表閃回要求用戶必須要有flash any table權(quán)限。)。
具體步驟:
alter table 表名 enable row movement
flashback table 表名 to timestamp to_timestamp(刪除時間點',' frombyte yyyy-mm-dd hh24:mi:ss')

2、drop誤刪除的數(shù)據(jù)恢復(fù)方法。
oracle在刪除表時沒有直接將表所占的塊清空,只是對該表的數(shù)據(jù)塊做了可以被覆寫的標志。oracle將已刪除的表的信息放到了一個虛擬容器“回收站”中,所以在塊未被重新使用前還可以恢復(fù)。
具體步驟:
查詢這個“回收站”或者查詢user_table視圖來查找已被刪除的表:
select table_name,dropped from user_tables
select object_name,original_name,type,droptime from user_recyclebin
在以上信息中,表名都是被重命名過的,字段table_name或者object_name就是刪除后在回收站中的存放表名。
如果還能記住表名,則可以用下面語句直接恢復(fù):
flashback table 原表名 to before drop
如果記不住了,可以直接使用回收站的表名進行恢復(fù),然后再重命名。參照下方語句:
flashback table "回收站中的表名(如:Bin$DSbdfd4rdfdfdfegdfsf==$0)" to before drop rename to 新表名
oracle的閃回功能除了以上基本功能外,還可以閃回整個數(shù)據(jù)庫。
使用數(shù)據(jù)庫閃回功能讓數(shù)據(jù)庫回到過去某一狀態(tài)。語句如下:
SQL>alter database flashback on
SQL>flashback database to scn SCNNO
SQL>flashback database to timestamp to_timestamp('時間點','yyyy-mm-dd hh24:mi:ss')

總結(jié):
oracle數(shù)據(jù)庫雖然提供以上安全機制保證了誤操作后可以恢復(fù)數(shù)據(jù),但同時也出現(xiàn)另外一個問題:空間占用。drop表或者delete表數(shù)據(jù)后,空間不會自動回收。
對于一些確定不使用的表,刪除后可以回收空間。刪除后回收空間的方法:
1、采用truncate方式進行截斷。
2、在drop時加上purge選項:drop table 表名 purge
該選項還有以下用途:
通過刪除recyclebin區(qū)域來永久性刪除表。
原始刪除表emp:
drop table emp cascade constraints purge table emp
刪除當前用戶的回收站:
purge recyclebin
刪除全體用戶在回收站的數(shù)據(jù):
purge dba_recyclebin

審核編輯 黃宇

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

    關(guān)注

    10

    文章

    568

    瀏覽量

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

    關(guān)注

    7

    文章

    3794

    瀏覽量

    64360
  • Oracle
    +關(guān)注

    關(guān)注

    2

    文章

    289

    瀏覽量

    35123
收藏 人收藏

    評論

    相關(guān)推薦

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)ORACLE常見故障的數(shù)據(jù)恢復(fù)可行性分析

    Oracle數(shù)據(jù)庫常見故障表現(xiàn): 1、ORACLE數(shù)據(jù)庫無法啟動或無法正常工作。 2、ORACLE ASM存儲破壞。 3、
    的頭像 發(fā)表于 12-10 11:35 ?108次閱讀

    Oracle報錯“system01.dbf需要更多的恢復(fù)來保持一致性”的數(shù)據(jù)恢復(fù)案例

    Oracle數(shù)據(jù)庫故障&分析: 一臺Oracle數(shù)據(jù)庫打開報錯,報錯信息: “system01.dbf需要更多的恢復(fù)來保持一致性,
    的頭像 發(fā)表于 11-27 13:10 ?131次閱讀
    <b class='flag-5'>Oracle</b>報錯“system01.dbf需要更多的<b class='flag-5'>恢復(fù)</b>來保持一致性”的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

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

    存儲掉盤超過上限,lun無法識別。管理員重組存儲的位圖信息并導(dǎo)出lun,發(fā)現(xiàn)linux操作系統(tǒng)上部署的oracle數(shù)據(jù)庫中有上百個數(shù)據(jù)文件的大小變?yōu)?kb。數(shù)據(jù)庫的大小縮水了80%以上
    的頭像 發(fā)表于 11-21 11:29 ?124次閱讀
    <b class='flag-5'>oracle</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>文件大小變?yōu)?kb的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

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

    試圖恢復(fù)數(shù)據(jù)庫,發(fā)現(xiàn)有數(shù)個ndf文件大小變?yōu)?KB。 雖然NDF文件大小變?yōu)?KB,但是NDF文件在磁盤上還可能存在。可以嘗試通過掃描&拼接數(shù)據(jù)庫碎片來恢復(fù)NDF文件,然后修復(fù)數(shù)據(jù)庫
    的頭像 發(fā)表于 10-31 13:21 ?198次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—通過拼接<b class='flag-5'>數(shù)據(jù)庫</b>碎片<b class='flag-5'>恢復(fù)</b>SQLserver<b class='flag-5'>數(shù)據(jù)庫</b>

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

    Oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境&故障: Oracle ASM磁盤組由4塊磁盤組成。Oracle
    的頭像 發(fā)表于 10-28 11:26 ?154次閱讀
    <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> ASM實例無法掛載的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

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

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

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

    Oracle數(shù)據(jù)庫的在線文件,需要恢復(fù)zxfg用戶的數(shù)據(jù)。 Oracle數(shù)據(jù)庫
    的頭像 發(fā)表于 09-30 13:31 ?298次閱讀
    <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'>數(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ù)庫報錯“system01.dbf需要更多的恢復(fù)來保持一致性,數(shù)據(jù)庫無法打開”。
    的頭像 發(fā)表于 09-21 14:25 ?316次閱讀
    <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錯誤的數(shù)據(jù)恢復(fù)案例

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

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

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

    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ù)查詢到該表時報錯,數(shù)據(jù)庫的備份不可用,無法查詢表
    的頭像 發(fā)表于 03-11 17:30 ?386次閱讀
    <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>誤truncate表的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例

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

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

    Oracle數(shù)據(jù)庫是什么 Oracle數(shù)據(jù)庫的特點

    Oracle數(shù)據(jù)庫系統(tǒng)具有高效率、可靠性好的特點,適用于各種規(guī)模的企業(yè)和組織。它支持大容量數(shù)據(jù)和高并發(fā)事務(wù)處理,能夠滿足各種復(fù)雜的業(yè)務(wù)需求。
    的頭像 發(fā)表于 01-06 15:02 ?1011次閱讀
    RM新时代网站-首页