? ? ? 在Oracle中,有時候,我們會無意中刪除真實數(shù)據(jù),怎么處理呢?
oracle從10g開始提供了flashback 技術,提供誤刪除數(shù)據(jù)恢復的方法;注意,恢復是有時間限制的。
?
SQL> show parameter undo_retention
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_retention integer 900
默認是900秒--15分鐘;
當然,你可以延長恢復時間,但這樣會造成非常大的undo表空間等不確定因素。
?
下面說說具體操作:
SQL> desc emp;
Name Null? Type
----------------------------------------- --
EMPNO ? ? ?NUMBER
SAL ? ? ? ? ?NUMBER
?
SQL> insert into emp values(20,30000);
1 row created.
SQL> commit;
Commit complete.
?
SQL> delete from emp;
1 row deleted.
SQL> commit
2 ;
Commit complete.
SQL> select count(*) from emp;
COUNT(*)
----------
0
?
1.通過時間的方法來恢復
? ??SQL> select * from emp as of timestamp ?to_timestamp(sysdate,'yyyy-mm-dd hh24:mi:ss');?
?
? ?SQL>Insert into emp?select * from emp?as of timestamp to_timestamp('2013-05-26 12:00:16','YYYY-MM-DD hh24:mi:ss');
? 已創(chuàng)建 1 行。
?
SQL> COMMIT;
?
2.通過scn來恢復
? ? ?先查找歷史scn:
select
versions_xid,versions_startscn,versions_endscn,
empno,sal
from emp
versions between timestamp (systimestamp - interval '15' minute)
and maxvalue
where empno=20 ? ? ------最近15分鐘該表scn的變化
?
從列表中找到刪除該數(shù)據(jù)的scn
SQL> ?insert into emp select * from emp as of scn 73567478;
?
SQL> COMMIT;
?
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
