當前位置:首頁 » 數據倉庫 » orcale資料庫表誤刪除
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

orcale資料庫表誤刪除

發布時間: 2023-02-16 05:26:35

『壹』 Oracle數據被刪除後,如何恢復

刪除表後,可以採用如下操作:
在user_recyclebin中找到最近操作過的表名稱,然後用閃回(只能用於10G及以上版本)。
FLASHBACKTABLETABLE_NAMETOBEFOREDROP;
如果是刪了或修改裡面的數據,可以先建立一個快表將刪除修改之前狀態的數據找回到這個表中:
CREATETABLEQUICK_TABLEAS
SELECT*FROMTABLE_NAMEASOFTIMESTAMPSYSDATE-1/24(一小時前的),減去的時間可以自己定如:select*fromTABLE_NAMEASOFTIMESTAMP(SYSTIMESTAMP-INTERVAL'1'MINUTE)

『貳』 oracle資料庫誤操作把表刪除了,怎麼找回

一:表的恢復x0dx0ax0dx0a 對誤刪的表,只要沒有使用PURGE永久刪除選項,那麼從flash back區恢復回來希望是挺大的。一般步驟有:x0dx0ax0dx0a1、從flash back里查詢被刪除的表x0dx0ax0dx0a select * from recyclebinx0dx0ax0dx0a2.執行表的恢復x0dx0ax0dx0a flashback table tb to before drop,這里的tb代表你要恢復的表的名稱。x0dx0ax0dx0a二:表數據恢復x0dx0ax0dx0a 對誤刪的表記錄,只要沒有truncate語句,就可以根據事務的提交時間進行選擇恢復,一般步驟有:x0dx0ax0dx0a1、先從flashback_transaction_query視圖里查詢,視圖提供了供查詢用的表名稱、事務提交時間、UNDO_sql等欄位。x0dx0ax0dx0a 如:select * from flashback_transaction_query where x0dx0atable_name='TEST'x0dx0ax0dx0a 2、執行表記錄恢復x0dx0ax0dx0a 一般先根據時間進行查詢,查詢語句模式為select * from tb as of timestamp x0dx0ato_timestamp(time,'yyyy-mm-dd hh24:mi:ss'); tb指表名稱,time指某個時間點x0dx0ax0dx0a 如select * from scott.test as of timestamp to_timestamp(񟭉-12-11 x0dx0a20:53:57','yyyy-mm-dd hh24:mi:ss');x0dx0ax0dx0a 若有數據,恢復極為簡單了,語句為flashback table tb to timestamp x0dx0ato_timestamp(time,'yyyy-mm-dd hh24:mi:ss');x0dx0ax0dx0a 如flashback table scott.test to timestamp to_timestamp(񟭉-12-11 x0dx0a20:47:30','yyyy-mm-dd hh24:mi:ss');x0dx0ax0dx0a注意:alter table testvarchar enable row movement;x0dx0ax0dx0a 這個命令的作用是,允許Oracle 修改分配給行的rowid。在Oracle x0dx0a中,插入一行時就會為它分配一個rowid,而且這一行永遠擁有這個rowid。閃回表處理會對EMP x0dx0a完成DELETE,並且重新插入行,這樣就會為這些行分配一個新的rowid。要支持閃回就必須允許Oracle 執行這個操作

『叄』 oracle資料庫誤刪除數據怎麼恢復

恢復的前提是備份;
資料庫有什麼備份,exp還是rman
如果有exp備份:直接imp數據
如果有rman備份:可以基於時間不完全恢復,將資料庫恢復到誤刪除之前的時刻
如果沒有備份但是開閃回了,可以閃回資料庫或閃回表

『肆』 oracle資料庫刪除錯了表怎麼恢復

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

首先用show parameter undo;命令查看當時的資料庫參數undo_retention設置。

顯示如下:

undo_managementstringAUTO
undo_retentioninteger10800
undo_suppress_errorsbooleanFALSE
undo_tablespacestringUNDOTBS1

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

修改默認的undo_retention參數設置:

ALTERSYSTEMSETundo_retention=10800SCOPE=BOTH;

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

