Ⅰ 如何開啟 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
Ⅱ 如何啟用Oracle10g閃回資料庫
可按以下步驟配置閃回資料庫:(確保資料庫處於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.
Ⅲ 求教Oracle11g中的閃回技術
1、Flashback Database(利用閃回日誌恢復)
Oracle Flashback Database特性允許通過SQL語句Flashback Database語句,讓資料庫前滾到當前的前一個時間點或者SCN,而不需要做時間點的恢復。閃回資料庫可以迅速將資料庫回到誤操作或人為錯誤的前一個時間點,如Word中的"撤消"操作,可以不利用備份就快速的實現基於時間點的恢復。Oracle通過創建新的Flashback Logs(閃回日誌),記錄資料庫的閃回操作。如果希望能閃回資料庫,需要設置如下參數:DB_RECOVER_FILE_DEST日誌的存放位置,DB_RECOVER_FILE_DEST_SIZE恢復區的大小。在創建資料庫的時候,Oracle將自動創建恢復區,但默認是關閉的,需要執行alter database flashback on命令。
例:執行Flashback Database命令格式。
SQL>flashback database to time to_timestamp(xxx);
SQL>flashback database to scn xxx
2、Flashback Table(利用UNDO保留信息恢復)
Oracle Flashback Table特性允許利用Flashback Table語句,確保閃回到表的前一個時間點。與Oracle 9i中的Flashback Query相似,利用回滾段信息來恢復一個或一些表到以前的一個時間點(一個快照)。要注意的是,Flashback Table不等於Flashback Query,Flashback Query僅僅是查詢以前的一個快照點而已,並不改變當前表的狀態,而Flashback Table將改變當前表及附屬對象一起回到以前的時間點。
語法:
flashback table tablename to timestamp xxx或
flashback table tablename to scn xxx
注意:如果需要閃回一個表,需要以下條件:
需要有flashback any table的系統許可權或者是該表的flashback對象許可權;
需要有該表的select,insert,delete,alter許可權;
必須保證該表row movement。
例:執行將test表閃回到2011年5月7日下午3點。
SQL>flashback table test to timestamp to_timestamp(』2011-05-07 15:00:00』,』yyyy-mm-dd hh24:mi:ss』);
3、Flashback Drop(利用回收站功能恢復)
註:由於目前的環境為了實現OGG的DDL同步,關閉了回收站功能,故這個功能不可用。
4、Flash Version Query(利用UNDO保留信息恢復)
Oracle Flashback Version Query特性,利用保存的回滾信息,可以看到特定的表在時間段內的任何修改,如電影的回放一樣,可以了解表在該期間的任何變化。Flashback version query一樣依賴於AUM,提供了一個查看行改變的功能,能找到所有已經提交了的行的記錄,分析出過去時間都執行了什麼操作。Flashback version query採用VERSIONS BETWEEN語句來進行查詢,常用的方法:
·VERSIONS_SCN - 系統改變號
·VERSIONS_TIMESTAMP - 時間
例如:在test表中,時間1插入一條記錄,時間2刪除了這條記錄,對於時間3執行select * from test當然查詢不到這條記錄,只能看到該表最後的提交記錄。這時如果利用Flash Table或者是Flash Query,只能看到過去的某一時間點的一個快照,而利用Flashback Version Query,能夠把時間1、時間2的操作給記錄下來,並詳細的查詢出對表進行的任何操作。
基於SCN的閃回查詢:
SQL> select count(*) from lm_mtrp_syn_channelinfo as of scn 708000000;
COUNT(*)
----------
21
基於時間段的閃回查詢:
SQL>select versions_starttime,versions_endtime, versions_xid,versions_operation,id
from test versions
between timestamp minvalue and maxvalue
order by versions_starttime;
5,Flashback Transaction Query(利用UNDO保留信息恢復)
Oracle Flashback Transaction Query特性確保檢查資料庫的任何改變在一個事務級別,可以利用此功能進行診斷問題、性能分析和審計事務。它其實是Flashback Version Query查詢的一個擴充,Flashback Version Query說明了可以審計一段時間內表的所有改變,但是也僅僅是能發現問題,對於錯誤的事務,沒有好的處理辦法。而Flashback Transaction Query提供了從FLASHBACK_TRANSACTION_QUERY視圖中獲得事務的歷史以及Undo_sql(回滾事務對應的sql語句),也就是說審計一個事務到底做了什麼,甚至可以回滾一個已經提交的事務。
例:Flashback Transaction Query的操作實例。
(1)在test表中刪除記錄,獲得事務的標識XID,然後提交。
SQL>delete from test where id=2;
SQL>select xid from v$transaction;
XID
----------------
04001200AE010000
SQL>commit;
在測試中方便起見,在事務沒有提交的時候,獲得事務的XID為04001F0035000000。實際情況下,不可能去跟蹤每個事務,想要獲得已提交事務的XID,就必須通過上面的Flashback Version Query。
(2)進行Flashback Transaction Query
SQL>select * from FLASHBACK_TRANSACTION_QUERY
where xid=』04001F0035000000』;
UNDO_SQL
insert into "FLASHTEST"."TEST"("ID") values (』2』);
注意:這個刪除語句對應的是1個Insert語句,如果想回滾這個事務,執行這個Insert語句即可。
可以看到,Flashback Transaction Query主要用於審計一個事務,並可以回滾一個已經提交的事務。如果確定出錯的事務是最後一個事務,我們利用Flashback Table或者Flashback Query就可以解決問題。但是,如果執行了一個錯誤的事務之後,又執行了一系列正確的事務,那麼上面的方法就無能為力,利用Flashback Transaction Query可以查看或回滾這個錯誤的事務。
另:ORACLE 11G還多了一個閃回數據歸檔的功能,即可將UNDO的信息進行歸檔,這個功能對於一些比較重要的表,
Ⅳ 如何執行Oracle資料庫閃回查詢
oracle閃回資料庫之後,goldengate會崩潰嗎?
首先關閉資料庫:
shutdown
immediate;
在開啟到mount狀態:startup
mount;
修改閃回功能:alter
database
flashback
on;
開啟資料庫:alter
datebase
open;
Ⅳ 如何閃回刪除的表格oracle
查看回收站中表
selectobject_name,original_name,partition_name,type,ts_name,createtime,droptimefromrecyclebin;
恢復表
SQL>flashbacktabletest_droptobeforedrop;或
SQL>flashbacktable"BIN$b+XkkO1RS5K10uKo9BfmuA==$0"tobeforedrop;
註:必須9i或10g以上版本支持,flashback無法恢復全文索引
以下為參考資料
使用 Oracle Database 10g 中的閃回表特性,可以毫不費力地恢復被意外刪除的表
以下是一個不該發生卻經常發生的情況:用戶刪除了一個非常重要的表 ― 當然是意外地刪除 ― 並需要盡快地恢復。(在某些時候,這個不幸的用戶可能就是 DBA!)
Oracle9i Database 推出了閃回查詢選項的概念,以便檢索過去某個時間點的數據,但它不能閃回 DDL 操作,如刪除表的操作。唯一的恢復方法是在另一個資料庫中使用表空間的時間點恢復,然後使用導出/導入或其他方法,在當前資料庫中重新創建表。這一過程需要 DBA 進行大量工作並且耗費寶貴的時間,更不用說還要使用另一個資料庫進行克隆。
請使用 Oracle Database 10g 中的閃回表特性,它使得被刪除表的恢復過程如同執行幾條語句一樣簡單。讓我們來看該特性是如何工作的。
刪除那個表!
首先,讓我們查看當前模式中的表。
SQL>select*fromtab;
TNAME
TABTYPE
CLUSTERID
-----------------------------------
RECYCLETEST
TABLE
現在,我們意外地刪除了該表:
SQL>droptablerecycletest;
Tabledropped.
現在讓我們來查看該表的狀態。
SQL>select*fromtab;
TNAME
TABTYPE
CLUSTERID
-----------------------------------------
BIN$04LhcpndanfgMAAAAAANPw==$0TABLE
表 RECYCLETEST 已不存在,但是請注意出現新表 BIN$04LhcpndanfgMAAAAAANPw==$0。這就是所發生的事情:被刪除的表 RECYCLETEST 並沒有完全消失,而是重命名為一個由系統定義的名稱。它存在於同一個表空間中,具有與原始表相同的結構。如果在該表上定義了索引或觸發器,則它們也被重命名,使用與表相同的命名規則。任何相關源(如過程)都失效;原始表的觸發器和索引被改為放置在重命名的表 BIN$04LhcpndanfgMAAAAAANPw==$0 上,保持被刪除表的完整對象結構。
表及其相關對象被放置在一個稱為"回收站"的邏輯容器中,它類似於您 PC 機中的回收站。但是,對象並沒有從它們原先所在的表空間中刪除;它們仍然佔用那裡的空間。回收站只是一個列出被刪除對象目錄的邏輯結構。在 SQL*Plus 提示符處使用以下命令來查看其內容(您需要使用 SQL*Plus 10.1 來進行此操作):
SQL>showrecyclebin
ORIGINALNAME
RECYCLEBINNAME
OBJECTTYPE
DROPTIME
----------------------------------------------------------------
RECYCLETEST
BIN$04LhcpndanfgMAAAAAANPw==$0TABLE
2004-02-16:21:13:31
結果顯示了表的原始名稱 RECYCLETEST,並顯示了回收站中的新名稱,該名稱與我們看到的刪除後所創建的新表名稱相同。(注意:確切的名稱可能因平台不同而不同。)為恢復該表,您所需要做的就是使用 FLASHBACK TABLE 命令:
SQL>;
FLASHBACKCOMPLETE.
SQL>SELECT*FROMTAB;
TNAME
TABTYPE
CLUSTERID
-----------------------------------------
RECYCLETEST
TABLE
瞧!表毫不費力地恢復了。如果現在查看回收站,它將是空的。
記住,將表放在回收站里並不在原始表空間中釋放空間。要釋放空間,您需要使用以下命令清空回收站:
PURGERECYCLEBIN;
但是如果您希望完全刪除該表而不需要使用閃回特性,該怎麼辦?在這種情況下,可以使用以下命令永久刪除該表:
DROPTABLERECYCLETESTPURGE;
此命令不會將表重命名為回收站中的名稱,而是永久刪除該表,就象 10g 之前的版本一樣。
管理回收站
如果在該過程中沒有實際刪除表 ― 因而沒有釋放表空間 ― 那麼當被刪除的對象佔用了所有空間時,會發生什麼事?
答案很簡單:這種情況根本不會出現。當表空間被回收站數據完全占滿,以至於必須擴展數據文件來容納更多數據時,可以說表空間處於"空間壓力"情況下。此時,對象以先進先出的方式從回收站中自動清除。在刪除表之前,相關對象(如索引)被刪除。
同樣,空間壓力可能由特定表空間定義的用戶限額而引起。表空間可能有足夠的空餘空間,但用戶可能將其在該表空間中所分配的部分用完了。在這種情況下,Oracle 自動清除該表空間中屬於該用戶的對象。
此外,有幾種方法可以手動控制回收站。如果在刪除名為 TEST 的特定表之後需要從回收站中清除它,可以執行
PURGETABLETEST;
或者使用其回收站中的名稱:
PURGETABLE"BIN$04LhcpndanfgMAAAAAANPw==$0";
此命令將從回收站中刪除表 TEST 及所有相關對象,如索引、約束等,從而節省了空間。但是,如果要從回收站中永久刪除索引,則可以使用以下命令來完成工作:
purgeindexin_test1_01;
此命令將僅僅刪除索引,而將表的拷貝留在回收站中。
有時在更高級別上進行清除可能會有用。例如,您可能希望清除表空間 USERS 的回收站中的所有對象。可以執行:
PURGETABLESPACEUSERS;
您也許希望只為該表空間中特定用戶清空回收站。在數據倉庫類型的環境中,用戶創建和刪除許多臨時表,此時這種方法可能會有用。您可以更改上述命令,限定只清除特定的用戶:
PURGETABLESPACEUSERSUSERSCOTT;
諸如 SCOTT 等用戶可以使用以下命令來清空自己的回收站
PURGERECYCLEBIN;
DBA 可以使用以下命令清除任何錶空間中的所有對象
PURGEDBA_RECYCLEBIN;
可以看到,可以通過多種不同方法來管理回收站,以滿足特定的需要。
表版本和閃回功能
用戶可能會經常多次創建和刪除同一個表,如:
CREATETABLETEST(COL1NUMBER);
INSERTINTOTESTVALUES(1);
commit;
DROPTABLETEST;
CREATETABLETEST(COL1NUMBER);
INSERTINTOTESTVALUES(2);
commit;
DROPTABLETEST;
CREATETABLETEST(COL1NUMBER);
INSERTINTOTESTVALUES(3);
commit;
DROPTABLETEST;
此時,如果您要對表 TEST 執行閃回操作,那麼列 COL1 的值應該是什麼?常規想法可能認為從回收站取回表的第一個版本,列 COL1 的值是 1。實際上,取回的是表的第三個版本,而不是第一個。因此列 COL1 的值為 3,而不是 1。
此時您還可以取回被刪除表的其他版本。但是,表 TEST 的存在不允許出現這種情況。您有兩種選擇:
使用重命名選項:
;
;
這些語句將表的第一個版本恢復到 TEST1,將第二個版本恢復到 TEST2。 TEST1 和 TEST2 中的列 COL1 的值將分別是 1 和 2。或者,
使用表的特定回收站名稱進行恢復。為此,首先要識別表的回收站名稱,然後執行:
FLASHBACKTABLE"BIN$04LhcpnoanfgMAAAAAANPw==$0"TOBEFOREDROPRENAMETOTEST2;
FLASHBACKTABLE"BIN$04LhcpnqanfgMAAAAAANPw==$0"TOBEFOREDROPRENAMETOTEST1;
這些語句將恢復被刪除表的兩個版本。
警告......
取消刪除特性使表恢復其原始名稱,但是索引和觸發器等相關對象並沒有恢復原始名稱,它們仍然使用回收站的名稱。在表上定義的源(如視圖和過程)沒有重新編譯,仍然保持無效狀態。必須手動得到這些原有名稱並應用到閃回表。
信息保留在名為 USER_RECYCLEBIN 的視圖中。在對表進行閃回操作前,請使用以下查詢來檢索原有名稱。
SELECTOBJECT_NAME,ORIGINAL_NAME,TYPE
FROMUSER_RECYCLEBIN
WHEREBASE_OBJECT=(SELECTBASE_OBJECTFROMUSER_RECYCLEBIN
WHEREORIGINAL_NAME='RECYCLETEST')
ANDORIGINAL_NAME!='RECYCLETEST';
OBJECT_NAME
ORIGINAL_NTYPE
----------------------------------------
BIN$04LhcpnianfgMAAAAAANPw==$0IN_RT_01
INDEX
BIN$04LhcpnganfgMAAAAAANPw==$0TR_RT
TRIGGER
在表進行閃回操作後,表 RECYCLETEST 上的索引和觸發器將按照 OBJECT_NAME 列中所示進行命名。根據以上查詢,可以使用原始名稱重新命名對象,如下所示:
ALTERINDEX"BIN$04LhcpnianfgMAAAAAANPw==$0"RENAMETOIN_RT_01;
ALTERTRIGGER"BIN$04LhcpnganfgMAAAAAANPw==$0"RENAMETOTR_RT;
一個值得注意的例外情況是點陣圖索引。當刪除點陣圖索引時,它們並不放置在回收站中 ― 因此無法檢索它們。約束名稱也無法從視圖中檢索。必須從其他來源對它們進行重命名。
閃回表的其他用途
閃回刪除表功能不僅限於恢復表的刪除操作。與閃回查詢類似,您還可以使用它將表恢復到不同的時間點,形如flashback table tmm2076 TO TIMESTAMP to_timestamp('2007-05-22
12:00:00','yyyy-mm-dd hh24:mi:ss')
彈出ORA-08189錯誤,需要執行以下命令先:
alter table tmm2076 enable row movement這個命令的作用是,允許oracle修改分配給行的rowid。
然後再flashback,數據被恢復完畢。
Ⅵ oracle 怎樣利用閃回功能恢復數據
1,只需要執行以抄下個襲腳本即可。
7,查看日誌信息,就可以了。
Ⅶ oracle閃回運用
很簡單,就一個語句
flashback table tablename to before drop;
Ⅷ oracle 如何打開 表空間 閃回功能
先關閉資料庫
再start mount
再打開閃回功能
最後 alter database open
Ⅸ 什麼是閃回技術啊主要內容有哪些啊
為了使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;
閃回刪除就像是為一個表及其相關對象安裝了一個撤消按鈕。