在oracle中如何找回被刪除的資料?xiawei123 2019-07-31

1、首先新建一張測試表TEST,裡面輸入記錄。由於刪除/更新/插入恢復步驟相同,這裡僅演示刪除資料的情況。

在oracle中如何找回被刪除的資料?

2、刪除其中1條記錄,查看錶中記錄情況,由下圖可見,記錄2被刪除了。

在oracle中如何找回被刪除的資料?

3、恢復之前先確定要恢復到的時間點,下圖可以看出2018-03-07 15:33:00資料是正確的。

SELECT *

FROM TEST AS OF TIMESTAMP TO_TIMESTAMP(‘2018-03-07 15:33:00’, ‘YYYY-MM-DD HH24:MI:SS’);

在oracle中如何找回被刪除的資料?

4、下面進行表資料恢復。

FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP(‘2018-03-07 15:33:00’, ‘YYYY-MM-DD HH24:MI:SS’);

可以看到報錯了,原因是沒有開啟行移動。

在oracle中如何找回被刪除的資料?

5、開啟該表的行移動。

ALTER TABLE TEST ENABLE ROW MOVEMENT;

在oracle中如何找回被刪除的資料?

6、再次執行資料恢復。

FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP(‘2018-03-07 15:33:00’, ‘YYYY-MM-DD HH24:MI:SS’);

然後檢視資料情況,可以看到已經恢復了。

在oracle中如何找回被刪除的資料?

在oracle中如何找回被刪除的資料?j88r 2018-07-25

——開啟行移動功能

alter table 表名 enable row movement;

——恢復表資料

flashback table 表名 to timestamp to_timestamp(‘2014-05-19 09:40:00’,‘yyyy-mm-dd hh24:mi:ss’);

上述時間為刪除資料的時間

備註:恢復後請關閉行移動功能

在oracle中如何找回被刪除的資料?果果是熊孩子 2018-12-11

Oracle10 以上版本,我前一天刪的資料都可以恢復,不要慌,認真跟著每步做就好啦嘻嘻(PS:其實第一次刪標準表資料的我也很方哈哈哈);

舉個栗子:

某天誤刪了標準表的一條資料,就是採購接收的RCV_TRANSACTIONS表

恢復過程:

1、建立這個接收表的備份(Bak)表,備份當天前兩天的所有該表的資料(包括誤刪的)(這個不會影響原表資料的,沒關係,建吧)

CREATE TABLE cux_rcv_transactions_bak1 AS ——-表名自己起(XXX_Bak)

select * from rcv_transactions as of timestamp sysdate-2 ; ——-恢復前兩天天的資料

要恢復資料的這個request_ID(某欄位)我是記下來了,所以不用重新費時間去找(這個可以用原表跟備份表對這前兩天的資料進行比較,用NOT EXIST)

Request_id

698479;

2、找到備份表裡面的這條資料,

SELECT * FROM cux_rcv_transactions_bak1

WHERE TRANSACTION_id = 698479;

3、將這條資料再次插入進RCV_Transactions表裡面

INSERT INTO rcv_transactions

SELECT * FROM cux_rcv_transactions_bak1

WHERE TRANSACTION_id = 698479;

4、可以找到原表原來的資料來

SELECT * FROM rcv_transactions

WHERE TRANSACTION_id = 698479;

在oracle中如何找回被刪除的資料?賓士M888 2010-12-23

1、將你10天前的資料找(如果你的資料還在的話)

create table tmp as

select * from table_name as of timestamp trunc(sysdate)-10;

2、在tmp表裡面找到被你刪掉的那100條資料,插回原表。

3、不過希望不大了,看你的問題已經提了好久了,如果是剛剛被刪掉的話,也許可以找回。

注:trunc(sysdate)-10 就是一個時間點,你可以適當的調整一下這個時間點,來找到你想要的資料。

——-

以上,希望對你有所幫助。

在oracle中如何找回被刪除的資料?sengehao 推薦於2017-04-22

你用的是oracle幾呀?

要是10 版本以上的話,好說,

92的話,要從undo中找

SELECT * FROM tablename AS OF TIMESTAMP

TO_TIMESTAMP(‘2010-12-15 11:10:17’, ‘YYYY-MM-DD HH:MI:SS’)

要是91或8的話,那就麻煩了!!