-
當前位置:首頁 > 創(chuàng)意學院 > 技術(shù) > 專題列表 > 正文
從flash back里查詢被刪除的表select * from recyclebin
執(zhí)行表的恢復flashback table tbName to before drop;這里的tbName代表你要恢復的表的名稱。
先從flashback_transaction_query視圖里查詢,視圖提供了供查詢用的表名稱、事務提交時間、UNDO_SQL等字段。
一般先根據(jù)時間進行查詢,查詢語句模式為select * from tb as of timestamp to_timestamp(time,'yyyy-mm-dd hh44:mi:ss'); tb指表名稱,time指某個時間點。
oracle閃回查詢語句(oracle 閃回查詢語句)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于oracle閃回查詢語句的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、oracle如何恢復誤刪的表記錄數(shù)據(jù)?
oracle如何恢復誤刪的表記錄數(shù)據(jù),解決辦法:
這個命令的作用是,允許Oracle 修改分配給行的rowid。
在Oracle 中,插入一行時就會為它分配一個rowid,而且這一行永遠擁有這個rowid。
閃回表處理會對EMP 完成DELETE,并且重新插入行,這樣就會為這些行分配一個新的rowid。
要支持閃回就必須允許Oracle 執(zhí)行這個操作。
二、什么是閃回技術(shù)???主要內(nèi)容有哪些???
為了使oracle數(shù)據(jù)庫從任何邏輯誤操作中迅速恢復,Oracle 數(shù)據(jù)庫10g 提供了一系列人為錯誤更正技術(shù),稱為閃回。閃回從根本上改變了數(shù)據(jù)恢復。過去,數(shù)據(jù)庫在幾分鐘內(nèi)就可能損壞,但需要幾小時才能恢復。利用閃回技術(shù),更正錯誤的時間與錯誤發(fā)生時間幾乎相同。而且它非常易用,使用一條短命令便可恢復整個數(shù)據(jù)庫,而不必執(zhí)行復雜的程序。閃回技術(shù)提供了一個 SQL 界面,能夠快速分析和修復人為錯誤。閃回技術(shù)為本地數(shù)據(jù)損壞提供了細粒度外部分析和修復,如當錯誤刪除客戶訂單時。閃回技術(shù)還支持修復更多廣泛的損壞,同時快速避免長時間停機,如當本月的所有客戶訂單都被刪除時。閃回技術(shù)是 Oracle 數(shù)據(jù)庫獨有的特性,支持各級恢復,包括行、事務、表、表空間和數(shù)據(jù)庫范圍。
1 閃回查詢
在Oracle 9i之前,如果用戶錯誤操作數(shù)據(jù)后,除了不完全恢復外,沒有好的解決辦法。Oracle 9i中提供閃回查詢,由一個新的包DBMS_FLASH來實現(xiàn)。用戶使用閃回查詢可以及時取得誤操作DML(Delete、Update、Insert)前某一時間點數(shù)據(jù)庫的映像視圖,用戶可以利用系統(tǒng)時間或系統(tǒng)改變號(SCN:System Change Number)來指定這個只讀視圖,并可以針對錯誤進行相應的恢復措施。閃回查詢功能完全依賴于自動回滾段管理(AUM),對于Drop等誤操作不能恢復。閃回特性可應用在以下方面:
(1)自我維護過程中的修復:當一些重要的記錄被意外刪除,用戶可以向后移動到一個時間點,查看丟失的行并把它們重新插入現(xiàn)在的表內(nèi)恢復。
(2)恢復Email和聲音Email:當用戶意外刪除了Email或者聲音信息時,可以通過移回到固定時間點來恢復刪除。
(3)賬號平衡狀況:可以查看以前的歷史數(shù)據(jù)。如銀行外幣管理中用于記錄特定時間的匯率。在以前,匯率變更被記錄在一個歷史表中,現(xiàn)在就可以通過閃回功能進行查詢。
(4)用于趨勢分析的決策支持系統(tǒng):決策支持系統(tǒng)和聯(lián)機分析應用必須執(zhí)行一個長時間的事務。使用閃回查詢,這些應用可以對歷史數(shù)據(jù)執(zhí)行分析和建模。例如,特定產(chǎn)品如礦泉水隨季節(jié)變化需求情況的變化。
2 閃回版本查詢
閃回版本查詢提供了一種查看行級數(shù)據(jù)庫變化的方法。它是 SQL 的擴展,支持以特定時間間隔檢索所有不同版本的行。例如:
Select * from EMPLOYEE versions between ‘2:00 PM’ and ‘3:00 PM’ where …
該語句顯示出今天下午 2 點至 3 點之間該行的各版本,每個版本都由不同的事務所更改。使用 DBA 可指出數(shù)據(jù)何時、如何被更改的,并追溯到用戶、應用程序或事務。這使得 DBA 可以跟蹤數(shù)據(jù)庫中的邏輯破壞并加以更正。它還讓應用開發(fā)人員能夠?qū)ζ浯a進行調(diào)試。
3 閃回事務查詢
閃回事務查詢提供了一種查看事務級數(shù)據(jù)庫變化的方法。它是 SQL 的擴展,能夠看到事務帶來的所有變化。例如:
Select * from DBA_TRANSACTION_QUERY where xid = ‘000200030000002D’;
該語句顯示出該事務引起的結(jié)果性變化。此外,返回補充 SQL 語句,并用于撤消由事務引起的各行變化。使用精密工具(如 DBA),應用開發(fā)人員可以精確地診斷和更正數(shù)據(jù)庫或應用中的邏輯問題。
4 閃回數(shù)據(jù)庫
要將 Oracle 數(shù)據(jù)庫恢復到以前的時間點,傳統(tǒng)方法是進行時間點恢復。然而,時間點恢復需要用數(shù)小時甚至幾天的時間,因為它需要從備份中恢復整個數(shù)據(jù)庫,并恰好恢復到數(shù)據(jù)庫發(fā)生錯誤前的時間點。由于數(shù)據(jù)庫的大小不斷增長,因此需要用數(shù)小時甚至幾天的時間才能恢復整個數(shù)據(jù)庫。 閃回數(shù)據(jù)庫是進行時間點恢復的新戰(zhàn)略。它能夠快速將 Oracle 數(shù)據(jù)庫恢復到以前的時間,以正確更正由于邏輯數(shù)據(jù)損壞或用戶錯誤而引起的任何問題。閃回日志可用于捕獲舊版本的變化塊。一種方法是不間斷備份或存儲快照。當需要執(zhí)行恢復時,可快速重放閃回日志,以將數(shù)據(jù)庫恢復到錯誤前的時間點,并且只恢復改變的塊。這一過程非???,可將恢復時間從數(shù)小時縮短至幾分鐘。此外,它還非常易用。通過發(fā)出以下簡單的命令,可將數(shù)據(jù)庫恢復到 2:05 PM。
FLASHBACK DATABASE to ‘2:05 PM’;
它的使用不要求進行磁帶恢復,沒有冗長的停機時間,沒有復雜的恢復過程。您還可以使用閃回,然后以只讀方式打開數(shù)據(jù)庫,并檢查其內(nèi)容。如果您確定閃回過遠或不足,您可以重新發(fā)出閃回命令,以找到數(shù)據(jù)庫損壞前的正確時間點。閃回同時與 Data Guard 相集成,因此您可以一起閃回生產(chǎn)和待機數(shù)據(jù)庫(參見以下數(shù)據(jù)保護部分)。
閃回數(shù)據(jù)庫就像是為數(shù)據(jù)庫安裝了一個倒回或撤消按鈕。
5 閃回表
使用該特性,可以確保數(shù)據(jù)庫表能夠被恢復到之前的某一個時間點上。注意,該功能與最早的Oracle 9i中的Flashback Query不同,F(xiàn)lashback Query僅是得到了表在之前某個時間點上的快照而已,并不改變當前表的狀態(tài);而Falshback Table卻能夠?qū)⒈砑案綄賹ο笠黄鸹氐揭郧暗哪硞€時間點。該功能基于撤銷數(shù)據(jù)(undodata)。
6 閃回刪除
無意丟棄或刪除數(shù)據(jù)庫是人們經(jīng)常會犯的錯誤。經(jīng)常聽到 Oracle 支持人員說:“在我刪除那個表時,我以為我已經(jīng)連接到了測試數(shù)據(jù)庫?!庇脩粢颜J識到他們錯了,但已經(jīng)太晚了,沒有辦法輕松恢復被刪除的表及其索引、約束和觸發(fā)器。對象一旦被刪除就永遠被刪除了。如果真是重要的表或其它對象(如索引、分區(qū)或集簇),DBA 不得不執(zhí)行時間點恢復,但這非常耗時,而且會導致丟失最近的事務。 閃回刪除針對刪除 Oracle 數(shù)據(jù)庫 10g 中的對象提供了一個安全網(wǎng)絡。當用戶刪除一個表,Oracle 會將它放到垃圾箱中。垃圾箱中的對象一直會保留,直到用戶決定永久刪除它們或包含該本的表空間不足。垃圾箱是一個虛擬容器,用于存放所有被刪除的對象。用戶可以查看垃圾箱,“撤消”被刪除的表及其相關(guān)的對象。例如,可以發(fā)出以下命令來“撤消”雇員信息表及其所有相關(guān)對象。
FLASHBACK TABLE employee BEFORE DROP;
閃回刪除就像是為一個表及其相關(guān)對象安裝了一個撤消按鈕。
三、oracle高級數(shù)據(jù)庫應用,實驗報告:數(shù)據(jù)閃回 使用flashback實現(xiàn)對表、模式以及數(shù)據(jù)庫級誤刪除進行恢復。
首先你要知道依賴關(guān)系:
flashback database依賴于:閃回日志
flashback drop依賴于:回收站
flashback table/query依賴于:undo
開啟閃回要在mount狀態(tài)下:
alter system set db_flashback_retention_target=2880 scope=both;
alter database flashback on;
再者你要利用事務號獲得undo語句
查看事務號:select versions_xid,empno,ename,sal from tt01
versions between timestamp minvalue and maxvalue
order by empno;
根據(jù)得到的事務號查看undo_sql語句:
select undo_sql from flashback_transaction_query
where xid='versions_xid' //這里的XID就是上面查詢到的versions_xid
如果只是閃回誤刪除的表:
flashback table TT01 to before drop;
閃回的是最近刪除的一張表,當然也可以根據(jù)情況自定義閃回誤刪的表
步驟:
查看DB回收站內(nèi)容:show recyclebin;
在里面可以查看到刪除的表,根據(jù)里面的recyclebin name可以來查看表結(jié)構(gòu)
比如:desc "BIN$3naDFKEKFIDISB332DI"
四、oracle閃回運用
很簡單,就一個語句
flashback table tablename to before drop;
以上就是關(guān)于oracle閃回查詢語句相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
wordpress搜索文章(wordpress搜索文章后確認自動打開該文章)
韓國化妝品牌子排行榜(韓國化妝品牌子排行榜前十名orlod)
杭州市獨生子女父母60歲補貼標準(杭州市獨生子女父母60歲補貼標準是多少)