




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、oracle flashback詳解 分類: rdbms 2011-01-25 17:05 430人閱讀 評論(0) 收藏 舉報 使用oracle數(shù)據(jù)庫時,難免會碰到一些問題.例:1.如何回滾已經(jīng)commit了的數(shù)據(jù) 2.如何查詢已經(jīng)被覆蓋掉的數(shù)據(jù)update,或者被delete了的數(shù)據(jù) 3.如何將數(shù)據(jù)恢復(fù)到某個時間點 我們就可以使用flashback相關(guān)語句解決相關(guān)問題了關(guān)于flashback回閃:從9i到10g到最新的11.2g,oracle對flashback功能進行了進一步的擴展,利用flashback我們可做到1.flashback query閃回查詢,并不實際修改表的數(shù)據(jù)2.fla
2、shback table閃回表格,可恢復(fù)表格的數(shù)據(jù) 3.flash database閃回數(shù)據(jù)庫,可恢復(fù)db的數(shù)據(jù):關(guān)于flashback query: 1.flash query通過undo數(shù)據(jù)表空間數(shù)據(jù),利用一致性的方法來查找用戶需要的數(shù)據(jù) 2.作用范圍:查找指定時間點被(delete,update)的數(shù)據(jù) 只是做查找操作,如果設(shè)計恢復(fù)那么就要使用flashback table了 3.相關(guān)參數(shù): 1.查詢出來的數(shù)據(jù)存活時間受 undo_retention(默認(rèn)為900秒)影響目標(biāo)值,該變量(秒)可以影響undo表空間產(chǎn)生的data存活時間,時間一到,即死亡(消失) 2.閃回時間受undo表空
3、間大小影響 關(guān)于undo表空間的操作,另一片文章會有講解 3.查詢的僅僅是快照,并不能修改當(dāng)前狀態(tài) 4.基本語法兩種方式,使用時間片或scn號 使用時間片的情況比較多 1.select* from 你要查詢表的名字 as of timestamp 查詢某一時間該表的數(shù)據(jù) 2.select* from 你要查詢表的名字 as of scn具體scn號 關(guān)于scn號,另一篇文章會講解 4.原理: 簡單的說就是將以前被修改,刪除了的數(shù)據(jù),通過開啟flashback 模式,回到我們需要回到的時間來查看數(shù)據(jù), 在undo_retention該變量設(shè)置的時間過后,該鏡像數(shù)據(jù)會自動被清除.相當(dāng)于查看的是一個
4、鏡像數(shù)據(jù).一種方式是利用scn號來查看鏡像數(shù)據(jù),另一種是通過查找時間片來查詢鏡像數(shù)據(jù) 案例1:-創(chuàng)建測試flashquery表格 主要由scn號和系統(tǒng)日期組成 create table testquery( id number, scn number, time varchar2(20), mydate varchar2(20) );-插入測試數(shù)據(jù)begin for i in 1.16 loop insert into testquery values(i,dbms_flashback.get_system_change_number(),to_char (sysdate,yyyy-mm-dd
5、 hh24:mi:ss),你好|i); -插入scn號和sysdate為方便后續(xù)查詢 commit; -如果不實時commit,那么會在循環(huán)完后,批量提交,時間點是一樣的 dbms_lock.sleep(2); -使用dbms_lock.sleep 方法和java的thread睡眠是一個意思 參數(shù)以秒為單位 end loop;end;-查詢未修改的數(shù)據(jù) result:133035522011-01-25 11:51:33你好1 233035562011-01-25 11:51:35你好2 333035582011-01-25 11:51:37你好3 433035602011-01-25 11:
6、51:39你好4 533035622011-01-25 11:51:41你好5 633035642011-01-25 11:51:43你好6 733035662011-01-25 11:51:45你好7 833035682011-01-25 11:51:47你好8 933035702011-01-25 11:51:49你好9 1033035722011-01-25 11:51:51你好10 1133035742011-01-25 11:51:53你好111233035762011-01-25 11:51:55你好12 1333035782011-01-25 11:51:57你好13 14330
7、35802011-01-25 11:51:59你好14 1533035822011-01-25 11:52:01你好15 1633035842011-01-25 11:52:03你好16-查詢最新的scn號類似于check point,該scn號在每次commit時,都會自動變化使用scn號來開啟flashback query模式 select dbms_flashback.get_system_change_number from dual;result:3307628-該scn號可以理解成為一個check point點.我們可以借助這個標(biāo)記來回退到該scn號查詢當(dāng)前的數(shù)據(jù)-修改第十條,和第
8、十一條的數(shù)據(jù):update testquery tq set tq.mydate=新年快樂 where scn=3303572;commit; update testquery tq set tq.mydate=萬事如意 where scn=3303574;commit;select * from testqueryresult:133035522011-01-25 11:51:33你好1 233035562011-01-25 11:51:35你好2 333035582011-01-25 11:51:37你好3 433035602011-01-25 11:51:39你好4 5330356220
9、11-01-25 11:51:41你好5 633035642011-01-25 11:51:43你好6 733035662011-01-25 11:51:45你好7 833035682011-01-25 11:51:47你好8 933035702011-01-25 11:51:49你好9 1033035722011-01-25 11:51:51新年快樂1133035742011-01-25 11:51:53萬事如意1233035762011-01-25 11:51:55你好12 1333035782011-01-25 11:51:57你好13 1433035802011-01-25 11:51
10、:59你好14 1533035822011-01-25 11:52:01你好15 1633035842011-01-25 11:52:03你好16-使用scn號來進行閃回查詢 1.不開啟flashback模式,僅使用flashback query語句做查詢select * from testquery as of scn 3307628result:133035522011-01-25 11:51:33你好1 233035562011-01-25 11:51:35你好2 333035582011-01-25 11:51:37你好3 433035602011-01-25 11:51:39你好4
11、533035622011-01-25 11:51:41你好5 633035642011-01-25 11:51:43你好6 733035662011-01-25 11:51:45你好7 833035682011-01-25 11:51:47你好8 933035702011-01-25 11:51:49你好9 1033035722011-01-25 11:51:51你好10 1133035742011-01-25 11:51:53你好111233035762011-01-25 11:51:55你好12 1333035782011-01-25 11:51:57你好13 1433035802011-
12、01-25 11:51:59你好14 1533035822011-01-25 11:52:01你好15 1633035842011-01-25 11:52:03你好16 2.開啟flashback模式做查詢,整個db將會產(chǎn)生某個scn號所在時間點的鏡像數(shù)據(jù). 使用dbms包開啟flashback模式:exec dbms_flashback.enable_at_system_change_number(3307628); 現(xiàn)在查看表的數(shù)據(jù):select * from testquery as of scn 3307628;result:133035522011-01-25 11:51:33你好1
13、 233035562011-01-25 11:51:35你好2 333035582011-01-25 11:51:37你好3 433035602011-01-25 11:51:39你好4 533035622011-01-25 11:51:41你好5 633035642011-01-25 11:51:43你好6 733035662011-01-25 11:51:45你好7 833035682011-01-25 11:51:47你好8 933035702011-01-25 11:51:49你好9 1033035722011-01-25 11:51:51你好10 1133035742011-01-2
14、5 11:51:53你好111233035762011-01-25 11:51:55你好12 1333035782011-01-25 11:51:57你好13 1433035802011-01-25 11:51:59你好14 1533035822011-01-25 11:52:01你好15 1633035842011-01-25 11:52:03你好16注:此時整個db為鏡像數(shù)據(jù). 如果單獨再開啟個鏈接,那么看到的還是真實數(shù)據(jù)而不是鏡像數(shù)據(jù); 如果中途要退出flashback模式請使用:exec dbms_flashback.disable;退出flashback 模式:exec dbms_f
15、lashback.disable;select * from testqueryresult:133035522011-01-25 11:51:33你好1 233035562011-01-25 11:51:35你好2 333035582011-01-25 11:51:37你好3 433035602011-01-25 11:51:39你好4 533035622011-01-25 11:51:41你好5 633035642011-01-25 11:51:43你好6 733035662011-01-25 11:51:45你好7 833035682011-01-25 11:51:47你好8 93303
16、5702011-01-25 11:51:49你好9 1033035722011-01-25 11:51:51新年快樂1133035742011-01-25 11:51:53萬事如意1233035762011-01-25 11:51:55你好12 1333035782011-01-25 11:51:57你好13 1433035802011-01-25 11:51:59你好14 1533035822011-01-25 11:52:01你好15 1633035842011-01-25 11:52:03你好16 以上就是使用scn號來做閃回查詢了;-使用時間點來進行閃回查詢 select * from
17、 testquery as of timestamp to_timestamp(2011-01-25 13:25:55,yyyy-mm-dd hh24:mi:ss); 做此查詢要確保沒有對原有表結(jié)構(gòu)進行修改,如果有的話可能引發(fā)異常;select * from testquery;result:133035522011-01-25 11:51:33你好1 233035562011-01-25 11:51:35你好2 333035582011-01-25 11:51:37你好3 433035602011-01-25 11:51:39你好4 533035622011-01-25 11:51:41你好
18、5 633035642011-01-25 11:51:43你好6 733035662011-01-25 11:51:45你好7 833035682011-01-25 11:51:47你好8 933035702011-01-25 11:51:49你好9 1033035722011-01-25 11:51:51你好10 1133035742011-01-25 11:51:53你好111233035762011-01-25 11:51:55你好12 1333035782011-01-25 11:51:57你好13 1433035802011-01-25 11:51:59你好14 1533035822
19、011-01-25 11:52:01你好15 1633035842011-01-25 11:52:03你好16關(guān)于scn號和這個timestamp的轉(zhuǎn)換這個可能會出問題(undo表空間過小,無法查詢到過早的數(shù)據(jù)) scntimestamp: select scn_to_timestamp(scn號) as ts from dual; timestampscnselect timestamp_to_scn(25-1月-11 01.05.29.046000 下午) from dual;:關(guān)于flashback table: 1.閃回表格,可將表格的數(shù)據(jù)閃回到某個時間點 2.需要開啟行移動模式 en
20、able row movement 3.原理:flashback table也是利用undo數(shù)據(jù)來恢復(fù)對象到指定時間點 4.使用范圍:恢復(fù)當(dāng)前表及其相關(guān)對象到某個時間點5.注意點: 1).閃回時間受參數(shù)undo_retention影響 2).閃回時間受undo表空間大小影響 3).和flashback query有差別,恢復(fù)表到以前的時間點 真實閃回,而不是鏡像 6.語法: 1).flashback table table_name to timestamp . 根據(jù)時間點閃回 2).flash table table_name to scn . 根據(jù)scn號回退,實際操作基本上不會用到3).flashback table table_name to timestamp . enable triggers. 創(chuàng)建表,開啟行移動模式,用的不多 4).flashback table testflashtable to timestamp systimestamp - interval 5 minute; 回退到幾分鐘之前,用的多例:將第一條數(shù)據(jù)更新,然后進行閃回表格,得到我們以前的數(shù)據(jù);創(chuàng)建新的表格測試:create tabl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度律師起草環(huán)境保護協(xié)議起草及審查收費標(biāo)準(zhǔn)合同
- 2025年度合同主體變更審批流程與責(zé)任追究規(guī)范
- 2025年度養(yǎng)老服務(wù)行業(yè)退休人員勞務(wù)聘用合同
- 2025年度專業(yè)市場營業(yè)場所租賃合同
- 2025年度文化創(chuàng)意產(chǎn)業(yè)投資合作協(xié)議書
- 2025年度個體戶雇工勞動權(quán)益保護與晉升機制合同
- 2025年度房屋抵押借款合同風(fēng)險預(yù)警與防范策略
- 2025年硫酸鐵行業(yè)現(xiàn)狀分析:全球硫酸鐵市場規(guī)模將達975.91億元
- 2025年包裝設(shè)備行業(yè)前景分析:包裝設(shè)備行業(yè)發(fā)展趨勢實現(xiàn)顯著提升
- 2025年貴州交通職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫審定版
- 作品集合同范本
- 保安員綜合理論考試題庫備考500題(含各題型)
- X證書失智老年人照護身體綜合照護講解
- 2025勞動合同法重點法條導(dǎo)讀附案例詳解
- 2025年內(nèi)蒙古自治區(qū)政府工作報告測試題及參考答案
- 2024年全國中學(xué)生生物學(xué)聯(lián)賽試題及答案詳解
- 2025年度花卉產(chǎn)業(yè)大數(shù)據(jù)服務(wù)平臺建設(shè)合同2篇
- 2025年度花卉產(chǎn)業(yè)大數(shù)據(jù)平臺建設(shè)合同3篇
- 小學(xué)班會-交通安全伴我行(共25張課件)
- 建筑施工現(xiàn)場安全警示(案例)
- 《生產(chǎn)與運作管理 第4版》課件 第1、2章 概論、需求預(yù)測與管理
評論
0/150
提交評論