oracle表刪了怎么救 oracle找回刪除的表

oracle如何恢復(fù)誤刪的表記錄數(shù)據(jù)?

oracle如何恢復(fù)誤刪的表記錄數(shù)據(jù),解決辦法:

創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為甘井子等服務(wù)建站,甘井子等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為甘井子企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

從flash back里查詢被刪除的表select * from recyclebin

執(zhí)行表的恢復(fù)flashback table ?tbName ?to before drop;這里的tbName代表你要恢復(fù)的表的名稱。

先從flashback_transaction_query視圖里查詢,視圖提供了供查詢用的表名稱、事務(wù)提交時間、UNDO_SQL等字段。

一般先根據(jù)時間進(jìn)行查詢,查詢語句模式為select * from tb as of timestamp to_timestamp(time,'yyyy-mm-dd hh24:mi:ss'); tb指表名稱,time指某個時間點。

這個命令的作用是,允許Oracle 修改分配給行的rowid。

在Oracle 中,插入一行時就會為它分配一個rowid,而且這一行永遠(yuǎn)擁有這個rowid。

閃回表處理會對EMP 完成DELETE,并且重新插入行,這樣就會為這些行分配一個新的rowid。

要支持閃回就必須允許Oracle 執(zhí)行這個操作。

oracle 誤刪除表的幾種恢復(fù)方法

誤刪數(shù)據(jù)(delete)的話,可以在undo空間找到最近的數(shù)據(jù)(根oracle設(shè)置的undo大小有關(guān))一般剛刪除的還是有機(jī)會找到的,自己根據(jù)SQL修改時間饑渴

SELECT?*

FROM?表名?AS?OF?TIMESTAMP?to_date('2018-07-19?08:01',?'yyyy-mm-dd?HH24:mi')

WHERE?可以帶條件;

如果是誤刪表(drop)的話。需要在回收站是否啟用,查看回收站中表

select?object_name,original_name,partition_name,type,ts_name,createtime,droptime?from?recyclebin;

flashback?table?表名?to?before?drop;

--或

flashback?table?"BIN$b+XkkO1RS5K10uKo9BfmuA==$0"?to?before?drop;

中間這一串BIN…… 是在回收站表中找到對應(yīng)的名字

oracle數(shù)據(jù)庫的表刪了怎么恢復(fù)

請使用 Oracle Database 10g 中的閃回表特性,它使得被刪除表的恢復(fù)過程如同執(zhí)行幾條語句一樣簡單。讓我們來看該特性是如何工作的。

刪除那個表!

首先,讓我們查看當(dāng)前模式中的表。

SQL select * from tab;

TNAME

TABTYPE

CLUSTERID

--------------------- - -- -- --- ------

RECYCLETEST

TABLE

現(xiàn)在,我們意外地刪除了該表:

SQL drop table recycletest;

Table dropped.

現(xiàn)在讓我們來查看該表的狀態(tài)。

SQL select * from tab;

TNAME

oracle數(shù)據(jù)庫刪除錯了表怎么恢復(fù)

一、如果是剛剛刪除,那么有兩方法:

首先用show parameter undo;命令查看當(dāng)時的數(shù)據(jù)庫參數(shù)undo_retention設(shè)置。

顯示如下:

undo_management?string?AUTO

undo_retention?integer?10800

undo_suppress_errors?boolean?FALSE

undo_tablespace?string?UNDOTBS1

undo_retention(保持力),10800單位是秒。即3個小時。

修改默認(rèn)的undo_retention參數(shù)設(shè)置:

 ALTER?SYSTEM?SET?undo_retention=10800?SCOPE=BOTH;

方法1,通過oracle提供的回閃功能:

exec?dbms_flashback.enable_at_time(to_date('2007-07-23?10:21:00','yyyy-mm-dd?hh24:mi:ss'));

set?serveroutput?on

DECLARE?r_temp?hr.job_history%ROWTYPE;

