閃回技術是Oracle強大數據庫備份恢復機制的一部分,在數據庫發生邏輯錯誤的時候,閃回技術能提供快速且最小損失的恢復(多數閃回功能都能在數據庫聯機狀態下完成)sql
UNDO_MANAGEMENT
數據庫
指定回滾段的管理方式,若是設置爲 AUTO,則採用撤銷表空間自動管理回滾信息express
UNDO_TABLESPACE
大數據
指定用於回滾信息自動管理的撤銷表空間名code
UNDO_RETENTION
it
指定回滾信息的最長保留時間io
ALTER SYSTEM
命令修改各個參數值ALTER SYSTEM SET UNDO_RETENTION=1200;
SELECT column_name [,...] FROM table_name [AS OF SCN|TIMESTAMP expression] [WHERE condition]
ALTER SESSION SET_NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; -- SET TIME ON --查詢當前狀態 SELECT * FROM scott.emp WHERE empno=7844; --查詢前一個小時 SELECT * FROM scott.emp AS OF TIMESTAMP SYSDATE-1/24 WHERE empno=7844; --查詢某個時刻 SELECT * FROM scott.emp AS OF TIMESTAMP TO_TIMESTAMP('2009-3-23 09:14:41','YYYY-MM-DD HH24:MI:SS')
若是須要對多個相互有主外鍵約束的表進行恢復,使用 AS OF TIMESTAMP 方式,可能會因爲時間點的不統一而形成數據恢復失敗,使用 AS OF SCN 方式則可以確保約束的一致性。table
-- 查詢當前的 SCN SELECT current_scn FROM v$database; -- 查詢當前表的數據 SELECT * FROM scott.emp WHERE empno=7844; --查詢某個 SCN 的數據 SELECT * FROM scott.emp AS OF SCN 617244 WHERE empno=7844;
系統時間與 SCN 之間的關係能夠經過查詢 SYS 模式下的 SMON_SCN_TIME 表得到class
SELECT scn, TO_CHAR(time_dp, 'YYYY-MM-DD HH24:MI:SS') time_dp FROM sys.smon_scn_time;