execdbms_flashback.enable_at_time(to_date('2007-07-2310:21:00','yyyy-mm-ddhh24:mi:ss'));
setserveroutputon
DECLAREr_temphr.job_history%ROWTYPE;
CURSORc_tempISSELECT*FROMhr.job_history;
BEGIN
OPENc_temp;
dbms_flashback.disable;
LOOP
FETCHc_tempINTOr_temp;
EXITWHENc_temp%NOTFOUND;
insertintohr.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;
ENDLOOP;
CLOSEc_temp;
END;

方法2,insert into hr.job_history

select*fromhr.job_historyasoftimestampto_timestamp('2007-07-2310:20:00','yyyy-mm-ddhh24:mi:ss');

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

二、如果是刪除一段時間了,但你有比較新的資料庫備份,就通過備份來恢復。新建一個庫,把備份還原上去,導出表數據,再導入到現在用的庫中去。

三、如果刪除一段時間了,並且無備份,但是數據在寫入表的時候同時會寫入其它一些關聯表的話,那麼就嘗試通過寫SQL語句從其它表取數據出來insert到被刪除的表中。

四、恢復到備份表中

createtabletableName_bak
as
select*fromtableNameasofTIMESTAMPto_timestamp('20081126103435','yyyymmddhh24miss');

『伍』 oracle資料庫刪除錯了表怎麼恢復

如果僅僅是
數據行被刪除了,那麼可以用得方法很多
例如logmnr
flashback
query
等等
如果是表被刪除了,那麼如果開了recylebin
可以用回收站,
也可以使用專業oracle數據恢復工具prm
for
oracle
如果自己搞不定可以找askmaclean專業oracle資料庫修復團隊成員幫您恢復!
askmaclean.com

『陸』 誤刪除Oracle資料庫恢復,怎麼辦

oracle資料庫恢復,主要包括
(1)系統崩潰只剩下數據文件的情況下的恢復,甚至沒有system表空間而只有數據表空間的情況下的恢復.只要提供數據文件就可恢復.
(2)
undo
system
表空間損壞數據恢復
.
(3)
非歸檔或者歸檔模式下誤
delete
數據的恢復、誤刪除表空間的恢復、
drop
truncate
表的恢復
.
(4)
資料庫中有大量CLOB
BLOB對象數據恢復等情況以及各種ora-錯誤的修復.
(5)
DMP文件損壞導致文件不能導入資料庫的數據恢復
(6)
oracle資料庫中數據文件出現壞塊情況下的恢復.
(7)
oracle資料庫無數據文件但有日誌的情況下的恢復.
(8)
UNIX、WINDOWS下ORACLE數據文件被誤刪除情況下的資料庫恢復.
(9)
Oracle10G、Oracle11G
的ASM損壞的資料庫恢復.
(10)
Oracle10G、Oracle11G
BIFGILE
TABLESPACE大文件表空間損壞數據恢復
(11)
Oracle9i、Oracle10G、Oracle11G壓縮表
壓縮表空間損壞數據恢復
(12)Oracle10G
Oracle11G
Expdp導出
Impdp導入DMP文件錯誤數據恢復
恢復成功率高達90%以上,在數據恢復領域處於國內領先的地位。具體案例見廣州拓飛官方網站

『柒』 oracle資料庫的表刪了怎麼恢復

請使用 Oracle Database 10g 中的閃回表特性,它使得被刪除表的恢復過程如同執行幾條語句一樣簡單。讓我們來看該特性是如何工作的。
刪除那個表!
首先,讓我們查看當前模式中的表。
SQL> select * from tab;
TNAME
TABTYPE
CLUSTERID
--------------------- - -- -- --- ------
RECYCLETEST
TABLE
現在,我們意外地刪除了該表:
SQL> drop table recycletest;
Table dropped.
現在讓我們來查看該表的狀態。
SQL> select * from tab;
TNAME

『捌』 Oracle資料庫誤刪表,怎樣恢復表結構和表數據

如果刪除表的時候沒有加purge那麼可以通過回收站(recyclebin)找回(畢竟默認這個參數是on的,可以通過show parameter recyclebin查一下)。如果加了purge,那麼就找不回來了。
flashback table 表名 to before drop。