CURSOR?c_temp?IS?SELECT?*?FROM?hr.job_history;

BEGIN

OPEN?c_temp;

dbms_flashback.disable;

LOOP

FETCH?c_temp?INTO?r_temp;

EXIT?WHEN?c_temp%NOTFOUND;

insert?into?hr.job_history(EMPLOYEE_ID,JOB_ID,START_DATE,END_DATE)?values?(r_temp.EMPLOYEE_ID,r_temp.JOB_ID,r_temp.START_DATE,r_temp.END_DATE);

commit;

END?LOOP;

CLOSE?c_temp;

END;

方法2,insert into hr.job_history

select?*?from?hr.job_history?as?of?timestamp?to_timestamp('2007-07-23?10:20:00',?'yyyy-mm-dd?hh24:mi:ss');

這種方法簡單,容易掌握,功能和上面的一樣時間為你誤操作之前的時間,最好是離誤操作比較近的,因為oracle保存在回滾保持段里的數(shù)據(jù)時間有一定的時間限制由undo_retention 這個參數(shù)值決定。

二、如果是刪除一段時間了,但你有比較新的數(shù)據(jù)庫備份,就通過備份來恢復(fù)。新建一個庫,把備份還原上去,導(dǎo)出表數(shù)據(jù),再導(dǎo)入到現(xiàn)在用的庫中去。

三、如果刪除一段時間了,并且無備份,但是數(shù)據(jù)在寫入表的時候同時會寫入其它一些關(guān)聯(lián)表的話,那么就嘗試通過寫SQL語句從其它表取數(shù)據(jù)出來insert到被刪除的表中。

四、恢復(fù)到備份表中

create?table?tableName_bak

as

select?*?from?tableName?as?of?TIMESTAMP?to_timestamp('20081126?103435','yyyymmdd?hh24miss');

oracle里面刪除的表可以找回來嗎

從Oracle10g開始提供了flashback drop的功能。

而在以前的版本中,除了不完全恢復(fù),通常沒有一個好的解決辦法。

Oracle 10g的flashback drop功能,允許你從當(dāng)前數(shù)據(jù)庫中恢復(fù)一個被drop了的對象,在執(zhí)行drop操作時,現(xiàn)在Oracle不是真正刪除它,而是將該對象自動將放入回收站。對于一個對象的刪除,其實僅僅就是簡單的重命名操作。

所以如果你用的是10G,并且沒有關(guān)閉flashback drop功能,就可以找回刪除的表。

如果你用的不是10G,或者關(guān)閉了flashback drop功能,

只能看看你之前有沒有做備份,如果有可以恢復(fù)一下

回收站內(nèi)的相關(guān)信息可以從recyclebin/user_recyclebin/dba_recyclebin等視圖中獲取,或者通過SQL*Plus的show recyclebin 命令查看。

Oracle數(shù)據(jù)被刪除后,如何恢復(fù)

刪除表后,可以采用如下操作:

在user_recyclebin中找到最近操作過的表名稱,然后用閃回(只能用于10G及以上版本)。

FLASHBACKTABLETABLE_NAMETOBEFOREDROP;

如果是刪了或修改里面的數(shù)據(jù),可以先建立一個快表將刪除修改之前狀態(tài)的數(shù)據(jù)找回到這個表中:

CREATETABLEQUICK_TABLEAS

SELECT*FROMTABLE_NAMEASOFTIMESTAMPSYSDATE-1/24(一小時前的),減去的時間可以自己定如:select*fromTABLE_NAMEASOFTIMESTAMP(SYSTIMESTAMP-INTERVAL'1'MINUTE)

網(wǎng)站欄目:oracle表刪了怎么救 oracle找回刪除的表
本文地址:http://muchs.cn/article20/hjdoco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站企業(yè)建站、搜索引擎優(yōu)化網(wǎng)站建設(shè)、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司