oracle 回闪技术恢复误删数据
?在oralce中,我們有時誤刪了某些數據或者刪除了某些表;這時我們需要恢復這些數據。
?
第一,delete數據后恢復
?
delete某些數據后,可以使用下面語句找到,這個主要是使用Oracle的快照功能。查詢到當前時間的前100minute的數據。
?
Sql代碼?
select *???
? from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE)?
select *
? from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE) 這個時間由不同情況來定義。
也可以定義為秒、時等等
?
可以使用下面語句來查看哪些數據是在這個時間段內的區別。
Sql代碼?
select *???
? from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE)???
?where skill_id not in (select skill_id from skiller)?
select *
? from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE)
?where skill_id not in (select skill_id from skiller)??????? 具體怎么區別改前后的數據,請根據實際情況
?刪選出了這些數據,我們就可以將這些數據插入到我們現有表中,示例見下面SQL
?
?
Sql代碼?
insert into skiller select *???
? from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE)???
?where skill_id not in (select skill_id from skiller)?
insert into skiller select *
? from skiller AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '100' MINUTE)
?where skill_id not in (select skill_id from skiller)
?
第二,Drop數據后恢復
?
當我們drop一個表后,我們可以在我們的用戶回收站內看到這些數據。比如:
?
Sql代碼?
select * from user_recyclebin;?
select * from user_recyclebin; 在這個結果集中我們可以看到我們刪除對象的結果集。
這個只是查看,你可以從中找到你drop的表名以及其他信息。
?
找到你要恢復的對象名,比如表名。
?
使用下面語句就可以恢復你的對象了。
?
?
Sql代碼?
flashback table table_name to before drop;??
flashback table table_name to before drop;?????
??
?
?
轉載于:https://www.cnblogs.com/kaka-bing/archive/2012/11/05/2755013.html
總結
以上是生活随笔為你收集整理的oracle 回闪技术恢复误删数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Operator Overloading
- 下一篇: practical rendering