超級好用的oracle 閃回功能之--恢復存儲過程篇
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┠※┃名稱:oracle 閃回功能之--恢復存儲過程篇
┠※┃說明:將存儲過程恢復到某一指定時間段。
┠※┃作者:zlj113
┠※┃時間:20091225
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
經(jīng)常有在工作中誤操作導至程存過程被替換或被刪除的現(xiàn)象產(chǎn)生。給工作帶來一定的麻煩,可能需要重新寫一次代碼,若過程比較短重寫一次還能接受,若是那種比較長的存儲過程重要則是需要付出相當大的代價的。好在oracle10G就開始提供了 一種強大的閃回flashback 功能,可以針對誤刪除的數(shù)據(jù),表,存儲過程等進行恢復。
廢話就先不說了,看看詳細的恢復過程吧^^....
首先需要用SYS登陸到PLSQL Devplore 中,選擇 sysdba 的權限 ,若用其它的用戶登陸則在下面的操作中會提示出權限不足的警告
第三種方法:
SQL> set pagesize 0
SQL> column text format a4000
SQL> spool C:\7.text
Started spooling to C:\7.text
SQL> SELECT text
FROM DBA_source AS OF TIMESTAMP TO_TIMESTAMP('2009-12-25 10:07:00', 'YYYY-MM-DD HH24:MI:SS')
WHERE OWNER = '用戶名'
AND NAME = ‘存儲過程名’
ORDER BY LINE
;
SQL> spool off;
這種方法就不用事先查詢出存儲過程的ID只需要知道名字和用戶即可.
第一種方法:
在Command窗體里依次輸入:
set pagesize 0
column text format a4000 --格式化text 列的數(shù)據(jù) a4000表示 文字 按4000長度顯示
spool c:\1.text -- 這句是指一會將結果輸出到文件,如果存儲過程比較小則可以采用第2種方法)
select text From source$ as of timestamp to_timestamp('2009-12-25 12:21:38', 'yyyy-mm-dd hh24:mi:ss') where obj#=55110; --這里的時間點就是你想要恢復什么時候的存儲過程. 而obj#=55110 這個55110是你存儲過程相對應的ID號, 可以在事先用select object_id from dba_objects where object_name ='存儲過程名注意大小寫是敏感的'; 查出所對應的ID號。
spool off;
然后你就可以到c:盤下找到1.txt文件里面就會有你2009-12-25 12:21:38時存儲過程的內容啦!
怎么樣,是不是超好用呀!
第二種方法:
select *From source$ as of timestamp to_timestamp('2009-12-25 12:21:38', 'yyyy-mm-dd hh24:mi:ss') where obj#=55110;
這種方法呢,就只是把存儲過程的內容顯示在表格里了,需要自己復制粘貼出來。適合比較短小的存儲過程。
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請
點擊舉報。