oracle資料庫閃回
A. OracleDatabase10g:閃回版本查詢
不需要設置 立即識別對行的所有更改
在 Oracle i Database 中 我們看到它推出了以閃回查詢形式表示的 時間機器 該特性允許 DBA 看到特定時間的列值 只要在還原段中提供該數據塊此前鏡像的拷貝即可 但是 閃回查詢只提供某時刻數據的固定快照 而不是在兩個時間點之間被更改數據的運行狀態表示 某些應用程序 如涉及到外幣管理的應用程序 可能需要了解一段時期內數值數據的變化 而不僅僅是兩個時間點的數值 由於閃回版本查詢特性 Oracle Database g 能夠更方便高效地執行該任務
查詢對表的更改
在本示例中 我使用了一個銀行外幣管理應用程序 其資料庫含有一個名稱為 RATES 的表 用於記錄特虧漏行定時間的匯率
SQL> desc rates Name Null?Type CURRENCY VARCHAR ( ) RATE NUMBER( )
該表顯示 US$ 與各種其他貨幣的匯率 在 CURRENCY 列中顯示 在金融服務行業中 匯率不但在變更時進行更新 而且被記錄在歷史中 需要這種方式的原因是銀行交易可能在 過去時間 生效 以便適應由於匯款而耗費的時間 例如 對於一項在上午 : 發生但在上午 : 生效的交易 其有效匯率是上午 : 的匯率 而不是現在的匯率
直到現在 唯一的選擇是創建一個匯率歷史表來存儲匯率的變更 然後查詢該表是否提供歷史記錄 另一種選擇是在 RATES 表本身中記錄特定匯率適用性的開始和結束時間 當發生變更時 現有行中的 END_TIME 列被更新為 SYSDATE 並插入一個具有新匯率的新行 其 END_TIME 為 NULL
但是在 Oracle Database g 中 閃回版本查詢特性不需要維護歷史表或存儲開始和結束時間 使用該特性 您不必進行額外的設置 即可獲得某行在過去特定時間的值
例如 假定該 DBA 在銷嘩正常業務過程中數次更新匯率 ― 甚至刪除了某行並重新插入該行
insert into rates values ( EURO ); mit; update rates set rate = ; mit; update rates set rate = ; mit; delete rates; mit; insert into rates values ( EURO ); mit; update rates set rate = ; mit;
在進行了這一系列操作後 DBA 將通過以下命令獲得 RATE 列的當前提交值
SQL> select * from rates;
CURR RATE EURO
此搜笑輸出顯示 RATE 的當前值 沒有顯示從第一次創建該行以來發生的所有變更 這時使用閃回查詢 您可以找出給定時間點的值 但我們對構建變更的審計線索更感興趣 ― 有些類似於通過攜帶型攝像機來記錄變更 而不只是在特定點拍攝一系列快照
以下查詢顯示了對表所做的更改
select versions_starttime versions_endtime versions_xid versions_operation rate from rates versions beeen timestamp minvalue and maxvalue order by VERSIONS_STARTTIME /
VERSIONS_STARTTIME VERSIONS_ENDTIME VERSIONS_XID V RATE DEC PM DEC PM C I DEC PM DEC PM A A U DEC PM DEC PM A B U DEC PM A C D DEC PM DEC PM A D I DEC PM A E U
注意 此處顯示了對該行所作的所有更改 甚至包括該行被刪除和重新插入的情況 VERSION_OPERATION 列顯示對該行執行了什麼操作 (Insert/Update/Delete) 所做的這些工作不需要歷史表或額外的列
在上述查詢中 列 versions_starttime versions_endtime versions_xid versions_operation 是偽列 與 ROWNUM LEVEL 等其他熟悉的偽列相類似 其他偽列 ― 如 VERSIONS_STARTSCN 和 VERSIONS_ENDSCN ― 顯示了該時刻的系統更改號 列 versions_xid 顯示了更改該行的事務標識符 有關該事務的更多詳細信息可在視圖 FLASHBACK_TRANSACTION_QUERY 中找到 其中列 XID 顯示事務 id 例如 使用上述的 VERSIONS_XID 值 A D UNDO_SQL 值顯示了實際的語句
SELECT UNDO_SQL FROM FLASHBACK_TRANSACTION_QUERY WHERE XID = A D ;
UNDO_SQL insert into ANANDA RATES ( CURRENCY RATE ) values ( EURO );
除了實際語句之外 該視圖還顯示提交操作的時間標記和 SCN 查詢開始時的 SCN 和時間標記以及其他信息
找出一段時期中的變更
現在 讓我們來看如何有效地使用這些信息 假設我們需要找出下午 : : 時 RATE 列的值 我們可以執行
select rate versions_starttime versions_endtime from rates versions beeen timestamp to_date( / / : : mm/dd/yyyy hh :mi:ss ) and to_date( / / : : mm/dd/yyyy hh :mi:ss ) /
RATE VERSIONS_STARTTIME VERSIONS_ENDTIME
此查詢與閃回查詢類似 在以上的示例中 開始和結束時間為空 表示匯率在該時間段中沒有更改 而是包含一個時間段 還可以使用 SCN 來找出過去的版本值 可以從偽列 VERSIONS_STARTSCN 和 VERSIONS_ENDSCN 中獲得 SCN 號 以下是一個示例
select rate versions_starttime versions_endtime from rates versions beeen scn and /
使用關鍵詞 MINVALUE 和 MAXVALUE 可以顯示還原段中提供的所有變更 您甚至可以提供一個特定的日期或 SCN 值作為范圍的一個端點 而另一個端點是文字 MAXVALUE 或 MINVALUE 例如 以下查詢提供那些只從下午 : : 開始的變更 而不是全部范圍的變更
select versions_starttime versions_endtime versions_xid versions_operation rate from rates versions beeen timestamp to_date( / / : : mm/dd/yyyy hh :mi:ss ) and maxvalue order by VERSIONS_STARTTIME /
VERSIONS_STARTTIME VERSIONS_ENDTIME VERSIONS_XID V RATE DEC PM A C D DEC PM DEC PM A D I DEC PM A E U
最終的分析
閃回版本查詢隨取隨用地復製表變更的短期易變數值審計 這一優點使得 DBA 能夠獲得過去時間段中的所有變更而不是特定值 只要還原段中提供數據 就可以盡情使用 因此 最大的可用版本依賴於 UNDO_RETENTION 參數
lishixin/Article/program/Oracle/201311/17217
B. oracle資料庫中閃回和回收站不是一個意思嗎
這里說點自己的理解,不寫那些名詞解釋了。
閃回功能和回收站並不一樣。
舉例來說,閃回一般操作就是短時間內的恢復(DML操作,個人感覺類似於win的ctrl+z(不過沒有win的好用))。比如說你剛剛刪除了數據,那麼利用閃回功能可以回到刪除之前。但是如果表的交易量很大,或者時間過長,那麼就不能回到你需要的時間(比如你想回到一天前,那閃回是基本不可能實現的)
回收站則不同,它主要是刪除段的放置空間。和windows的回收站一個意思(什麼見過回收站能還原一段在word中刪除的內容的),就是將刪除的段放置在這里。oracle中drop的段(主要是表),如果不加purge(加了就是徹底刪除),那麼就會放置在回收站中,就好像我們在win系統中的刪除,如果直接刪除一個文件,那麼在回收站中,如果是shift+del那麼就是徹底刪除,不可恢復。
其實回收站的表是可以看到的,就是那些一堆亂碼(BIN$開頭的字元串)表名的表。可以用show recyclebin查到,也可以zairecyclebin的視圖中看到。
C. 什麼是閃回技術啊主要內容有哪些啊
為了使oracle資料庫從任何邏輯誤操作中迅速恢復,Oracle 資料庫10g 提供了一系列人為錯誤更正技術,稱為閃回。閃回從根本上改變了數據恢復。過去,資料庫在幾分鍾內就可能損壞,但需要幾小時才能恢復。利用閃回技術,更正錯誤的時間與錯誤發生時間幾乎相同。而且它非常易用,使用一條短命令便可恢復整個資料庫,而不必執行復雜的程序。閃回技術提供了一個 SQL 界面,能夠快速分析和修復人為錯誤。閃回技術為本地數據損壞提供了細粒度外部分析和修復,如當錯誤刪除客戶訂單時。閃回技術還支持修復更多廣泛的損壞,同時快速避免長時間停機,如當本月的所有客戶訂單都被刪除時。閃回技術是 Oracle 資料庫獨有的特性,支持各級恢復,包括行、事務、表、表空間和資料庫范圍。
1 閃回查詢
在Oracle 9i之前,如果用戶錯誤操作數據後,除了不完全恢復外,沒有好的解決辦法。Oracle 9i中提供閃回查詢,由一個新的包DBMS_FLASH來實現。用戶使用閃回查詢可以及時取得誤操作DML(Delete、Update、Insert)前某一時間點資料庫的映像視圖,用戶可以利用系統時間或系統改變號(SCN:System Change Number)來指定這個只讀視圖,並可以針對錯誤進行相應的恢復措施。閃回查詢功能完全依賴於自動回滾段管理(AUM),對於Drop等誤操作不能恢復。閃回特性可應用在以下方面:
(1)自我維護過程中的修復:當一些重要的記錄被意外刪除,用戶可以向後移動到一個時間點,查看丟失的行並把它們重新插入現在的表內恢復。
(2)恢復Email和聲音Email:當用戶意外刪除了Email或者聲音信息時,可以通過移回到固定時間點來恢復刪除。
(3)賬號平衡狀況:可以查看以前的歷史數據。如銀行外幣管理中用於記錄特定時間的匯率。在以前,匯率變更被記錄在一個歷史表中,現在就可以通過閃回功能進行查詢。
(4)用於趨勢分析的決策支持系統:決策支持系統和聯機分析應用必須執行一個長時間的事務。使用閃回查詢,這些應用可以對歷史數據執行分析和建模。例如,特定產品如礦泉水隨季節變化需求情況的變化。
2 閃回版本查詢
閃回版本查詢提供了一種查看行級資料庫變化的方法。它是 SQL 的擴展,支持以特定時間間隔檢索所有不同版本的行。例如:
Select * from EMPLOYEE versions between 『2:00 PM』 and 『3:00 PM』 where …
該語句顯示出今天下午 2 點至 3 點之間該行的各版本,每個版本都由不同的事務所更改。使用 DBA 可指出數據何時、如何被更改的,並追溯到用戶、應用程序或事務。這使得 DBA 可以跟蹤資料庫中的邏輯破壞並加以更正。它還讓應用開發人員能夠對其代碼進行調試。
3 閃回事務查詢
閃回事務查詢提供了一種查看事務級資料庫變化的方法。它是 SQL 的擴展,能夠看到事務帶來的所有變化。例如:
Select * from DBA_TRANSACTION_QUERY where xid = 『000200030000002D』;
該語句顯示出該事務引起的結果性變化。此外,返回補充 SQL 語句,並用於撤消由事務引起的各行變化。使用精密工具(如 DBA),應用開發人員可以精確地診斷和更正資料庫或應用中的邏輯問題。
4 閃回資料庫
要將 Oracle 資料庫恢復到以前的時間點,傳統方法是進行時間點恢復。然而,時間點恢復需要用數小時甚至幾天的時間,因為它需要從備份中恢復整個資料庫,並恰好恢復到資料庫發生錯誤前的時間點。由於資料庫的大小不斷增長,因此需要用數小時甚至幾天的時間才能恢復整個資料庫。 閃回資料庫是進行時間點恢復的新戰略。它能夠快速將 Oracle 資料庫恢復到以前的時間,以正確更正由於邏輯數據損壞或用戶錯誤而引起的任何問題。閃回日誌可用於捕獲舊版本的變化塊。一種方法是不間斷備份或存儲快照。當需要執行恢復時,可快速重放閃回日誌,以將資料庫恢復到錯誤前的時間點,並且只恢復改變的塊。這一過程非常快,可將恢復時間從數小時縮短至幾分鍾。此外,它還非常易用。通過發出以下簡單的命令,可將資料庫恢復到 2:05 PM。
FLASHBACK DATABASE to 『2:05 PM』;
它的使用不要求進行磁帶恢復,沒有冗長的停機時間,沒有復雜的恢復過程。您還可以使用閃回,然後以只讀方式打開資料庫,並檢查其內容。如果您確定閃回過遠或不足,您可以重新發出閃回命令,以找到資料庫損壞前的正確時間點。閃回同時與 Data Guard 相集成,因此您可以一起閃回生產和待機資料庫(參見以下數據保護部分)。
閃回資料庫就像是為資料庫安裝了一個倒回或撤消按鈕。
5 閃回表
使用該特性,可以確保資料庫表能夠被恢復到之前的某一個時間點上。注意,該功能與最早的Oracle 9i中的Flashback Query不同,Flashback Query僅是得到了表在之前某個時間點上的快照而已,並不改變當前表的狀態;而Falshback Table卻能夠將表及附屬對象一起回到以前的某個時間點。該功能基於撤銷數據(undodata)。
6 閃回刪除
無意丟棄或刪除資料庫是人們經常會犯的錯誤。經常聽到 Oracle 支持人員說:「在我刪除那個表時,我以為我已經連接到了測試資料庫。」用戶已認識到他們錯了,但已經太晚了,沒有辦法輕松恢復被刪除的表及其索引、約束和觸發器。對象一旦被刪除就永遠被刪除了。如果真是重要的表或其它對象(如索引、分區或集簇),DBA 不得不執行時間點恢復,但這非常耗時,而且會導致丟失最近的事務。 閃回刪除針對刪除 Oracle 資料庫 10g 中的對象提供了一個安全網路。當用戶刪除一個表,Oracle 會將它放到垃圾箱中。垃圾箱中的對象一直會保留,直到用戶決定永久刪除它們或包含該本的表空間不足。垃圾箱是一個虛擬容器,用於存放所有被刪除的對象。用戶可以查看垃圾箱,「撤消」被刪除的表及其相關的對象。例如,可以發出以下命令來「撤消」雇員信息表及其所有相關對象。
FLASHBACK TABLE employee BEFORE DROP;
閃回刪除就像是為一個表及其相關對象安裝了一個撤消按鈕。
D. oracle 怎樣利用閃回功能恢復數據
1,只需要執行以下個腳本即可。
7,查圓模搏看日誌信息,就可以了。
E. 如何執行Oracle資料庫閃回查詢
可按以下步驟配置閃回資料庫:(確保資料庫處於ARCHIVELOG 模式。)
1. 配置快速恢復區。
2. 使用初始化參數DB_FLASHBACK_RETENTION_TARGET 設置保留目標。可指定
一個上限(以分鍾為單位),指示資料庫能夠閃回到多長時間以前。本示例使用
了 2880 分鍾,相當於兩天。此參數只是一個目標,並不提供任何保證。閃回時間
間隔取決於快速恢復區中保留的閃回數據量的大小。
3. 使用以下命令啟用閃回資料庫:
ALTER DATABASE FLASHBACK ON;
必須先配置資料庫以進行歸檔,且必須在 MOUNT EXCLUSIVE 模式下啟動資料庫
後,才能發出此命令來啟用閃回資料庫。
可以使用以下查詢來確定是否已啟用閃回資料庫:
SELECT flashback_on FROM v$database;
可以使用ALTER DATABASE FLASHBACK OFF 命令禁用閃回資料庫。這樣,會自動刪
除所有現有的閃回資料庫日誌。
註:僅當在獨占模式下裝載(而不是打開)資料庫時才能啟用閃回資料庫。
1.確認當前模式
SYS AS SYSDBA on 29-MAR-05 >select flashback_on from v$database;
FLA
---
NO
2.檢查/修改恢復區設置
SYS AS SYSDBA on 29-MAR-05 >show parameter db_recovery_file_dest
NAME TYPEVALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_deststring /u01/app/oracle/flash_recovery_areadb_recovery_file_dest_size big integer 10G
SYS AS SYSDBA on 29-MAR-05 >alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area';
SYS AS SYSDBA on 29-MAR-05 >alter system set db_recovery_file_dest_size=15G;
3.檢查/修改閃回時間設置
SYS AS SYSDBA on 29-MAR-05 >show parameter db_flashback_retention_target
NAME TYPEVALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_targetinteger 60
SYS AS SYSDBA on 29-MAR-05 >alter system set db_flashback_retention_target=1440;--分鍾
System altered.
如何設置flash recovery area
(1).db_recovery_file_dest:指定閃回恢復區的位置
(2).db_recovery_file_dest_size:指定閃回恢復區的可用空間大小
(3).db_flashback_retention_target:指定資料庫可以回退的時間,單位為分鍾,默認1440分鍾,也就是一天。當然,實際上可回退的時間還決定於閃回恢復區的大小,因為裡面保存了回退所需要的 flash log。所以這個參數要和db_recovery_file_dest_size配合修改。
alter system set db_flashback_retention_target=1440;
alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area';
alter system set db_recovery_size=15G;
4.重新啟動資料庫到Mount狀態
啟動flashback database選項。
SYS AS SYSDBA on 29-MAR-05 >shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS AS SYSDBA on 29-MAR-05 >startup mount exclusive;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1301704 bytes
Variable Size 261890872 bytes
Database Buffers 50331648 bytes
Redo Buffers1048576 bytes
Database mounted.
SYS AS SYSDBA on 29-MAR-05 >alter database flashback on;
Database altered.
SYS AS SYSDBA on 29-MAR-05 >alter database open;
Database altered.
F. Oracle10g資料庫中閃回表特性剖析
Oracle i Database 推出了閃回查詢選項的概念 以便檢索過去某個時間點的數據 但它不能閃回 DDL 操作 如刪除表的操作 唯一的恢復方法是在另一個資料庫中使用表空間的時間點恢復 然後使用導出/導派基入或其他方法 在當前資料庫中重新創建表 這一過程需要 DBA 進行大量工作並且耗費寶貴的時間 更不用說還要使用另一個資料庫進行克隆 使用 Oracle Database g 中的閃回表特性 它使得被刪除表的恢復過程如同執行幾條語句一樣簡單 讓我們來看該特性是如何工作的
刪除那個表!
首先 讓我們查看當前模式中的表
SQL> select * from tab;TNAMETABTYPECLUSTERID
RECYCLETESTTABLE
現在 我們意外地刪除了該表
SQL> drop table recycletest;Table dropped
現在讓我們來查看該表的狀態
SQL> select * from tab;TNAMETABTYPECLUSTERID BIN$ LhcpndanfgMAAAAAANPw==$ TABLE
表RECYCLETEST 已不存在 但是請注意出現新表BIN$ LhcpndanfgMAAAAAANPw==$ 這就是所發生的事情 被刪除的表 RECYCLETEST 並沒有完全消失 而是重命名為一個由系統定義的名稱 它存在於同一個表空間中 具有與原始表相同的結構 如果在該表上定義了索引或觸發器 則它們也被重命塵灶謹名 使用與表相同的命名規則 任何相關源(如過程)都失效 原始表的觸發器和索引被改為放置在重命名的表 BIN$ LhcpndanfgMAAAAAANPw==$ 上 保持被刪除表的完整對象結構
表及其相關對象被放置在一個稱為 回收站 的邏輯容器中 它類似於您 PC 機中的回收站 但是 對象並沒有從它們原先所在的表空間中刪除 它們仍然佔用那裡的空間 回收站只是一個列出被刪除對象目錄辯悶的邏輯結構 在 SQL*Plus 提示符處使用以下命令來查看其內容(您需要使用 SQL*Plus 來進行此操作)
SQL> show recyclebinORIGINAL NAMERECYCLEBIN NAMEOBJECT TYPEDROP TIME RECYCLETESTBIN$ LhcpndanfgMAAAAAANPw==$ TABLE : : :
結果顯示了表的原始名稱 RECYCLETEST 並顯示了回收站中的新名稱 該名稱與我們看到的刪除後所創建的新表名稱相同 (注意 確切的名稱可能因平台不同而不同 )為恢復該表 您所需要做的就是使用 FLASHBACK TABLE 命令
SQL> FLASHBACK TABLE RECYCLETEST TO BEFORE DROP;FLASHBACK PLETE SQL> SELECT * FROM TAB;TNAMETABTYPECLUSTERID RECYCLETESTTABLE
瞧!表毫不費力地恢復了 如果現在查看回收站 它將是空的 記住 將表放在回收站里並不在原始表空間中釋放空間 要釋放空間 您需要使用以下命令清空回收站
PURGE RECYCLEBIN;
但是如果您希望完全刪除該表而不需要使用閃回特性 該怎麼辦?在這種情況下 可以使用以下命令永久刪除該表
DROP TABLE RECYCLETEST PURGE;
此命令不會將表重命名為回收站中的名稱 而是永久刪除該表 就象 g 之前的版本一樣
管理回收站
如果在該過程中沒有實際刪除表 — 因而沒有釋放表空間 — 那麼當被刪除的對象佔用了所有空間時 會發生什麼事?
答案很簡單 這種情況根本不會出現 當表空間被回收站數據完全占滿 以至於必須擴展數據文件來容納更多數據時 可以說表空間處於 空間壓力 情況下 此時 對象以先進先出的方式從回收站中自動清除 在刪除表之前 相關對象(如索引)被刪除
同樣 空間壓力可能由特定表空間定義的用戶限額而引起 表空間可能有足夠的空餘空間 但用戶可能將其在該表空間中所分配的部分用完了 在這種情況下 Oracle 自動清除該表空間中屬於該用戶的對象
此外 有幾種方法可以手動控制回收站 如果在刪除名為 TEST 的特定表之後需要從回收站中清除它 可以執行
PURGE TABLE TEST;
或者使用其回收站中的名稱
PURGE TABLE BIN$ LhcpndanfgMAAAAAANPw==$ ;
此命令將從回收站中刪除表 TEST 及所有相關對象 如索引 約束等 從而節省了空間 但是 如果要從回收站中永久刪除索引 則可以使用以下命令來完成工作
purge index in_test _ ;
此命令將僅僅刪除索引 而將表的拷貝留在回收站中 有時在更高級別上進行清除可能會有用 例如 您可能希望清除表空間 USERS 的回收站中的所有對象 可以執行
PURGE TABLESPACE USERS;
您也許希望只為該表空間中特定用戶清空回收站 在數據倉庫類型的環境中 用戶創建和刪除許多臨時表 此時這種方法可能會有用 您可以更改上述命令 限定只清除特定的用戶
PURGE TABLESPACE USERS USER SCOTT;
諸如 SCOTT 等用戶可以使用以下命令來清空自己的回收站
PURGE RECYCLEBIN;
DBA 可以使用以下命令清除任何錶空間中的所有對象
PURGE DBA_RECYCLEBIN;
可以看到 可以通過多種不同方法來管理回收站 以滿足特定的需要
表版本和閃回功能
用戶可能會經常多次創建和刪除同一個表 如
CREATE TABLE TEST (COL NUMBER);INSERT INTO TEST VALUES ( );mit;DROP TABLE TEST;CREATE TABLE TEST (COL NUMBER);INSERT INTO TEST VALUES ( );mit;DROP TABLE TEST;CREATE TABLE TEST (COL NUMBER);INSERT INTO TEST VALUES ( );mit;DROP TABLE TEST;
此時 如果您要對表 TEST 執行閃回操作 那麼列 COL 的值應該是什麼?常規想法可能認為從回收站取回表的第一個版本 列 COL 的值是 實際上 取回的是表的第三個版本 而不是第一個 因此列 COL 的值為 而不是
此時您還可以取回被刪除表的其他版本 但是 表 TEST 的存在不允許出現這種情況 您有兩種選擇
使用重命名選項
FLASHBACK TABLE TEST TO BEFORE DROP RENAME TO TEST ;FLASHBACK TABLE TEST TO BEFORE DROP RENAME TO TEST ;
這些語句將表的第一個版本恢復到 TEST 將第二個版本恢復到 TEST TEST 和 TEST 中的列 COL 的值將分別是 和 或者 使用表的特定回收站名稱進行恢復 為此 首先要識別表的回收站名稱 然後執行
FLASHBACK TABLE BIN$ LhcpnoanfgMAAAAAANPw==$ TO BEFORE DROP RENAME TO TEST ;FLASHBACK TABLE BIN$ LhcpnqanfgMAAAAAANPw==$ TO BEFORE DROP RENAME TO TEST ;
這些語句將恢復被刪除表的兩個版本
警告
取消刪除特性使表恢復其原始名稱 但是索引和觸發器等相關對象並沒有恢復原始名稱 它們仍然使用回收站的名稱 在表上定義的源(如視圖和過程)沒有重新編譯 仍然保持無效狀態 必須手動得到這些原有名稱並應用到閃回表
信息保留在名為 USER_RECYCLEBIN 的視圖中 在對表進行閃回操作前 請使用以下查詢來檢索原有名稱
SELECT OBJECT_NAME ORIGINAL_NAME TYPEFROM USER_RECYCLEBINWHERE BASE_OBJECT = (SELECT BASE_OBJECT FROM USER_RECYCLEBINWHERE ORIGINAL_NAME = RECYCLETEST )AND ORIGINAL_NAME != RECYCLETEST ;
OBJECT_NAMEORIGINAL_N TYPE BIN$ LhcpnianfgMAAAAAANPw==$ IN_RT_ INDEXBIN$ LhcpnganfgMAAAAAANPw==$ TR_RTTRIGGER
在表進行閃回操作後 表 RECYCLETEST 上的索引和觸發器將按照 OBJECT_NAME 列中所示進行命名 根據以上查詢 可以使用原始名稱重新命名對象 如下所示
ALTER INDEX BIN$ LhcpnianfgMAAAAAANPw==$ RENAME TO IN_RT_ ;ALTER TRIGGER BIN$ LhcpnganfgMAAAAAANPw==$ RENAME TO TR_RT;
lishixin/Article/program/Oracle/201311/17794
G. oracle閃回最長時間
24小時。在默認情況下,Oracle數據備塌庫做拆支持最長為24小時的閃回時間窗口(Flashback Window),也就是說仿胡圓,只能在過去的24小時內進行閃回操作。
H. 閃回是什麼意思
問題一:閃回是什麼意思啊? 閃回就是指,在時間為當下的人物在思想活動時回憶起時間為過去的功件.
比如說,我們看到人物在回憶的時候,回憶的片段被處理成灰色的那一段關於過去的影象,這種手法就叫閃回.
問題二:電影里的「閃回」是什麼意思 一個白領從家到公司坐公交上班,在車上她偶然看見一個中年男子的右手小拇指在不斷彈動。(這時鏡頭切入前天晚上被搶劫的畫面,並且給搶劫犯的特寫是 彈動的小拇指 插入時間也就3、5秒)這時候,白領突礎變得心慌。
問題三:電影術語:閃回是什麼意思 就是電影鏡頭反映的是以前發生的事情,相當於回憶的內容。
問題四:新聞運用時間閃回的文學手法,時間閃回是什麼意思? 通常指在一定的場景結構中插人另一場景或片斷。閃回可以是電影的一種片斷敘述閃...從內容上看,閃回的內容一般為閃回前面鏡頭中某個人物的思維或回憶。它可以是情緒性的,也可以是敘事性的;可以是較長篇幅的,也鎮告可以是瞬間意識表現,目的是使觀眾更清晰
...
問題五:什麼是閃回技術啊?主要內容有哪些啊? 為了使oracle資料庫從任何邏輯誤操作中迅速恢復,Oracle 資料庫10g 提供了一系列人為錯誤更正技術,稱為閃回。閃回從根本上改變了數據恢復。過去,資料庫在幾分鍾內就可能損壞,但需要幾小時才能恢復。利用閃回技術,更正錯誤的時間與錯誤發生時間幾乎相同。而且它非常易用,使用一條短命令便可恢復整個資料庫,而不必執行復雜的程序。閃回技術提供了一個 SQL 界面,能夠快速分析和修復人為錯誤。閃回技術為本地數據損壞提供了細粒度外部分析和修復,如當錯誤刪除客戶訂單時。閃回技術還支持修復更多廣泛的損壞,同時快速避免長時間停機,如當本月的所有客戶訂單都被刪除時。閃回技術是 Oracle 資料庫獨有的特性,支持各級恢復,包括行、事務、表、表空間和資料庫范圍。
1 閃回查詢
在Oracle 9i之前,如果用戶錯誤操作數據後,除了不完全恢復外,沒有好的解決辦法。Oracle 9i中提供閃回查詢,由一個新的包DBMS_FLASH來實現。用戶使用閃回查詢可以及時取得誤操作DML(Delete、Update、Insert)前某一時間點資料庫的映像視圖,用戶可以利用系統時間或系統改變號(SCN:System Change Number)來指定這個只讀視圖,並可以針對錯誤進行相應的恢復措施。閃回查詢功能完全依賴於自動回滾段管理(AUM),對於Drop等誤操作不能恢復。閃回特性可應用在以下方面:
(1)自我維護過程中的修復:當一些重要的記錄被意外刪除,用戶可以向局旅虛後移動到一個時間點,查看丟失的行並把它們重新插入現在的表內恢復。
(2)恢復Email和聲音Email:當用戶意外刪除了Email或者聲音信息時,可以通過移回到固定時間點來恢復刪除。
(3)賬號平衡狀況:可以查看以前的歷史數據。如銀行外幣管理中用於記錄特定時間的匯率。在以前,匯率變更被記錄在一個歷史表中,現在就可以通過閃回功能進行查詢。
(4)用於趨勢分析的決策支持系統:決策支持系統和聯機分析應用必須執行一個長時間的事務。使用閃回查詢,這些應用可以對歷史數據執行分析和建模。例如,特定桐燃產品如礦泉水隨季節變化需求情況的變化。
2 閃回版本查詢
閃回版本查詢提供了一種查看行級資料庫變化的方法。它是 SQL 的擴展,支持以特定時間間隔檢索所有不同版本的行。例如:
Select * from EMPLOYEE versions between 『2:00 PM』 and 『3:00 PM』 where …
該語句顯示出今天下午 2 點至 3 點之間該行的各版本,每個版本都由不同的事務所更改。使用 DBA 可指出數據何時、如何被更改的,並追溯到用戶、應用程序或事務。這使得 DBA 可以跟蹤資料庫中的邏輯破壞並加以更正。它還讓應用開發人員能夠對其代碼進行調試。
3 閃回事務查詢
閃回事務查詢提供了一種查看事務級資料庫變化的方法。它是 SQL 的擴展,能夠看到事務帶來的所有變化。例如:
Select * from DBA_TRANSACTION_QUERY where xid = 『000200030000002D』;
該語句顯示出該事務引起的結果性變化。此外,返回補充 SQL 語句,並用於撤消由事務引起的各行變化。使用精密工具(如 DBA),應用開發人員可以精確地診斷和更正資料庫或應用中的邏輯問題。
4 閃回資料庫
要將 Oracle 資料庫恢復到以前的時間點,傳統方法是進行時間點恢復。然而,時間點恢復需要用數小時甚至幾天的時間,因為它需要從備份......>>
問題六:僵屍國度第三季閃回版是什麼意思 貼吧可以查看哦
tieba./p/4822818441
網路經驗也有
jingyan./...6
喜歡就採納吧。
問題七:僵屍國度閃回劇場版什麼意思? 。
問題八:劇本中 閃回 意思? 閃回是電影術語,就是電影鏡頭反映的是以前發生的事情,相當於回憶的內容。
問題九:閃回是什麼意思啊? 閃回就是指,在時間為當下的人物在思想活動時回憶起時間為過去的功件.
比如說,我們看到人物在回憶的時候,回憶的片段被處理成灰色的那一段關於過去的影象,這種手法就叫閃回.
問題十:電影里的「閃回」是什麼意思 一個白領從家到公司坐公交上班,在車上她偶然看見一個中年男子的右手小拇指在不斷彈動。(這時鏡頭切入前天晚上被搶劫的畫面,並且給搶劫犯的特寫是 彈動的小拇指 插入時間也就3、5秒)這時候,白領突礎變得心慌。
I. 如何開啟 oracle 閃回功能
一
首先查看是否開啟閃回:
SQL> select flashback_on from V$database;
FLASHBACK_ON
------------------
NO
二
如果已經慶遲開啟了閃回,橋消無須執行譽消李下面的操作。
cd /u01
mkdir flashback(生成閃回目錄)
SQL> alter system set db_recovery_file_dest_size=30G scope=both;
SQL> alter system set db_recovery_file_dest='/u01/flashback' scope=both;
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database flashback on;
SQL> alter database open;
三
再進行確認:
SQL> select flashback_on from V$database;
FLASHBACK_ON
------------------
YES
J. 高手指點oracle閃回表有哪些限制
用網路能搜大把出來吧。。。。
使用的限制和注意事項:
1. 使用閃回表語句恢復表到出現人為或應用錯誤事件之前的狀態。
2. 可以閃回到過去多長時間取決於系統中undo數據如芹量的大小。
3. 並且oracle資料庫無法恢復通過DDL語句修改了結構的表。
4.oracle強烈建議設置UNDO_MANAGEMENT為AUTO(自動管理回滾數據)渣衫畢。另外,設置UNDO_RETENTION (回滾數據的保留時間)為一個合適的時間間隔。
5.你不能回滾flash back語句,然而你可以使用另外一個flash back語句並且指定一個當前時間之前的時間點。在聲明一個flash back語句之前先記錄下當前的SCN號。
另外如果要使用閃回表
1. 我們需要有在指定表上有flashback的許可權或者FLASHBACK ANYTABLE許可權才能閃回一個表到之前的時間點;
2.必須有對表的SELECT, INSERT, DELETE, andALTER object privileges一系列許可權;
3.除非是使用TO BEFORE DROP,對於分區表的閃回都應該開啟Row movement (alter table test_move enable row movement;)
一般用於分區表,某一行更新時,如果更新的是塌敬分區列,並且更新後的列值不屬於原來的這個分區,如果開啟了這個選項,就會把這行從這個分區中delete 掉,並加到更新後所屬的分區。相當於一個隱式的delete+insert,但是不會觸發insert/delete觸發器。如果沒有開啟這個選項,就會在更新時報錯。
4.恢復一個表到一個還原點,必須擁有SELECT ANY DICTIONARY orFLASHBACKANY TABLE system privilege or theSELECT_CATALOG_ROLE role。