HOME 首頁(yè)
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營(yíng)
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    oracle閃回查詢語(yǔ)句(oracle 閃回查詢語(yǔ)句)

    發(fā)布時(shí)間:2023-04-19 05:12:34     稿源: 創(chuàng)意嶺    閱讀: 96        

    大家好!今天讓創(chuàng)意嶺的小編來(lái)大家介紹下關(guān)于oracle閃回查詢語(yǔ)句的問(wèn)題,以下是小編對(duì)此問(wèn)題的歸納整理,讓我們一起來(lái)看看吧。

    開(kāi)始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁(yè)版、PC客戶端

    官網(wǎng):https://ai.de1919.com。

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請(qǐng)撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    oracle閃回查詢語(yǔ)句(oracle 閃回查詢語(yǔ)句)

    一、oracle如何恢復(fù)誤刪的表記錄數(shù)據(jù)?

    oracle如何恢復(fù)誤刪的表記錄數(shù)據(jù),解決辦法:

    1. 從flash back里查詢被刪除的表select * from recyclebin

    2. 執(zhí)行表的恢復(fù)flashback table  tbName  to before drop;這里的tbName代表你要恢復(fù)的表的名稱。

    3. 先從flashback_transaction_query視圖里查詢,視圖提供了供查詢用的表名稱、事務(wù)提交時(shí)間、UNDO_SQL等字段。

    4. 一般先根據(jù)時(shí)間進(jìn)行查詢,查詢語(yǔ)句模式為select * from tb as of timestamp to_timestamp(time,'yyyy-mm-dd hh44:mi:ss'); tb指表名稱,time指某個(gè)時(shí)間點(diǎn)。

    這個(gè)命令的作用是,允許Oracle 修改分配給行的rowid。

    在Oracle 中,插入一行時(shí)就會(huì)為它分配一個(gè)rowid,而且這一行永遠(yuǎn)擁有這個(gè)rowid。

    閃回表處理會(huì)對(duì)EMP 完成DELETE,并且重新插入行,這樣就會(huì)為這些行分配一個(gè)新的rowid。

    要支持閃回就必須允許Oracle 執(zhí)行這個(gè)操作。

    二、什么是閃回技術(shù)???主要內(nèi)容有哪些啊?

    為了使oracle數(shù)據(jù)庫(kù)從任何邏輯誤操作中迅速恢復(fù),Oracle 數(shù)據(jù)庫(kù)10g 提供了一系列人為錯(cuò)誤更正技術(shù),稱為閃回。閃回從根本上改變了數(shù)據(jù)恢復(fù)。過(guò)去,數(shù)據(jù)庫(kù)在幾分鐘內(nèi)就可能損壞,但需要幾小時(shí)才能恢復(fù)。利用閃回技術(shù),更正錯(cuò)誤的時(shí)間與錯(cuò)誤發(fā)生時(shí)間幾乎相同。而且它非常易用,使用一條短命令便可恢復(fù)整個(gè)數(shù)據(jù)庫(kù),而不必執(zhí)行復(fù)雜的程序。閃回技術(shù)提供了一個(gè) SQL 界面,能夠快速分析和修復(fù)人為錯(cuò)誤。閃回技術(shù)為本地?cái)?shù)據(jù)損壞提供了細(xì)粒度外部分析和修復(fù),如當(dāng)錯(cuò)誤刪除客戶訂單時(shí)。閃回技術(shù)還支持修復(fù)更多廣泛的損壞,同時(shí)快速避免長(zhǎng)時(shí)間停機(jī),如當(dāng)本月的所有客戶訂單都被刪除時(shí)。閃回技術(shù)是 Oracle 數(shù)據(jù)庫(kù)獨(dú)有的特性,支持各級(jí)恢復(fù),包括行、事務(wù)、表、表空間和數(shù)據(jù)庫(kù)范圍。

    1 閃回查詢

    在Oracle 9i之前,如果用戶錯(cuò)誤操作數(shù)據(jù)后,除了不完全恢復(fù)外,沒(méi)有好的解決辦法。Oracle 9i中提供閃回查詢,由一個(gè)新的包DBMS_FLASH來(lái)實(shí)現(xiàn)。用戶使用閃回查詢可以及時(shí)取得誤操作DML(Delete、Update、Insert)前某一時(shí)間點(diǎn)數(shù)據(jù)庫(kù)的映像視圖,用戶可以利用系統(tǒng)時(shí)間或系統(tǒng)改變號(hào)(SCN:System Change Number)來(lái)指定這個(gè)只讀視圖,并可以針對(duì)錯(cuò)誤進(jìn)行相應(yīng)的恢復(fù)措施。閃回查詢功能完全依賴于自動(dòng)回滾段管理(AUM),對(duì)于Drop等誤操作不能恢復(fù)。閃回特性可應(yīng)用在以下方面:

    (1)自我維護(hù)過(guò)程中的修復(fù):當(dāng)一些重要的記錄被意外刪除,用戶可以向后移動(dòng)到一個(gè)時(shí)間點(diǎn),查看丟失的行并把它們重新插入現(xiàn)在的表內(nèi)恢復(fù)。

    (2)恢復(fù)Email和聲音Email:當(dāng)用戶意外刪除了Email或者聲音信息時(shí),可以通過(guò)移回到固定時(shí)間點(diǎn)來(lái)恢復(fù)刪除。

    (3)賬號(hào)平衡狀況:可以查看以前的歷史數(shù)據(jù)。如銀行外幣管理中用于記錄特定時(shí)間的匯率。在以前,匯率變更被記錄在一個(gè)歷史表中,現(xiàn)在就可以通過(guò)閃回功能進(jìn)行查詢。

    (4)用于趨勢(shì)分析的決策支持系統(tǒng):決策支持系統(tǒng)和聯(lián)機(jī)分析應(yīng)用必須執(zhí)行一個(gè)長(zhǎng)時(shí)間的事務(wù)。使用閃回查詢,這些應(yīng)用可以對(duì)歷史數(shù)據(jù)執(zhí)行分析和建模。例如,特定產(chǎn)品如礦泉水隨季節(jié)變化需求情況的變化。

    2 閃回版本查詢

    閃回版本查詢提供了一種查看行級(jí)數(shù)據(jù)庫(kù)變化的方法。它是 SQL 的擴(kuò)展,支持以特定時(shí)間間隔檢索所有不同版本的行。例如:

    Select * from EMPLOYEE versions between ‘2:00 PM’ and ‘3:00 PM’ where …

    該語(yǔ)句顯示出今天下午 2 點(diǎn)至 3 點(diǎn)之間該行的各版本,每個(gè)版本都由不同的事務(wù)所更改。使用 DBA 可指出數(shù)據(jù)何時(shí)、如何被更改的,并追溯到用戶、應(yīng)用程序或事務(wù)。這使得 DBA 可以跟蹤數(shù)據(jù)庫(kù)中的邏輯破壞并加以更正。它還讓應(yīng)用開(kāi)發(fā)人員能夠?qū)ζ浯a進(jìn)行調(diào)試。

    3 閃回事務(wù)查詢

    閃回事務(wù)查詢提供了一種查看事務(wù)級(jí)數(shù)據(jù)庫(kù)變化的方法。它是 SQL 的擴(kuò)展,能夠看到事務(wù)帶來(lái)的所有變化。例如:

    Select * from DBA_TRANSACTION_QUERY where xid = ‘000200030000002D’;

    該語(yǔ)句顯示出該事務(wù)引起的結(jié)果性變化。此外,返回補(bǔ)充 SQL 語(yǔ)句,并用于撤消由事務(wù)引起的各行變化。使用精密工具(如 DBA),應(yīng)用開(kāi)發(fā)人員可以精確地診斷和更正數(shù)據(jù)庫(kù)或應(yīng)用中的邏輯問(wèn)題。

    4 閃回?cái)?shù)據(jù)庫(kù)

    要將 Oracle 數(shù)據(jù)庫(kù)恢復(fù)到以前的時(shí)間點(diǎn),傳統(tǒng)方法是進(jìn)行時(shí)間點(diǎn)恢復(fù)。然而,時(shí)間點(diǎn)恢復(fù)需要用數(shù)小時(shí)甚至幾天的時(shí)間,因?yàn)樗枰獜膫浞葜谢謴?fù)整個(gè)數(shù)據(jù)庫(kù),并恰好恢復(fù)到數(shù)據(jù)庫(kù)發(fā)生錯(cuò)誤前的時(shí)間點(diǎn)。由于數(shù)據(jù)庫(kù)的大小不斷增長(zhǎng),因此需要用數(shù)小時(shí)甚至幾天的時(shí)間才能恢復(fù)整個(gè)數(shù)據(jù)庫(kù)。 閃回?cái)?shù)據(jù)庫(kù)是進(jìn)行時(shí)間點(diǎn)恢復(fù)的新戰(zhàn)略。它能夠快速將 Oracle 數(shù)據(jù)庫(kù)恢復(fù)到以前的時(shí)間,以正確更正由于邏輯數(shù)據(jù)損壞或用戶錯(cuò)誤而引起的任何問(wèn)題。閃回日志可用于捕獲舊版本的變化塊。一種方法是不間斷備份或存儲(chǔ)快照。當(dāng)需要執(zhí)行恢復(fù)時(shí),可快速重放閃回日志,以將數(shù)據(jù)庫(kù)恢復(fù)到錯(cuò)誤前的時(shí)間點(diǎn),并且只恢復(fù)改變的塊。這一過(guò)程非??欤蓪⒒謴?fù)時(shí)間從數(shù)小時(shí)縮短至幾分鐘。此外,它還非常易用。通過(guò)發(fā)出以下簡(jiǎn)單的命令,可將數(shù)據(jù)庫(kù)恢復(fù)到 2:05 PM。

    FLASHBACK DATABASE to ‘2:05 PM’;

    它的使用不要求進(jìn)行磁帶恢復(fù),沒(méi)有冗長(zhǎng)的停機(jī)時(shí)間,沒(méi)有復(fù)雜的恢復(fù)過(guò)程。您還可以使用閃回,然后以只讀方式打開(kāi)數(shù)據(jù)庫(kù),并檢查其內(nèi)容。如果您確定閃回過(guò)遠(yuǎn)或不足,您可以重新發(fā)出閃回命令,以找到數(shù)據(jù)庫(kù)損壞前的正確時(shí)間點(diǎn)。閃回同時(shí)與 Data Guard 相集成,因此您可以一起閃回生產(chǎn)和待機(jī)數(shù)據(jù)庫(kù)(參見(jiàn)以下數(shù)據(jù)保護(hù)部分)。

    閃回?cái)?shù)據(jù)庫(kù)就像是為數(shù)據(jù)庫(kù)安裝了一個(gè)倒回或撤消按鈕。

    5 閃回表

    使用該特性,可以確保數(shù)據(jù)庫(kù)表能夠被恢復(fù)到之前的某一個(gè)時(shí)間點(diǎn)上。注意,該功能與最早的Oracle 9i中的Flashback Query不同,F(xiàn)lashback Query僅是得到了表在之前某個(gè)時(shí)間點(diǎn)上的快照而已,并不改變當(dāng)前表的狀態(tài);而Falshback Table卻能夠?qū)⒈砑案綄賹?duì)象一起回到以前的某個(gè)時(shí)間點(diǎn)。該功能基于撤銷數(shù)據(jù)(undodata)。

    6 閃回刪除

    無(wú)意丟棄或刪除數(shù)據(jù)庫(kù)是人們經(jīng)常會(huì)犯的錯(cuò)誤。經(jīng)常聽(tīng)到 Oracle 支持人員說(shuō):“在我刪除那個(gè)表時(shí),我以為我已經(jīng)連接到了測(cè)試數(shù)據(jù)庫(kù)?!庇脩粢颜J(rèn)識(shí)到他們錯(cuò)了,但已經(jīng)太晚了,沒(méi)有辦法輕松恢復(fù)被刪除的表及其索引、約束和觸發(fā)器。對(duì)象一旦被刪除就永遠(yuǎn)被刪除了。如果真是重要的表或其它對(duì)象(如索引、分區(qū)或集簇),DBA 不得不執(zhí)行時(shí)間點(diǎn)恢復(fù),但這非常耗時(shí),而且會(huì)導(dǎo)致丟失最近的事務(wù)。 閃回刪除針對(duì)刪除 Oracle 數(shù)據(jù)庫(kù) 10g 中的對(duì)象提供了一個(gè)安全網(wǎng)絡(luò)。當(dāng)用戶刪除一個(gè)表,Oracle 會(huì)將它放到垃圾箱中。垃圾箱中的對(duì)象一直會(huì)保留,直到用戶決定永久刪除它們或包含該本的表空間不足。垃圾箱是一個(gè)虛擬容器,用于存放所有被刪除的對(duì)象。用戶可以查看垃圾箱,“撤消”被刪除的表及其相關(guān)的對(duì)象。例如,可以發(fā)出以下命令來(lái)“撤消”雇員信息表及其所有相關(guān)對(duì)象。

    FLASHBACK TABLE employee BEFORE DROP;

    閃回刪除就像是為一個(gè)表及其相關(guān)對(duì)象安裝了一個(gè)撤消按鈕。

    三、oracle高級(jí)數(shù)據(jù)庫(kù)應(yīng)用,實(shí)驗(yàn)報(bào)告:數(shù)據(jù)閃回 使用flashback實(shí)現(xiàn)對(duì)表、模式以及數(shù)據(jù)庫(kù)級(jí)誤刪除進(jìn)行恢復(fù)。

    首先你要知道依賴關(guān)系:

    flashback database依賴于:閃回日志

    flashback drop依賴于:回收站

    flashback table/query依賴于:undo

    開(kāi)啟閃回要在mount狀態(tài)下:

    alter system set db_flashback_retention_target=2880 scope=both;

    alter database flashback on;

    再者你要利用事務(wù)號(hào)獲得undo語(yǔ)句

    查看事務(wù)號(hào):select versions_xid,empno,ename,sal from tt01

    versions between timestamp minvalue and maxvalue

    order by empno;

    根據(jù)得到的事務(wù)號(hào)查看undo_sql語(yǔ)句:

    select undo_sql from flashback_transaction_query

    where xid='versions_xid' //這里的XID就是上面查詢到的versions_xid

    如果只是閃回誤刪除的表:

    flashback table TT01 to before drop;

    閃回的是最近刪除的一張表,當(dāng)然也可以根據(jù)情況自定義閃回誤刪的表

    步驟:

    查看DB回收站內(nèi)容:show recyclebin;

    在里面可以查看到刪除的表,根據(jù)里面的recyclebin name可以來(lái)查看表結(jié)構(gòu)

    比如:desc "BIN$3naDFKEKFIDISB332DI"

    四、oracle閃回運(yùn)用

    很簡(jiǎn)單,就一個(gè)語(yǔ)句

    flashback table tablename to before drop;

    以上就是關(guān)于oracle閃回查詢語(yǔ)句相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。


    推薦閱讀:

    wordpress搜索文章(wordpress搜索文章后確認(rèn)自動(dòng)打開(kāi)該文章)

    韓國(guó)化妝品牌子排行榜(韓國(guó)化妝品牌子排行榜前十名orlod)

    個(gè)人求職簡(jiǎn)歷word(個(gè)人求職簡(jiǎn)歷word文檔)

    杭州市獨(dú)生子女父母60歲補(bǔ)貼標(biāo)準(zhǔn)(杭州市獨(dú)生子女父母60歲補(bǔ)貼標(biāo)準(zhǔn)是多少)

    園林景觀設(shè)計(jì)公司標(biāo)語(yǔ)大全(園林景觀公司宣傳語(yǔ))