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