闪回技术是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;